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

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

~ [ 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