~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 /*
  3  * Copyright (c) 2019 BayLibre SAS. All rights reserved.
  4  */
  5 
  6 /dts-v1/;
  7 
  8 #include "meson-g12a.dtsi"
  9 #include <dt-bindings/gpio/gpio.h>
 10 #include <dt-bindings/input/input.h>
 11 #include <dt-bindings/gpio/meson-g12a-gpio.h>
 12 #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
 13 
 14 / {
 15         compatible = "seirobotics,sei510", "amlogic,g12a";
 16         model = "SEI Robotics SEI510";
 17 
 18         keys {
 19                 compatible = "adc-keys";
 20                 io-channels = <&saradc 0>;
 21                 io-channel-names = "buttons";
 22                 keyup-threshold-microvolt = <1800000>;
 23 
 24                 button-onoff {
 25                         label = "On/Off";
 26                         linux,code = <KEY_POWER>;
 27                         press-threshold-microvolt = <1700000>;
 28                 };
 29         };
 30 
 31         aliases {
 32                 serial0 = &uart_AO;
 33                 ethernet0 = &ethmac;
 34         };
 35 
 36         mono_dac: audio-codec-0 {
 37                 compatible = "maxim,max98357a";
 38                 #sound-dai-cells = <0>;
 39                 sound-name-prefix = "U16";
 40                 sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>;
 41         };
 42 
 43         dmics: audio-codec-1 {
 44                 #sound-dai-cells = <0>;
 45                 compatible = "dmic-codec";
 46                 num-channels = <2>;
 47                 wakeup-delay-ms = <50>;
 48                 sound-name-prefix = "MIC";
 49         };
 50 
 51         chosen {
 52                 stdout-path = "serial0:115200n8";
 53         };
 54 
 55         cvbs-connector {
 56                 compatible = "composite-video-connector";
 57 
 58                 port {
 59                         cvbs_connector_in: endpoint {
 60                                 remote-endpoint = <&cvbs_vdac_out>;
 61                         };
 62                 };
 63         };
 64 
 65         emmc_pwrseq: emmc-pwrseq {
 66                 compatible = "mmc-pwrseq-emmc";
 67                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 68         };
 69 
 70         hdmi-connector {
 71                 compatible = "hdmi-connector";
 72                 type = "a";
 73 
 74                 port {
 75                         hdmi_connector_in: endpoint {
 76                                 remote-endpoint = <&hdmi_tx_tmds_out>;
 77                         };
 78                 };
 79         };
 80 
 81         memory@0 {
 82                 device_type = "memory";
 83                 reg = <0x0 0x0 0x0 0x40000000>;
 84         };
 85 
 86         ao_5v: regulator-ao-5v {
 87                 compatible = "regulator-fixed";
 88                 regulator-name = "AO_5V";
 89                 regulator-min-microvolt = <5000000>;
 90                 regulator-max-microvolt = <5000000>;
 91                 vin-supply = <&dc_in>;
 92                 regulator-always-on;
 93         };
 94 
 95         dc_in: regulator-dc-in {
 96                 compatible = "regulator-fixed";
 97                 regulator-name = "DC_IN";
 98                 regulator-min-microvolt = <5000000>;
 99                 regulator-max-microvolt = <5000000>;
100                 regulator-always-on;
101         };
102 
103         emmc_1v8: regulator-emmc-1v8 {
104                 compatible = "regulator-fixed";
105                 regulator-name = "EMMC_1V8";
106                 regulator-min-microvolt = <1800000>;
107                 regulator-max-microvolt = <1800000>;
108                 vin-supply = <&vddao_3v3>;
109                 regulator-always-on;
110         };
111 
112         vddao_3v3: regulator-vddao-3v3 {
113                 compatible = "regulator-fixed";
114                 regulator-name = "VDDAO_3V3";
115                 regulator-min-microvolt = <3300000>;
116                 regulator-max-microvolt = <3300000>;
117                 vin-supply = <&dc_in>;
118                 regulator-always-on;
119         };
120 
121         vddao_3v3_t: regulator-vddao-3v3-t {
122                 compatible = "regulator-fixed";
123                 regulator-name = "VDDAO_3V3_T";
124                 regulator-min-microvolt = <3300000>;
125                 regulator-max-microvolt = <3300000>;
126                 vin-supply = <&vddao_3v3>;
127                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
128                 enable-active-high;
129         };
130 
131         vddcpu: regulator-vddcpu {
132                 /*
133                  * SY8120B1ABC DC/DC Regulator.
134                  */
135                 compatible = "pwm-regulator";
136 
137                 regulator-name = "VDDCPU";
138                 regulator-min-microvolt = <721000>;
139                 regulator-max-microvolt = <1022000>;
140 
141                 pwm-supply = <&dc_in>;
142 
143                 pwms = <&pwm_AO_cd 1 1250 0>;
144                 pwm-dutycycle-range = <100 0>;
145 
146                 regulator-boot-on;
147                 regulator-always-on;
148         };
149 
150         vddio_ao1v8: regulator-vddio-ao1v8 {
151                 compatible = "regulator-fixed";
152                 regulator-name = "VDDIO_AO1V8";
153                 regulator-min-microvolt = <1800000>;
154                 regulator-max-microvolt = <1800000>;
155                 vin-supply = <&vddao_3v3>;
156                 regulator-always-on;
157         };
158 
159         sdio_pwrseq: sdio-pwrseq {
160                 compatible = "mmc-pwrseq-simple";
161                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
162                 clocks = <&wifi32k>;
163                 clock-names = "ext_clock";
164         };
165 
166         wifi32k: wifi32k {
167                 compatible = "pwm-clock";
168                 #clock-cells = <0>;
169                 clock-frequency = <32768>;
170                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
171         };
172 
173         sound {
174                 compatible = "amlogic,axg-sound-card";
175                 model = "SEI510";
176                 audio-aux-devs = <&tdmout_a>, <&tdmout_b>,
177                                  <&tdmin_a>, <&tdmin_b>;
178                 audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
179                                 "TDMOUT_A IN 1", "FRDDR_B OUT 0",
180                                 "TDMOUT_A IN 2", "FRDDR_C OUT 0",
181                                 "TDM_A Playback", "TDMOUT_A OUT",
182                                 "TDMOUT_B IN 0", "FRDDR_A OUT 1",
183                                 "TDMOUT_B IN 1", "FRDDR_B OUT 1",
184                                 "TDMOUT_B IN 2", "FRDDR_C OUT 1",
185                                 "TDM_B Playback", "TDMOUT_B OUT",
186                                 "TODDR_A IN 4", "PDM Capture",
187                                 "TODDR_B IN 4", "PDM Capture",
188                                 "TODDR_C IN 4", "PDM Capture",
189                                 "TDMIN_A IN 0", "TDM_A Capture",
190                                 "TDMIN_A IN 3", "TDM_A Loopback",
191                                 "TDMIN_B IN 0", "TDM_A Capture",
192                                 "TDMIN_B IN 3", "TDM_A Loopback",
193                                 "TDMIN_A IN 1", "TDM_B Capture",
194                                 "TDMIN_A IN 4", "TDM_B Loopback",
195                                 "TDMIN_B IN 1", "TDM_B Capture",
196                                 "TDMIN_B IN 4", "TDM_B Loopback",
197                                 "TODDR_A IN 0", "TDMIN_A OUT",
198                                 "TODDR_B IN 0", "TDMIN_A OUT",
199                                 "TODDR_C IN 0", "TDMIN_A OUT",
200                                 "TODDR_A IN 1", "TDMIN_B OUT",
201                                 "TODDR_B IN 1", "TDMIN_B OUT",
202                                 "TODDR_C IN 1", "TDMIN_B OUT";
203 
204                 clocks = <&clkc CLKID_MPLL2>,
205                          <&clkc CLKID_MPLL0>,
206                          <&clkc CLKID_MPLL1>;
207 
208                 assigned-clocks = <&clkc CLKID_MPLL2>,
209                                   <&clkc CLKID_MPLL0>,
210                                   <&clkc CLKID_MPLL1>;
211                 assigned-clock-parents = <0>, <0>, <0>;
212                 assigned-clock-rates = <294912000>,
213                                        <270950400>,
214                                        <393216000>;
215 
216                 dai-link-0 {
217                         sound-dai = <&frddr_a>;
218                 };
219 
220                 dai-link-1 {
221                         sound-dai = <&frddr_b>;
222                 };
223 
224                 dai-link-2 {
225                         sound-dai = <&frddr_c>;
226                 };
227 
228                 dai-link-3 {
229                         sound-dai = <&toddr_a>;
230                 };
231 
232                 dai-link-4 {
233                         sound-dai = <&toddr_b>;
234                 };
235 
236                 dai-link-5 {
237                         sound-dai = <&toddr_c>;
238                 };
239 
240                 /* internal speaker interface */
241                 dai-link-6 {
242                         sound-dai = <&tdmif_a>;
243                         dai-format = "i2s";
244                         dai-tdm-slot-tx-mask-0 = <1 1>;
245                         mclk-fs = <256>;
246 
247                         codec-0 {
248                                 sound-dai = <&mono_dac>;
249                         };
250 
251                         codec-1 {
252                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
253                         };
254                 };
255 
256                 /* 8ch hdmi interface */
257                 dai-link-7 {
258                         sound-dai = <&tdmif_b>;
259                         dai-format = "i2s";
260                         dai-tdm-slot-tx-mask-0 = <1 1>;
261                         dai-tdm-slot-tx-mask-1 = <1 1>;
262                         dai-tdm-slot-tx-mask-2 = <1 1>;
263                         dai-tdm-slot-tx-mask-3 = <1 1>;
264                         mclk-fs = <256>;
265 
266                         codec {
267                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
268                         };
269                 };
270 
271                 /* internal digital mics */
272                 dai-link-8 {
273                         sound-dai = <&pdm>;
274 
275                         codec {
276                                 sound-dai = <&dmics>;
277                         };
278                 };
279 
280                 /* hdmi glue */
281                 dai-link-9 {
282                         sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
283 
284                         codec {
285                                 sound-dai = <&hdmi_tx>;
286                         };
287                 };
288         };
289 };
290 
291 &arb {
292         status = "okay";
293 };
294 
295 &cec_AO {
296         pinctrl-0 = <&cec_ao_a_h_pins>;
297         pinctrl-names = "default";
298         status = "disabled";
299         hdmi-phandle = <&hdmi_tx>;
300 };
301 
302 &cecb_AO {
303         pinctrl-0 = <&cec_ao_b_h_pins>;
304         pinctrl-names = "default";
305         status = "okay";
306         hdmi-phandle = <&hdmi_tx>;
307 };
308 
309 &clkc_audio {
310         status = "okay";
311 };
312 
313 &cpu0 {
314         cpu-supply = <&vddcpu>;
315         operating-points-v2 = <&cpu_opp_table>;
316         clocks = <&clkc CLKID_CPU_CLK>;
317         clock-latency = <50000>;
318 };
319 
320 &cpu1 {
321         cpu-supply = <&vddcpu>;
322         operating-points-v2 = <&cpu_opp_table>;
323         clocks = <&clkc CLKID_CPU_CLK>;
324         clock-latency = <50000>;
325 };
326 
327 &cpu2 {
328         cpu-supply = <&vddcpu>;
329         operating-points-v2 = <&cpu_opp_table>;
330         clocks = <&clkc CLKID_CPU_CLK>;
331         clock-latency = <50000>;
332 };
333 
334 &cpu3 {
335         cpu-supply = <&vddcpu>;
336         operating-points-v2 = <&cpu_opp_table>;
337         clocks = <&clkc CLKID_CPU_CLK>;
338         clock-latency = <50000>;
339 };
340 
341 &cvbs_vdac_port {
342         cvbs_vdac_out: endpoint {
343                 remote-endpoint = <&cvbs_connector_in>;
344         };
345 };
346 
347 &ethmac {
348         status = "okay";
349         phy-handle = <&internal_ephy>;
350         phy-mode = "rmii";
351 };
352 
353 &frddr_a {
354         status = "okay";
355 };
356 
357 &frddr_b {
358         status = "okay";
359 };
360 
361 &frddr_c {
362         status = "okay";
363 };
364 
365 &hdmi_tx {
366         status = "okay";
367         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
368         pinctrl-names = "default";
369 };
370 
371 &hdmi_tx_tmds_port {
372         hdmi_tx_tmds_out: endpoint {
373                 remote-endpoint = <&hdmi_connector_in>;
374         };
375 };
376 
377 &i2c3 {
378         status = "okay";
379         pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
380         pinctrl-names = "default";
381 };
382 
383 &ir {
384         status = "okay";
385         pinctrl-0 = <&remote_input_ao_pins>;
386         pinctrl-names = "default";
387 };
388 
389 &pwm_AO_cd {
390         pinctrl-0 = <&pwm_ao_d_e_pins>;
391         pinctrl-names = "default";
392         clocks = <&xtal>;
393         clock-names = "clkin1";
394         status = "okay";
395 };
396 
397 &pwm_ef {
398         status = "okay";
399         pinctrl-0 = <&pwm_e_pins>;
400         pinctrl-names = "default";
401         clocks = <&xtal>;
402         clock-names = "clkin0";
403 };
404 
405 &pdm {
406         pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>,
407                     <&pdm_din2_z_pins>, <&pdm_din3_z_pins>,
408                     <&pdm_dclk_z_pins>;
409         pinctrl-names = "default";
410         status = "okay";
411 };
412 
413 &saradc {
414         status = "okay";
415         vref-supply = <&vddio_ao1v8>;
416 };
417 
418 /* SDIO */
419 &sd_emmc_a {
420         status = "okay";
421         pinctrl-0 = <&sdio_pins>;
422         pinctrl-1 = <&sdio_clk_gate_pins>;
423         pinctrl-names = "default", "clk-gate";
424         #address-cells = <1>;
425         #size-cells = <0>;
426 
427         bus-width = <4>;
428         cap-sd-highspeed;
429         sd-uhs-sdr50;
430         max-frequency = <100000000>;
431 
432         non-removable;
433         disable-wp;
434 
435         /* WiFi firmware requires power to be kept while in suspend */
436         keep-power-in-suspend;
437 
438         mmc-pwrseq = <&sdio_pwrseq>;
439 
440         vmmc-supply = <&vddao_3v3>;
441         vqmmc-supply = <&vddio_ao1v8>;
442 
443         brcmf: wifi@1 {
444                 reg = <1>;
445                 compatible = "brcm,bcm4329-fmac";
446         };
447 };
448 
449 /* SD card */
450 &sd_emmc_b {
451         status = "okay";
452         pinctrl-0 = <&sdcard_c_pins>;
453         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
454         pinctrl-names = "default", "clk-gate";
455 
456         bus-width = <4>;
457         cap-sd-highspeed;
458         max-frequency = <50000000>;
459         disable-wp;
460 
461         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
462         vmmc-supply = <&vddao_3v3>;
463         vqmmc-supply = <&vddao_3v3>;
464 };
465 
466 /* eMMC */
467 &sd_emmc_c {
468         status = "okay";
469         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
470         pinctrl-1 = <&emmc_clk_gate_pins>;
471         pinctrl-names = "default", "clk-gate";
472 
473         bus-width = <8>;
474         cap-mmc-highspeed;
475         mmc-ddr-1_8v;
476         mmc-hs200-1_8v;
477         max-frequency = <200000000>;
478         non-removable;
479         disable-wp;
480 
481         mmc-pwrseq = <&emmc_pwrseq>;
482         vmmc-supply = <&vddao_3v3>;
483         vqmmc-supply = <&emmc_1v8>;
484 };
485 
486 &tdmif_a {
487         pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>;
488         pinctrl-names = "default";
489         status = "okay";
490 
491         assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>,
492                           <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>;
493         assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
494                                  <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
495         assigned-clock-rates = <0>, <0>;
496 };
497 
498 &tdmif_b {
499         status = "okay";
500 };
501 
502 &tdmin_a {
503         status = "okay";
504 };
505 
506 &tdmin_b {
507         status = "okay";
508 };
509 
510 &tdmout_a {
511         status = "okay";
512 };
513 
514 &tdmout_b {
515         status = "okay";
516 };
517 
518 &toddr_a {
519         status = "okay";
520 };
521 
522 &toddr_b {
523         status = "okay";
524 };
525 
526 &toddr_c {
527         status = "okay";
528 };
529 
530 &tohdmitx {
531         status = "okay";
532 };
533 
534 &uart_A {
535         status = "okay";
536         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
537         pinctrl-names = "default";
538         uart-has-rtscts;
539 
540         bluetooth {
541                 compatible = "brcm,bcm43438-bt";
542                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
543                 max-speed = <2000000>;
544                 clocks = <&wifi32k>;
545                 clock-names = "lpo";
546                 vbat-supply = <&vddao_3v3>;
547                 vddio-supply = <&vddio_ao1v8>;
548         };
549 };
550 
551 &uart_AO {
552         status = "okay";
553         pinctrl-0 = <&uart_ao_a_pins>;
554         pinctrl-names = "default";
555 };
556 
557 &usb {
558         status = "okay";
559         dr_mode = "host";
560 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php