1b7be1449SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2b7be1449SNeil Armstrong/* 3b7be1449SNeil Armstrong * Copyright (c) 2019 BayLibre SAS. All rights reserved. 4b7be1449SNeil Armstrong */ 5b7be1449SNeil Armstrong 6b7be1449SNeil Armstrong/dts-v1/; 7b7be1449SNeil Armstrong 8b7be1449SNeil Armstrong#include "meson-g12a.dtsi" 92297c33cSJerome Brunet#include <dt-bindings/gpio/gpio.h> 10d1c023afSNeil Armstrong#include <dt-bindings/input/input.h> 112297c33cSJerome Brunet#include <dt-bindings/gpio/meson-g12a-gpio.h> 12b7be1449SNeil Armstrong 13b7be1449SNeil Armstrong/ { 14b7be1449SNeil Armstrong compatible = "seirobotics,sei510", "amlogic,g12a"; 15b7be1449SNeil Armstrong model = "SEI Robotics SEI510"; 16b7be1449SNeil Armstrong 17d1c023afSNeil Armstrong adc_keys { 18d1c023afSNeil Armstrong compatible = "adc-keys"; 19d1c023afSNeil Armstrong io-channels = <&saradc 0>; 20d1c023afSNeil Armstrong io-channel-names = "buttons"; 21d1c023afSNeil Armstrong keyup-threshold-microvolt = <1800000>; 22d1c023afSNeil Armstrong 23d1c023afSNeil Armstrong button-onoff { 24d1c023afSNeil Armstrong label = "On/Off"; 25d1c023afSNeil Armstrong linux,code = <KEY_POWER>; 26d1c023afSNeil Armstrong press-threshold-microvolt = <1700000>; 27d1c023afSNeil Armstrong }; 28d1c023afSNeil Armstrong }; 29d1c023afSNeil Armstrong 3073429cf2SJerome Brunet aliases { 3173429cf2SJerome Brunet serial0 = &uart_AO; 32a1abafb6SJerome Brunet ethernet0 = ðmac; 332297c33cSJerome Brunet }; 342297c33cSJerome Brunet 35b06c8c6eSMaxime Jourdan mono_dac: audio-codec { 36b06c8c6eSMaxime Jourdan compatible = "maxim,max98357a"; 37b06c8c6eSMaxime Jourdan #sound-dai-cells = <0>; 38b06c8c6eSMaxime Jourdan sound-name-prefix = "U16"; 39b06c8c6eSMaxime Jourdan sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>; 40b06c8c6eSMaxime Jourdan }; 41b06c8c6eSMaxime Jourdan 42b7be1449SNeil Armstrong chosen { 43b7be1449SNeil Armstrong stdout-path = "serial0:115200n8"; 44b7be1449SNeil Armstrong }; 45b7be1449SNeil Armstrong 46912a3395SNeil Armstrong cvbs-connector { 47912a3395SNeil Armstrong compatible = "composite-video-connector"; 48912a3395SNeil Armstrong 49912a3395SNeil Armstrong port { 50912a3395SNeil Armstrong cvbs_connector_in: endpoint { 51912a3395SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 52912a3395SNeil Armstrong }; 53912a3395SNeil Armstrong }; 54912a3395SNeil Armstrong }; 55912a3395SNeil Armstrong 565a2ea2f7SJerome Brunet emmc_pwrseq: emmc-pwrseq { 575a2ea2f7SJerome Brunet compatible = "mmc-pwrseq-emmc"; 585a2ea2f7SJerome Brunet reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 595a2ea2f7SJerome Brunet }; 605a2ea2f7SJerome Brunet 61912a3395SNeil Armstrong hdmi-connector { 62912a3395SNeil Armstrong compatible = "hdmi-connector"; 63912a3395SNeil Armstrong type = "a"; 64912a3395SNeil Armstrong 65912a3395SNeil Armstrong port { 66912a3395SNeil Armstrong hdmi_connector_in: endpoint { 67912a3395SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 68912a3395SNeil Armstrong }; 69912a3395SNeil Armstrong }; 70912a3395SNeil Armstrong }; 71912a3395SNeil Armstrong 72b7be1449SNeil Armstrong memory@0 { 73b7be1449SNeil Armstrong device_type = "memory"; 74b7be1449SNeil Armstrong reg = <0x0 0x0 0x0 0x40000000>; 75b7be1449SNeil Armstrong }; 76b7be1449SNeil Armstrong 7773429cf2SJerome Brunet ao_5v: regulator-ao_5v { 7873429cf2SJerome Brunet compatible = "regulator-fixed"; 7973429cf2SJerome Brunet regulator-name = "AO_5V"; 8073429cf2SJerome Brunet regulator-min-microvolt = <5000000>; 8173429cf2SJerome Brunet regulator-max-microvolt = <5000000>; 8273429cf2SJerome Brunet vin-supply = <&dc_in>; 8373429cf2SJerome Brunet regulator-always-on; 84b7be1449SNeil Armstrong }; 8573429cf2SJerome Brunet 8673429cf2SJerome Brunet dc_in: regulator-dc_in { 8773429cf2SJerome Brunet compatible = "regulator-fixed"; 8873429cf2SJerome Brunet regulator-name = "DC_IN"; 8973429cf2SJerome Brunet regulator-min-microvolt = <5000000>; 9073429cf2SJerome Brunet regulator-max-microvolt = <5000000>; 9173429cf2SJerome Brunet regulator-always-on; 9273429cf2SJerome Brunet }; 9373429cf2SJerome Brunet 9473429cf2SJerome Brunet emmc_1v8: regulator-emmc_1v8 { 9573429cf2SJerome Brunet compatible = "regulator-fixed"; 9673429cf2SJerome Brunet regulator-name = "EMMC_1V8"; 9773429cf2SJerome Brunet regulator-min-microvolt = <1800000>; 9873429cf2SJerome Brunet regulator-max-microvolt = <1800000>; 9973429cf2SJerome Brunet vin-supply = <&vddao_3v3>; 10073429cf2SJerome Brunet regulator-always-on; 101b7be1449SNeil Armstrong }; 1022297c33cSJerome Brunet 1032297c33cSJerome Brunet vddao_3v3: regulator-vddao_3v3 { 1042297c33cSJerome Brunet compatible = "regulator-fixed"; 1052297c33cSJerome Brunet regulator-name = "VDDAO_3V3"; 1062297c33cSJerome Brunet regulator-min-microvolt = <3300000>; 1072297c33cSJerome Brunet regulator-max-microvolt = <3300000>; 1082297c33cSJerome Brunet vin-supply = <&dc_in>; 1092297c33cSJerome Brunet regulator-always-on; 1102297c33cSJerome Brunet }; 1112297c33cSJerome Brunet 1122297c33cSJerome Brunet vddao_3v3_t: regultor-vddao_3v3_t { 1132297c33cSJerome Brunet compatible = "regulator-fixed"; 1142297c33cSJerome Brunet regulator-name = "VDDAO_3V3_T"; 1152297c33cSJerome Brunet regulator-min-microvolt = <3300000>; 1162297c33cSJerome Brunet regulator-max-microvolt = <3300000>; 1172297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1182297c33cSJerome Brunet gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 1192297c33cSJerome Brunet enable-active-high; 1202297c33cSJerome Brunet }; 1212297c33cSJerome Brunet 1222297c33cSJerome Brunet vddio_ao1v8: regulator-vddio_ao1v8 { 1232297c33cSJerome Brunet compatible = "regulator-fixed"; 1242297c33cSJerome Brunet regulator-name = "VDDIO_AO1V8"; 1252297c33cSJerome Brunet regulator-min-microvolt = <1800000>; 1262297c33cSJerome Brunet regulator-max-microvolt = <1800000>; 1272297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1282297c33cSJerome Brunet regulator-always-on; 1292297c33cSJerome Brunet }; 13073429cf2SJerome Brunet 13173429cf2SJerome Brunet reserved-memory { 13273429cf2SJerome Brunet /* TEE Reserved Memory */ 13373429cf2SJerome Brunet bl32_reserved: bl32@5000000 { 13473429cf2SJerome Brunet reg = <0x0 0x05300000 0x0 0x2000000>; 13573429cf2SJerome Brunet no-map; 13673429cf2SJerome Brunet }; 13773429cf2SJerome Brunet }; 1385f57a09eSNeil Armstrong 1395f57a09eSNeil Armstrong sdio_pwrseq: sdio-pwrseq { 1405f57a09eSNeil Armstrong compatible = "mmc-pwrseq-simple"; 1415f57a09eSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1425f57a09eSNeil Armstrong clocks = <&wifi32k>; 1435f57a09eSNeil Armstrong clock-names = "ext_clock"; 1445f57a09eSNeil Armstrong }; 1455f57a09eSNeil Armstrong 1465f57a09eSNeil Armstrong wifi32k: wifi32k { 1475f57a09eSNeil Armstrong compatible = "pwm-clock"; 1485f57a09eSNeil Armstrong #clock-cells = <0>; 1495f57a09eSNeil Armstrong clock-frequency = <32768>; 1505f57a09eSNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1515f57a09eSNeil Armstrong }; 152d1c023afSNeil Armstrong}; 1532297c33cSJerome Brunet 154912a3395SNeil Armstrong&cec_AO { 155912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 156912a3395SNeil Armstrong pinctrl-names = "default"; 157912a3395SNeil Armstrong status = "disabled"; 158912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 159912a3395SNeil Armstrong}; 160912a3395SNeil Armstrong 161912a3395SNeil Armstrong&cecb_AO { 162912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 163912a3395SNeil Armstrong pinctrl-names = "default"; 164912a3395SNeil Armstrong status = "okay"; 165912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 166912a3395SNeil Armstrong}; 167912a3395SNeil Armstrong 168912a3395SNeil Armstrong&cvbs_vdac_port { 169912a3395SNeil Armstrong cvbs_vdac_out: endpoint { 170912a3395SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 171912a3395SNeil Armstrong }; 172912a3395SNeil Armstrong}; 173912a3395SNeil Armstrong 174a1abafb6SJerome Brunetðmac { 175a1abafb6SJerome Brunet status = "okay"; 176a1abafb6SJerome Brunet phy-handle = <&internal_ephy>; 177a1abafb6SJerome Brunet phy-mode = "rmii"; 178a1abafb6SJerome Brunet}; 179a1abafb6SJerome Brunet 18073429cf2SJerome Brunet&hdmi_tx { 18173429cf2SJerome Brunet status = "okay"; 18273429cf2SJerome Brunet pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 18373429cf2SJerome Brunet pinctrl-names = "default"; 18473429cf2SJerome Brunet}; 18573429cf2SJerome Brunet 18673429cf2SJerome Brunet&hdmi_tx_tmds_port { 18773429cf2SJerome Brunet hdmi_tx_tmds_out: endpoint { 18873429cf2SJerome Brunet remote-endpoint = <&hdmi_connector_in>; 18973429cf2SJerome Brunet }; 19073429cf2SJerome Brunet}; 19173429cf2SJerome Brunet 19232232316SJerome Brunet&i2c3 { 19332232316SJerome Brunet status = "okay"; 19432232316SJerome Brunet pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 19532232316SJerome Brunet pinctrl-names = "default"; 19632232316SJerome Brunet}; 19732232316SJerome Brunet 1985f57a09eSNeil Armstrong&pwm_ef { 1995f57a09eSNeil Armstrong status = "okay"; 2005f57a09eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 2015f57a09eSNeil Armstrong pinctrl-names = "default"; 2025f57a09eSNeil Armstrong clocks = <&xtal>; 2035f57a09eSNeil Armstrong clock-names = "clkin0"; 2045f57a09eSNeil Armstrong}; 2055f57a09eSNeil Armstrong 206d1c023afSNeil Armstrong&saradc { 207d1c023afSNeil Armstrong status = "okay"; 208d1c023afSNeil Armstrong vref-supply = <&vddio_ao1v8>; 209d1c023afSNeil Armstrong}; 210d1c023afSNeil Armstrong 2115f57a09eSNeil Armstrong/* SDIO */ 2125f57a09eSNeil Armstrong&sd_emmc_a { 2135f57a09eSNeil Armstrong status = "okay"; 2145f57a09eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 2155f57a09eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 2165f57a09eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 2175f57a09eSNeil Armstrong #address-cells = <1>; 2185f57a09eSNeil Armstrong #size-cells = <0>; 2195f57a09eSNeil Armstrong 2205f57a09eSNeil Armstrong bus-width = <4>; 2215f57a09eSNeil Armstrong cap-sd-highspeed; 2225f57a09eSNeil Armstrong sd-uhs-sdr50; 2235f57a09eSNeil Armstrong max-frequency = <100000000>; 2245f57a09eSNeil Armstrong 2255f57a09eSNeil Armstrong non-removable; 2265f57a09eSNeil Armstrong disable-wp; 2275f57a09eSNeil Armstrong 2285f57a09eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 2295f57a09eSNeil Armstrong 2305f57a09eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 2315f57a09eSNeil Armstrong vqmmc-supply = <&vddio_ao1v8>; 2325f57a09eSNeil Armstrong 2335f57a09eSNeil Armstrong brcmf: wifi@1 { 2345f57a09eSNeil Armstrong reg = <1>; 2355f57a09eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 2365f57a09eSNeil Armstrong }; 2375f57a09eSNeil Armstrong}; 2385f57a09eSNeil Armstrong 2395a2ea2f7SJerome Brunet/* SD card */ 2405a2ea2f7SJerome Brunet&sd_emmc_b { 2415a2ea2f7SJerome Brunet status = "okay"; 2425a2ea2f7SJerome Brunet pinctrl-0 = <&sdcard_c_pins>; 2435a2ea2f7SJerome Brunet pinctrl-1 = <&sdcard_clk_gate_c_pins>; 2445a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 2455a2ea2f7SJerome Brunet 2465a2ea2f7SJerome Brunet bus-width = <4>; 2475a2ea2f7SJerome Brunet cap-sd-highspeed; 2485a2ea2f7SJerome Brunet max-frequency = <50000000>; 2495a2ea2f7SJerome Brunet disable-wp; 2505a2ea2f7SJerome Brunet 2515a2ea2f7SJerome Brunet cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 2525a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 2535a2ea2f7SJerome Brunet vqmmc-supply = <&vddao_3v3>; 2545a2ea2f7SJerome Brunet}; 2555a2ea2f7SJerome Brunet 2565a2ea2f7SJerome Brunet/* eMMC */ 2575a2ea2f7SJerome Brunet&sd_emmc_c { 2585a2ea2f7SJerome Brunet status = "okay"; 2595a2ea2f7SJerome Brunet pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 2605a2ea2f7SJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 2615a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 2625a2ea2f7SJerome Brunet 2635a2ea2f7SJerome Brunet bus-width = <8>; 2645a2ea2f7SJerome Brunet cap-mmc-highspeed; 2655a2ea2f7SJerome Brunet mmc-ddr-1_8v; 2665a2ea2f7SJerome Brunet mmc-hs200-1_8v; 2675a2ea2f7SJerome Brunet max-frequency = <200000000>; 2685a2ea2f7SJerome Brunet non-removable; 2695a2ea2f7SJerome Brunet disable-wp; 2705a2ea2f7SJerome Brunet 2715a2ea2f7SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 2725a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 2735a2ea2f7SJerome Brunet vqmmc-supply = <&emmc_1v8>; 2745a2ea2f7SJerome Brunet}; 2755a2ea2f7SJerome Brunet 276d1c023afSNeil Armstrong&uart_A { 277d1c023afSNeil Armstrong status = "okay"; 278d1c023afSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 279d1c023afSNeil Armstrong pinctrl-names = "default"; 280d1c023afSNeil Armstrong uart-has-rtscts; 281d1c023afSNeil Armstrong 282d1c023afSNeil Armstrong bluetooth { 283d1c023afSNeil Armstrong compatible = "brcm,bcm43438-bt"; 284d1c023afSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 285dff60019SNeil Armstrong max-speed = <2000000>; 286faf438e0SNeil Armstrong clocks = <&wifi32k>; 287faf438e0SNeil Armstrong clock-names = "lpo"; 288d272c534SJerome Brunet vbat-supply = <&vddao_3v3>; 289d272c534SJerome Brunet vddio-supply = <&vddio_ao1v8>; 290d1c023afSNeil Armstrong }; 291b7be1449SNeil Armstrong}; 292b7be1449SNeil Armstrong 293b7be1449SNeil Armstrong&uart_AO { 294b7be1449SNeil Armstrong status = "okay"; 29551d215c1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 29651d215c1SNeil Armstrong pinctrl-names = "default"; 297b7be1449SNeil Armstrong}; 29841cc4551SNeil Armstrong 29941cc4551SNeil Armstrong&usb { 30041cc4551SNeil Armstrong status = "okay"; 30141cc4551SNeil Armstrong dr_mode = "host"; 30241cc4551SNeil Armstrong}; 303