Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003  * Copyright (c) 2019 BayLibre SAS. All rights reserved.
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include "meson-g12a.dtsi"
0009 #include <dt-bindings/gpio/gpio.h>
0010 #include <dt-bindings/input/input.h>
0011 #include <dt-bindings/gpio/meson-g12a-gpio.h>
0012 #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
0013 
0014 / {
0015         compatible = "seirobotics,sei510", "amlogic,g12a";
0016         model = "SEI Robotics SEI510";
0017 
0018         adc_keys {
0019                 compatible = "adc-keys";
0020                 io-channels = <&saradc 0>;
0021                 io-channel-names = "buttons";
0022                 keyup-threshold-microvolt = <1800000>;
0023 
0024                 button-onoff {
0025                         label = "On/Off";
0026                         linux,code = <KEY_POWER>;
0027                         press-threshold-microvolt = <1700000>;
0028                 };
0029         };
0030 
0031         aliases {
0032                 serial0 = &uart_AO;
0033                 ethernet0 = &ethmac;
0034         };
0035 
0036         mono_dac: audio-codec-0 {
0037                 compatible = "maxim,max98357a";
0038                 #sound-dai-cells = <0>;
0039                 sound-name-prefix = "U16";
0040                 sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>;
0041         };
0042 
0043         dmics: audio-codec-1 {
0044                 #sound-dai-cells = <0>;
0045                 compatible = "dmic-codec";
0046                 num-channels = <2>;
0047                 wakeup-delay-ms = <50>;
0048                 status = "okay";
0049                 sound-name-prefix = "MIC";
0050         };
0051 
0052         chosen {
0053                 stdout-path = "serial0:115200n8";
0054         };
0055 
0056         cvbs-connector {
0057                 compatible = "composite-video-connector";
0058 
0059                 port {
0060                         cvbs_connector_in: endpoint {
0061                                 remote-endpoint = <&cvbs_vdac_out>;
0062                         };
0063                 };
0064         };
0065 
0066         emmc_pwrseq: emmc-pwrseq {
0067                 compatible = "mmc-pwrseq-emmc";
0068                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
0069         };
0070 
0071         hdmi-connector {
0072                 compatible = "hdmi-connector";
0073                 type = "a";
0074 
0075                 port {
0076                         hdmi_connector_in: endpoint {
0077                                 remote-endpoint = <&hdmi_tx_tmds_out>;
0078                         };
0079                 };
0080         };
0081 
0082         memory@0 {
0083                 device_type = "memory";
0084                 reg = <0x0 0x0 0x0 0x40000000>;
0085         };
0086 
0087         ao_5v: regulator-ao_5v {
0088                 compatible = "regulator-fixed";
0089                 regulator-name = "AO_5V";
0090                 regulator-min-microvolt = <5000000>;
0091                 regulator-max-microvolt = <5000000>;
0092                 vin-supply = <&dc_in>;
0093                 regulator-always-on;
0094         };
0095 
0096         dc_in: regulator-dc_in {
0097                 compatible = "regulator-fixed";
0098                 regulator-name = "DC_IN";
0099                 regulator-min-microvolt = <5000000>;
0100                 regulator-max-microvolt = <5000000>;
0101                 regulator-always-on;
0102         };
0103 
0104         emmc_1v8: regulator-emmc_1v8 {
0105                 compatible = "regulator-fixed";
0106                 regulator-name = "EMMC_1V8";
0107                 regulator-min-microvolt = <1800000>;
0108                 regulator-max-microvolt = <1800000>;
0109                 vin-supply = <&vddao_3v3>;
0110                 regulator-always-on;
0111         };
0112 
0113         vddao_3v3: regulator-vddao_3v3 {
0114                 compatible = "regulator-fixed";
0115                 regulator-name = "VDDAO_3V3";
0116                 regulator-min-microvolt = <3300000>;
0117                 regulator-max-microvolt = <3300000>;
0118                 vin-supply = <&dc_in>;
0119                 regulator-always-on;
0120         };
0121 
0122         vddao_3v3_t: regultor-vddao_3v3_t {
0123                 compatible = "regulator-fixed";
0124                 regulator-name = "VDDAO_3V3_T";
0125                 regulator-min-microvolt = <3300000>;
0126                 regulator-max-microvolt = <3300000>;
0127                 vin-supply = <&vddao_3v3>;
0128                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
0129                 enable-active-high;
0130         };
0131 
0132         vddcpu: regulator-vddcpu {
0133                 /*
0134                  * SY8120B1ABC DC/DC Regulator.
0135                  */
0136                 compatible = "pwm-regulator";
0137 
0138                 regulator-name = "VDDCPU";
0139                 regulator-min-microvolt = <721000>;
0140                 regulator-max-microvolt = <1022000>;
0141 
0142                 pwm-supply = <&dc_in>;
0143 
0144                 pwms = <&pwm_AO_cd 1 1250 0>;
0145                 pwm-dutycycle-range = <100 0>;
0146 
0147                 regulator-boot-on;
0148                 regulator-always-on;
0149         };
0150 
0151         vddio_ao1v8: regulator-vddio_ao1v8 {
0152                 compatible = "regulator-fixed";
0153                 regulator-name = "VDDIO_AO1V8";
0154                 regulator-min-microvolt = <1800000>;
0155                 regulator-max-microvolt = <1800000>;
0156                 vin-supply = <&vddao_3v3>;
0157                 regulator-always-on;
0158         };
0159 
0160         sdio_pwrseq: sdio-pwrseq {
0161                 compatible = "mmc-pwrseq-simple";
0162                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
0163                 clocks = <&wifi32k>;
0164                 clock-names = "ext_clock";
0165         };
0166 
0167         wifi32k: wifi32k {
0168                 compatible = "pwm-clock";
0169                 #clock-cells = <0>;
0170                 clock-frequency = <32768>;
0171                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
0172         };
0173 
0174         sound {
0175                 compatible = "amlogic,axg-sound-card";
0176                 model = "SEI510";
0177                 audio-aux-devs = <&tdmout_a>, <&tdmout_b>,
0178                                  <&tdmin_a>, <&tdmin_b>;
0179                 audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
0180                                 "TDMOUT_A IN 1", "FRDDR_B OUT 0",
0181                                 "TDMOUT_A IN 2", "FRDDR_C OUT 0",
0182                                 "TDM_A Playback", "TDMOUT_A OUT",
0183                                 "TDMOUT_B IN 0", "FRDDR_A OUT 1",
0184                                 "TDMOUT_B IN 1", "FRDDR_B OUT 1",
0185                                 "TDMOUT_B IN 2", "FRDDR_C OUT 1",
0186                                 "TDM_B Playback", "TDMOUT_B OUT",
0187                                 "TODDR_A IN 4", "PDM Capture",
0188                                 "TODDR_B IN 4", "PDM Capture",
0189                                 "TODDR_C IN 4", "PDM Capture",
0190                                 "TDMIN_A IN 0", "TDM_A Capture",
0191                                 "TDMIN_A IN 3", "TDM_A Loopback",
0192                                 "TDMIN_B IN 0", "TDM_A Capture",
0193                                 "TDMIN_B IN 3", "TDM_A Loopback",
0194                                 "TDMIN_A IN 1", "TDM_B Capture",
0195                                 "TDMIN_A IN 4", "TDM_B Loopback",
0196                                 "TDMIN_B IN 1", "TDM_B Capture",
0197                                 "TDMIN_B IN 4", "TDM_B Loopback",
0198                                 "TODDR_A IN 0", "TDMIN_A OUT",
0199                                 "TODDR_B IN 0", "TDMIN_A OUT",
0200                                 "TODDR_C IN 0", "TDMIN_A OUT",
0201                                 "TODDR_A IN 1", "TDMIN_B OUT",
0202                                 "TODDR_B IN 1", "TDMIN_B OUT",
0203                                 "TODDR_C IN 1", "TDMIN_B OUT";
0204 
0205                 assigned-clocks = <&clkc CLKID_MPLL2>,
0206                                   <&clkc CLKID_MPLL0>,
0207                                   <&clkc CLKID_MPLL1>;
0208                 assigned-clock-parents = <0>, <0>, <0>;
0209                 assigned-clock-rates = <294912000>,
0210                                        <270950400>,
0211                                        <393216000>;
0212                 status = "okay";
0213 
0214                 dai-link-0 {
0215                         sound-dai = <&frddr_a>;
0216                 };
0217 
0218                 dai-link-1 {
0219                         sound-dai = <&frddr_b>;
0220                 };
0221 
0222                 dai-link-2 {
0223                         sound-dai = <&frddr_c>;
0224                 };
0225 
0226                 dai-link-3 {
0227                         sound-dai = <&toddr_a>;
0228                 };
0229 
0230                 dai-link-4 {
0231                         sound-dai = <&toddr_b>;
0232                 };
0233 
0234                 dai-link-5 {
0235                         sound-dai = <&toddr_c>;
0236                 };
0237 
0238                 /* internal speaker interface */
0239                 dai-link-6 {
0240                         sound-dai = <&tdmif_a>;
0241                         dai-format = "i2s";
0242                         dai-tdm-slot-tx-mask-0 = <1 1>;
0243                         mclk-fs = <256>;
0244 
0245                         codec-0 {
0246                                 sound-dai = <&mono_dac>;
0247                         };
0248 
0249                         codec-1 {
0250                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
0251                         };
0252                 };
0253 
0254                 /* 8ch hdmi interface */
0255                 dai-link-7 {
0256                         sound-dai = <&tdmif_b>;
0257                         dai-format = "i2s";
0258                         dai-tdm-slot-tx-mask-0 = <1 1>;
0259                         dai-tdm-slot-tx-mask-1 = <1 1>;
0260                         dai-tdm-slot-tx-mask-2 = <1 1>;
0261                         dai-tdm-slot-tx-mask-3 = <1 1>;
0262                         mclk-fs = <256>;
0263 
0264                         codec {
0265                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
0266                         };
0267                 };
0268 
0269                 /* internal digital mics */
0270                 dai-link-8 {
0271                         sound-dai = <&pdm>;
0272 
0273                         codec {
0274                                 sound-dai = <&dmics>;
0275                         };
0276                 };
0277 
0278                 /* hdmi glue */
0279                 dai-link-9 {
0280                         sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
0281 
0282                         codec {
0283                                 sound-dai = <&hdmi_tx>;
0284                         };
0285                 };
0286         };
0287 };
0288 
0289 &arb {
0290         status = "okay";
0291 };
0292 
0293 &cec_AO {
0294         pinctrl-0 = <&cec_ao_a_h_pins>;
0295         pinctrl-names = "default";
0296         status = "disabled";
0297         hdmi-phandle = <&hdmi_tx>;
0298 };
0299 
0300 &cecb_AO {
0301         pinctrl-0 = <&cec_ao_b_h_pins>;
0302         pinctrl-names = "default";
0303         status = "okay";
0304         hdmi-phandle = <&hdmi_tx>;
0305 };
0306 
0307 &clkc_audio {
0308         status = "okay";
0309 };
0310 
0311 &cpu0 {
0312         cpu-supply = <&vddcpu>;
0313         operating-points-v2 = <&cpu_opp_table>;
0314         clocks = <&clkc CLKID_CPU_CLK>;
0315         clock-latency = <50000>;
0316 };
0317 
0318 &cpu1 {
0319         cpu-supply = <&vddcpu>;
0320         operating-points-v2 = <&cpu_opp_table>;
0321         clocks = <&clkc CLKID_CPU_CLK>;
0322         clock-latency = <50000>;
0323 };
0324 
0325 &cpu2 {
0326         cpu-supply = <&vddcpu>;
0327         operating-points-v2 = <&cpu_opp_table>;
0328         clocks = <&clkc CLKID_CPU_CLK>;
0329         clock-latency = <50000>;
0330 };
0331 
0332 &cpu3 {
0333         cpu-supply = <&vddcpu>;
0334         operating-points-v2 = <&cpu_opp_table>;
0335         clocks = <&clkc CLKID_CPU_CLK>;
0336         clock-latency = <50000>;
0337 };
0338 
0339 &cvbs_vdac_port {
0340         cvbs_vdac_out: endpoint {
0341                 remote-endpoint = <&cvbs_connector_in>;
0342         };
0343 };
0344 
0345 &ethmac {
0346         status = "okay";
0347         phy-handle = <&internal_ephy>;
0348         phy-mode = "rmii";
0349 };
0350 
0351 &frddr_a {
0352         status = "okay";
0353 };
0354 
0355 &frddr_b {
0356         status = "okay";
0357 };
0358 
0359 &frddr_c {
0360         status = "okay";
0361 };
0362 
0363 &hdmi_tx {
0364         status = "okay";
0365         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
0366         pinctrl-names = "default";
0367 };
0368 
0369 &hdmi_tx_tmds_port {
0370         hdmi_tx_tmds_out: endpoint {
0371                 remote-endpoint = <&hdmi_connector_in>;
0372         };
0373 };
0374 
0375 &i2c3 {
0376         status = "okay";
0377         pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
0378         pinctrl-names = "default";
0379 };
0380 
0381 &ir {
0382         status = "okay";
0383         pinctrl-0 = <&remote_input_ao_pins>;
0384         pinctrl-names = "default";
0385 };
0386 
0387 &pwm_AO_cd {
0388         pinctrl-0 = <&pwm_ao_d_e_pins>;
0389         pinctrl-names = "default";
0390         clocks = <&xtal>;
0391         clock-names = "clkin1";
0392         status = "okay";
0393 };
0394 
0395 &pwm_ef {
0396         status = "okay";
0397         pinctrl-0 = <&pwm_e_pins>;
0398         pinctrl-names = "default";
0399         clocks = <&xtal>;
0400         clock-names = "clkin0";
0401 };
0402 
0403 &pdm {
0404         pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>,
0405                     <&pdm_din2_z_pins>, <&pdm_din3_z_pins>,
0406                     <&pdm_dclk_z_pins>;
0407         pinctrl-names = "default";
0408         status = "okay";
0409 };
0410 
0411 &saradc {
0412         status = "okay";
0413         vref-supply = <&vddio_ao1v8>;
0414 };
0415 
0416 /* SDIO */
0417 &sd_emmc_a {
0418         status = "okay";
0419         pinctrl-0 = <&sdio_pins>;
0420         pinctrl-1 = <&sdio_clk_gate_pins>;
0421         pinctrl-names = "default", "clk-gate";
0422         #address-cells = <1>;
0423         #size-cells = <0>;
0424 
0425         bus-width = <4>;
0426         cap-sd-highspeed;
0427         sd-uhs-sdr50;
0428         max-frequency = <100000000>;
0429 
0430         non-removable;
0431         disable-wp;
0432 
0433         /* WiFi firmware requires power to be kept while in suspend */
0434         keep-power-in-suspend;
0435 
0436         mmc-pwrseq = <&sdio_pwrseq>;
0437 
0438         vmmc-supply = <&vddao_3v3>;
0439         vqmmc-supply = <&vddio_ao1v8>;
0440 
0441         brcmf: wifi@1 {
0442                 reg = <1>;
0443                 compatible = "brcm,bcm4329-fmac";
0444         };
0445 };
0446 
0447 /* SD card */
0448 &sd_emmc_b {
0449         status = "okay";
0450         pinctrl-0 = <&sdcard_c_pins>;
0451         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
0452         pinctrl-names = "default", "clk-gate";
0453 
0454         bus-width = <4>;
0455         cap-sd-highspeed;
0456         max-frequency = <50000000>;
0457         disable-wp;
0458 
0459         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
0460         vmmc-supply = <&vddao_3v3>;
0461         vqmmc-supply = <&vddao_3v3>;
0462 };
0463 
0464 /* eMMC */
0465 &sd_emmc_c {
0466         status = "okay";
0467         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
0468         pinctrl-1 = <&emmc_clk_gate_pins>;
0469         pinctrl-names = "default", "clk-gate";
0470 
0471         bus-width = <8>;
0472         cap-mmc-highspeed;
0473         mmc-ddr-1_8v;
0474         mmc-hs200-1_8v;
0475         max-frequency = <200000000>;
0476         non-removable;
0477         disable-wp;
0478 
0479         mmc-pwrseq = <&emmc_pwrseq>;
0480         vmmc-supply = <&vddao_3v3>;
0481         vqmmc-supply = <&emmc_1v8>;
0482 };
0483 
0484 &tdmif_a {
0485         pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>;
0486         pinctrl-names = "default";
0487         status = "okay";
0488 
0489         assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>,
0490                           <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>;
0491         assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
0492                                  <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
0493         assigned-clock-rates = <0>, <0>;
0494 };
0495 
0496 &tdmif_b {
0497         status = "okay";
0498 };
0499 
0500 &tdmin_a {
0501         status = "okay";
0502 };
0503 
0504 &tdmin_b {
0505         status = "okay";
0506 };
0507 
0508 &tdmout_a {
0509         status = "okay";
0510 };
0511 
0512 &tdmout_b {
0513         status = "okay";
0514 };
0515 
0516 &toddr_a {
0517         status = "okay";
0518 };
0519 
0520 &toddr_b {
0521         status = "okay";
0522 };
0523 
0524 &toddr_c {
0525         status = "okay";
0526 };
0527 
0528 &tohdmitx {
0529         status = "okay";
0530 };
0531 
0532 &uart_A {
0533         status = "okay";
0534         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
0535         pinctrl-names = "default";
0536         uart-has-rtscts;
0537 
0538         bluetooth {
0539                 compatible = "brcm,bcm43438-bt";
0540                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
0541                 max-speed = <2000000>;
0542                 clocks = <&wifi32k>;
0543                 clock-names = "lpo";
0544                 vbat-supply = <&vddao_3v3>;
0545                 vddio-supply = <&vddio_ao1v8>;
0546         };
0547 };
0548 
0549 &uart_AO {
0550         status = "okay";
0551         pinctrl-0 = <&uart_ao_a_pins>;
0552         pinctrl-names = "default";
0553 };
0554 
0555 &usb {
0556         status = "okay";
0557         dr_mode = "host";
0558 };