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 35b7be1449SNeil Armstrong chosen { 36b7be1449SNeil Armstrong stdout-path = "serial0:115200n8"; 37b7be1449SNeil Armstrong }; 38b7be1449SNeil Armstrong 39912a3395SNeil Armstrong cvbs-connector { 40912a3395SNeil Armstrong compatible = "composite-video-connector"; 41912a3395SNeil Armstrong 42912a3395SNeil Armstrong port { 43912a3395SNeil Armstrong cvbs_connector_in: endpoint { 44912a3395SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 45912a3395SNeil Armstrong }; 46912a3395SNeil Armstrong }; 47912a3395SNeil Armstrong }; 48912a3395SNeil Armstrong 495a2ea2f7SJerome Brunet emmc_pwrseq: emmc-pwrseq { 505a2ea2f7SJerome Brunet compatible = "mmc-pwrseq-emmc"; 515a2ea2f7SJerome Brunet reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 525a2ea2f7SJerome Brunet }; 535a2ea2f7SJerome Brunet 54912a3395SNeil Armstrong hdmi-connector { 55912a3395SNeil Armstrong compatible = "hdmi-connector"; 56912a3395SNeil Armstrong type = "a"; 57912a3395SNeil Armstrong 58912a3395SNeil Armstrong port { 59912a3395SNeil Armstrong hdmi_connector_in: endpoint { 60912a3395SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 61912a3395SNeil Armstrong }; 62912a3395SNeil Armstrong }; 63912a3395SNeil Armstrong }; 64912a3395SNeil Armstrong 65b7be1449SNeil Armstrong memory@0 { 66b7be1449SNeil Armstrong device_type = "memory"; 67b7be1449SNeil Armstrong reg = <0x0 0x0 0x0 0x40000000>; 68b7be1449SNeil Armstrong }; 69b7be1449SNeil Armstrong 7073429cf2SJerome Brunet ao_5v: regulator-ao_5v { 7173429cf2SJerome Brunet compatible = "regulator-fixed"; 7273429cf2SJerome Brunet regulator-name = "AO_5V"; 7373429cf2SJerome Brunet regulator-min-microvolt = <5000000>; 7473429cf2SJerome Brunet regulator-max-microvolt = <5000000>; 7573429cf2SJerome Brunet vin-supply = <&dc_in>; 7673429cf2SJerome Brunet regulator-always-on; 77b7be1449SNeil Armstrong }; 7873429cf2SJerome Brunet 7973429cf2SJerome Brunet dc_in: regulator-dc_in { 8073429cf2SJerome Brunet compatible = "regulator-fixed"; 8173429cf2SJerome Brunet regulator-name = "DC_IN"; 8273429cf2SJerome Brunet regulator-min-microvolt = <5000000>; 8373429cf2SJerome Brunet regulator-max-microvolt = <5000000>; 8473429cf2SJerome Brunet regulator-always-on; 8573429cf2SJerome Brunet }; 8673429cf2SJerome Brunet 8773429cf2SJerome Brunet emmc_1v8: regulator-emmc_1v8 { 8873429cf2SJerome Brunet compatible = "regulator-fixed"; 8973429cf2SJerome Brunet regulator-name = "EMMC_1V8"; 9073429cf2SJerome Brunet regulator-min-microvolt = <1800000>; 9173429cf2SJerome Brunet regulator-max-microvolt = <1800000>; 9273429cf2SJerome Brunet vin-supply = <&vddao_3v3>; 9373429cf2SJerome Brunet regulator-always-on; 94b7be1449SNeil Armstrong }; 952297c33cSJerome Brunet 962297c33cSJerome Brunet vddao_3v3: regulator-vddao_3v3 { 972297c33cSJerome Brunet compatible = "regulator-fixed"; 982297c33cSJerome Brunet regulator-name = "VDDAO_3V3"; 992297c33cSJerome Brunet regulator-min-microvolt = <3300000>; 1002297c33cSJerome Brunet regulator-max-microvolt = <3300000>; 1012297c33cSJerome Brunet vin-supply = <&dc_in>; 1022297c33cSJerome Brunet regulator-always-on; 1032297c33cSJerome Brunet }; 1042297c33cSJerome Brunet 1052297c33cSJerome Brunet vddao_3v3_t: regultor-vddao_3v3_t { 1062297c33cSJerome Brunet compatible = "regulator-fixed"; 1072297c33cSJerome Brunet regulator-name = "VDDAO_3V3_T"; 1082297c33cSJerome Brunet regulator-min-microvolt = <3300000>; 1092297c33cSJerome Brunet regulator-max-microvolt = <3300000>; 1102297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1112297c33cSJerome Brunet gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 1122297c33cSJerome Brunet enable-active-high; 1132297c33cSJerome Brunet }; 1142297c33cSJerome Brunet 1152297c33cSJerome Brunet vddio_ao1v8: regulator-vddio_ao1v8 { 1162297c33cSJerome Brunet compatible = "regulator-fixed"; 1172297c33cSJerome Brunet regulator-name = "VDDIO_AO1V8"; 1182297c33cSJerome Brunet regulator-min-microvolt = <1800000>; 1192297c33cSJerome Brunet regulator-max-microvolt = <1800000>; 1202297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1212297c33cSJerome Brunet regulator-always-on; 1222297c33cSJerome Brunet }; 12373429cf2SJerome Brunet 12473429cf2SJerome Brunet reserved-memory { 12573429cf2SJerome Brunet /* TEE Reserved Memory */ 12673429cf2SJerome Brunet bl32_reserved: bl32@5000000 { 12773429cf2SJerome Brunet reg = <0x0 0x05300000 0x0 0x2000000>; 12873429cf2SJerome Brunet no-map; 12973429cf2SJerome Brunet }; 13073429cf2SJerome Brunet }; 1315f57a09eSNeil Armstrong 1325f57a09eSNeil Armstrong sdio_pwrseq: sdio-pwrseq { 1335f57a09eSNeil Armstrong compatible = "mmc-pwrseq-simple"; 1345f57a09eSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1355f57a09eSNeil Armstrong clocks = <&wifi32k>; 1365f57a09eSNeil Armstrong clock-names = "ext_clock"; 1375f57a09eSNeil Armstrong }; 1385f57a09eSNeil Armstrong 1395f57a09eSNeil Armstrong wifi32k: wifi32k { 1405f57a09eSNeil Armstrong compatible = "pwm-clock"; 1415f57a09eSNeil Armstrong #clock-cells = <0>; 1425f57a09eSNeil Armstrong clock-frequency = <32768>; 1435f57a09eSNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1445f57a09eSNeil Armstrong }; 145d1c023afSNeil Armstrong}; 1462297c33cSJerome Brunet 147912a3395SNeil Armstrong&cec_AO { 148912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 149912a3395SNeil Armstrong pinctrl-names = "default"; 150912a3395SNeil Armstrong status = "disabled"; 151912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 152912a3395SNeil Armstrong}; 153912a3395SNeil Armstrong 154912a3395SNeil Armstrong&cecb_AO { 155912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 156912a3395SNeil Armstrong pinctrl-names = "default"; 157912a3395SNeil Armstrong status = "okay"; 158912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 159912a3395SNeil Armstrong}; 160912a3395SNeil Armstrong 161912a3395SNeil Armstrong&cvbs_vdac_port { 162912a3395SNeil Armstrong cvbs_vdac_out: endpoint { 163912a3395SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 164912a3395SNeil Armstrong }; 165912a3395SNeil Armstrong}; 166912a3395SNeil Armstrong 167a1abafb6SJerome Brunetðmac { 168a1abafb6SJerome Brunet status = "okay"; 169a1abafb6SJerome Brunet phy-handle = <&internal_ephy>; 170a1abafb6SJerome Brunet phy-mode = "rmii"; 171a1abafb6SJerome Brunet}; 172a1abafb6SJerome Brunet 17373429cf2SJerome Brunet&hdmi_tx { 17473429cf2SJerome Brunet status = "okay"; 17573429cf2SJerome Brunet pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 17673429cf2SJerome Brunet pinctrl-names = "default"; 17773429cf2SJerome Brunet}; 17873429cf2SJerome Brunet 17973429cf2SJerome Brunet&hdmi_tx_tmds_port { 18073429cf2SJerome Brunet hdmi_tx_tmds_out: endpoint { 18173429cf2SJerome Brunet remote-endpoint = <&hdmi_connector_in>; 18273429cf2SJerome Brunet }; 18373429cf2SJerome Brunet}; 18473429cf2SJerome Brunet 18532232316SJerome Brunet&i2c3 { 18632232316SJerome Brunet status = "okay"; 18732232316SJerome Brunet pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 18832232316SJerome Brunet pinctrl-names = "default"; 18932232316SJerome Brunet}; 19032232316SJerome Brunet 1915f57a09eSNeil Armstrong&pwm_ef { 1925f57a09eSNeil Armstrong status = "okay"; 1935f57a09eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 1945f57a09eSNeil Armstrong pinctrl-names = "default"; 1955f57a09eSNeil Armstrong clocks = <&xtal>; 1965f57a09eSNeil Armstrong clock-names = "clkin0"; 1975f57a09eSNeil Armstrong}; 1985f57a09eSNeil Armstrong 199d1c023afSNeil Armstrong&saradc { 200d1c023afSNeil Armstrong status = "okay"; 201d1c023afSNeil Armstrong vref-supply = <&vddio_ao1v8>; 202d1c023afSNeil Armstrong}; 203d1c023afSNeil Armstrong 2045f57a09eSNeil Armstrong/* SDIO */ 2055f57a09eSNeil Armstrong&sd_emmc_a { 2065f57a09eSNeil Armstrong status = "okay"; 2075f57a09eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 2085f57a09eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 2095f57a09eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 2105f57a09eSNeil Armstrong #address-cells = <1>; 2115f57a09eSNeil Armstrong #size-cells = <0>; 2125f57a09eSNeil Armstrong 2135f57a09eSNeil Armstrong bus-width = <4>; 2145f57a09eSNeil Armstrong cap-sd-highspeed; 2155f57a09eSNeil Armstrong sd-uhs-sdr50; 2165f57a09eSNeil Armstrong max-frequency = <100000000>; 2175f57a09eSNeil Armstrong 2185f57a09eSNeil Armstrong non-removable; 2195f57a09eSNeil Armstrong disable-wp; 2205f57a09eSNeil Armstrong 2215f57a09eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 2225f57a09eSNeil Armstrong 2235f57a09eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 2245f57a09eSNeil Armstrong vqmmc-supply = <&vddio_ao1v8>; 2255f57a09eSNeil Armstrong 2265f57a09eSNeil Armstrong brcmf: wifi@1 { 2275f57a09eSNeil Armstrong reg = <1>; 2285f57a09eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 2295f57a09eSNeil Armstrong }; 2305f57a09eSNeil Armstrong}; 2315f57a09eSNeil Armstrong 2325a2ea2f7SJerome Brunet/* SD card */ 2335a2ea2f7SJerome Brunet&sd_emmc_b { 2345a2ea2f7SJerome Brunet status = "okay"; 2355a2ea2f7SJerome Brunet pinctrl-0 = <&sdcard_c_pins>; 2365a2ea2f7SJerome Brunet pinctrl-1 = <&sdcard_clk_gate_c_pins>; 2375a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 2385a2ea2f7SJerome Brunet 2395a2ea2f7SJerome Brunet bus-width = <4>; 2405a2ea2f7SJerome Brunet cap-sd-highspeed; 2415a2ea2f7SJerome Brunet max-frequency = <50000000>; 2425a2ea2f7SJerome Brunet disable-wp; 2435a2ea2f7SJerome Brunet 2445a2ea2f7SJerome Brunet cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 2455a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 2465a2ea2f7SJerome Brunet vqmmc-supply = <&vddao_3v3>; 2475a2ea2f7SJerome Brunet}; 2485a2ea2f7SJerome Brunet 2495a2ea2f7SJerome Brunet/* eMMC */ 2505a2ea2f7SJerome Brunet&sd_emmc_c { 2515a2ea2f7SJerome Brunet status = "okay"; 2525a2ea2f7SJerome Brunet pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 2535a2ea2f7SJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 2545a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 2555a2ea2f7SJerome Brunet 2565a2ea2f7SJerome Brunet bus-width = <8>; 2575a2ea2f7SJerome Brunet cap-mmc-highspeed; 2585a2ea2f7SJerome Brunet mmc-ddr-1_8v; 2595a2ea2f7SJerome Brunet mmc-hs200-1_8v; 2605a2ea2f7SJerome Brunet max-frequency = <200000000>; 2615a2ea2f7SJerome Brunet non-removable; 2625a2ea2f7SJerome Brunet disable-wp; 2635a2ea2f7SJerome Brunet 2645a2ea2f7SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 2655a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 2665a2ea2f7SJerome Brunet vqmmc-supply = <&emmc_1v8>; 2675a2ea2f7SJerome Brunet}; 2685a2ea2f7SJerome Brunet 269d1c023afSNeil Armstrong&uart_A { 270d1c023afSNeil Armstrong status = "okay"; 271d1c023afSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 272d1c023afSNeil Armstrong pinctrl-names = "default"; 273d1c023afSNeil Armstrong uart-has-rtscts; 274d1c023afSNeil Armstrong 275d1c023afSNeil Armstrong bluetooth { 276d1c023afSNeil Armstrong compatible = "brcm,bcm43438-bt"; 277d1c023afSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 278faf438e0SNeil Armstrong clocks = <&wifi32k>; 279faf438e0SNeil Armstrong clock-names = "lpo"; 280d272c534SJerome Brunet vbat-supply = <&vddao_3v3>; 281d272c534SJerome Brunet vddio-supply = <&vddio_ao1v8>; 282d1c023afSNeil Armstrong }; 283b7be1449SNeil Armstrong}; 284b7be1449SNeil Armstrong 285b7be1449SNeil Armstrong&uart_AO { 286b7be1449SNeil Armstrong status = "okay"; 28751d215c1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 28851d215c1SNeil Armstrong pinctrl-names = "default"; 289b7be1449SNeil Armstrong}; 29041cc4551SNeil Armstrong 29141cc4551SNeil Armstrong&usb { 29241cc4551SNeil Armstrong status = "okay"; 29341cc4551SNeil Armstrong dr_mode = "host"; 29441cc4551SNeil Armstrong}; 295