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

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ 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.9 ] ~ [ 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                 assigned-clocks = <&clkc CLKID_MPLL2>,
243                                   <&clkc CLKID_MPLL0>,
244                                   <&clkc CLKID_MPLL1>;
245                 assigned-clock-parents = <0>, <0>, <0>;
246                 assigned-clock-rates = <294912000>,
247                                        <270950400>,
248                                        <393216000>;
249 
250                 dai-link-0 {
251                         sound-dai = <&frddr_a>;
252                 };
253 
254                 dai-link-1 {
255                         sound-dai = <&frddr_b>;
256                 };
257 
258                 dai-link-2 {
259                         sound-dai = <&frddr_c>;
260                 };
261 
262                 dai-link-3 {
263                         sound-dai = <&toddr_a>;
264                 };
265 
266                 dai-link-4 {
267                         sound-dai = <&toddr_b>;
268                 };
269 
270                 dai-link-5 {
271                         sound-dai = <&toddr_c>;
272                 };
273 
274                 /* internal speaker interface */
275                 dai-link-6 {
276                         sound-dai = <&tdmif_a>;
277                         dai-format = "i2s";
278                         dai-tdm-slot-tx-mask-0 = <1 1>;
279                         mclk-fs = <256>;
280 
281                         codec-0 {
282                                 sound-dai = <&mono_dac>;
283                         };
284 
285                         codec-1 {
286                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
287                         };
288                 };
289 
290                 /* 8ch hdmi interface */
291                 dai-link-7 {
292                         sound-dai = <&tdmif_b>;
293                         dai-format = "i2s";
294                         dai-tdm-slot-tx-mask-0 = <1 1>;
295                         dai-tdm-slot-tx-mask-1 = <1 1>;
296                         dai-tdm-slot-tx-mask-2 = <1 1>;
297                         dai-tdm-slot-tx-mask-3 = <1 1>;
298                         mclk-fs = <256>;
299 
300                         codec {
301                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
302                         };
303                 };
304 
305                 /* internal digital mics */
306                 dai-link-8 {
307                         sound-dai = <&pdm>;
308 
309                         codec {
310                                 sound-dai = <&dmics>;
311                         };
312                 };
313 
314                 /* hdmi glue */
315                 dai-link-9 {
316                         sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
317 
318                         codec {
319                                 sound-dai = <&hdmi_tx>;
320                         };
321                 };
322         };
323 
324         wifi32k: wifi32k {
325                 compatible = "pwm-clock";
326                 #clock-cells = <0>;
327                 clock-frequency = <32768>;
328                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
329         };
330 };
331 
332 &arb {
333         status = "okay";
334 };
335 
336 &cec_AO {
337         pinctrl-0 = <&cec_ao_a_h_pins>;
338         pinctrl-names = "default";
339         status = "disabled";
340         hdmi-phandle = <&hdmi_tx>;
341 };
342 
343 &cecb_AO {
344         pinctrl-0 = <&cec_ao_b_h_pins>;
345         pinctrl-names = "default";
346         status = "okay";
347         hdmi-phandle = <&hdmi_tx>;
348 };
349 
350 &clkc_audio {
351         status = "okay";
352 };
353 
354 &cpu0 {
355         cpu-supply = <&vddcpu>;
356         operating-points-v2 = <&cpu_opp_table>;
357         clocks = <&clkc CLKID_CPU_CLK>;
358         clock-latency = <50000>;
359 };
360 
361 &cpu1 {
362         cpu-supply = <&vddcpu>;
363         operating-points-v2 = <&cpu_opp_table>;
364         clocks = <&clkc CLKID_CPU1_CLK>;
365         clock-latency = <50000>;
366 };
367 
368 &cpu2 {
369         cpu-supply = <&vddcpu>;
370         operating-points-v2 = <&cpu_opp_table>;
371         clocks = <&clkc CLKID_CPU2_CLK>;
372         clock-latency = <50000>;
373 };
374 
375 &cpu3 {
376         cpu-supply = <&vddcpu>;
377         operating-points-v2 = <&cpu_opp_table>;
378         clocks = <&clkc CLKID_CPU3_CLK>;
379         clock-latency = <50000>;
380 };
381 
382 &ethmac {
383         status = "okay";
384         phy-handle = <&internal_ephy>;
385         phy-mode = "rmii";
386 };
387 
388 &frddr_a {
389         status = "okay";
390 };
391 
392 &frddr_b {
393         status = "okay";
394 };
395 
396 &frddr_c {
397         status = "okay";
398 };
399 
400 &hdmi_tx {
401         status = "okay";
402         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
403         pinctrl-names = "default";
404 };
405 
406 &hdmi_tx_tmds_port {
407         hdmi_tx_tmds_out: endpoint {
408                 remote-endpoint = <&hdmi_connector_in>;
409         };
410 };
411 
412 &i2c3 {
413         status = "okay";
414         pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
415         pinctrl-names = "default";
416 };
417 
418 &ir {
419         status = "okay";
420         pinctrl-0 = <&remote_input_ao_pins>;
421         pinctrl-names = "default";
422 };
423 
424 &pdm {
425         pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_dclk_z_pins>;
426         pinctrl-names = "default";
427         status = "okay";
428 };
429 
430 &pwm_AO_ab {
431         status = "okay";
432         pinctrl-0 = <&pwm_ao_a_pins>;
433         pinctrl-names = "default";
434         clocks = <&xtal>;
435         clock-names = "clkin0";
436 };
437 
438 &pwm_AO_cd {
439         pinctrl-0 = <&pwm_ao_d_e_pins>;
440         pinctrl-names = "default";
441         clocks = <&xtal>;
442         clock-names = "clkin1";
443         status = "okay";
444 };
445 
446 &pwm_ef {
447         status = "okay";
448         pinctrl-0 = <&pwm_e_pins>;
449         pinctrl-names = "default";
450         clocks = <&xtal>;
451         clock-names = "clkin0";
452 };
453 
454 &saradc {
455         status = "okay";
456         vref-supply = <&vddio_ao1v8>;
457 };
458 
459 /* SDIO */
460 &sd_emmc_a {
461         status = "okay";
462         pinctrl-0 = <&sdio_pins>;
463         pinctrl-1 = <&sdio_clk_gate_pins>;
464         pinctrl-names = "default", "clk-gate";
465         #address-cells = <1>;
466         #size-cells = <0>;
467 
468         bus-width = <4>;
469         cap-sd-highspeed;
470         sd-uhs-sdr50;
471         max-frequency = <100000000>;
472 
473         non-removable;
474         disable-wp;
475 
476         /* WiFi firmware requires power to be kept while in suspend */
477         keep-power-in-suspend;
478 
479         mmc-pwrseq = <&sdio_pwrseq>;
480 
481         vmmc-supply = <&vddao_3v3>;
482         vqmmc-supply = <&vddio_ao1v8>;
483 
484         brcmf: wifi@1 {
485                 reg = <1>;
486                 compatible = "brcm,bcm4329-fmac";
487         };
488 };
489 
490 /* SD card */
491 &sd_emmc_b {
492         status = "okay";
493         pinctrl-0 = <&sdcard_c_pins>;
494         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
495         pinctrl-names = "default", "clk-gate";
496 
497         bus-width = <4>;
498         cap-sd-highspeed;
499         max-frequency = <50000000>;
500         disable-wp;
501 
502         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
503         vmmc-supply = <&vddao_3v3>;
504         vqmmc-supply = <&vddao_3v3>;
505 };
506 
507 /* eMMC */
508 &sd_emmc_c {
509         status = "okay";
510         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
511         pinctrl-1 = <&emmc_clk_gate_pins>;
512         pinctrl-names = "default", "clk-gate";
513 
514         bus-width = <8>;
515         cap-mmc-highspeed;
516         mmc-ddr-1_8v;
517         mmc-hs200-1_8v;
518         max-frequency = <200000000>;
519         non-removable;
520         disable-wp;
521 
522         mmc-pwrseq = <&emmc_pwrseq>;
523         vmmc-supply = <&vddao_3v3>;
524         vqmmc-supply = <&emmc_1v8>;
525 };
526 
527 &tdmif_a {
528         pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>;
529         pinctrl-names = "default";
530         status = "okay";
531 
532         assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>,
533                           <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>;
534         assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
535                                  <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
536         assigned-clock-rates = <0>, <0>;
537 };
538 
539 &tdmif_b {
540         status = "okay";
541 };
542 
543 &tdmin_a {
544         status = "okay";
545 };
546 
547 &tdmin_b {
548         status = "okay";
549 };
550 
551 &tdmout_a {
552         status = "okay";
553 };
554 
555 &tdmout_b {
556         status = "okay";
557 };
558 
559 &toddr_a {
560         status = "okay";
561 };
562 
563 &toddr_b {
564         status = "okay";
565 };
566 
567 &toddr_c {
568         status = "okay";
569 };
570 
571 &tohdmitx {
572         status = "okay";
573 };
574 
575 &uart_A {
576         status = "okay";
577         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
578         pinctrl-names = "default";
579         uart-has-rtscts;
580 
581         bluetooth {
582                 compatible = "brcm,bcm43438-bt";
583                 interrupt-parent = <&gpio_intc>;
584                 interrupts = <IRQID_GPIOX_18 IRQ_TYPE_LEVEL_HIGH>;
585                 interrupt-names = "host-wakeup";
586                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
587                 max-speed = <2000000>;
588                 clocks = <&wifi32k>;
589                 clock-names = "lpo";
590                 vbat-supply = <&vddao_3v3>;
591                 vddio-supply = <&vddio_ao1v8>;
592         };
593 };
594 
595 /* Exposed via the on-board USB to Serial FT232RL IC */
596 &uart_AO {
597         status = "okay";
598         pinctrl-0 = <&uart_ao_a_pins>;
599         pinctrl-names = "default";
600 };
601 
602 &usb {
603         status = "okay";
604         dr_mode = "otg";
605 };

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