1*114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 29ded9b0fSMartin Blumenstingl/* 39ded9b0fSMartin Blumenstingl * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>. 49ded9b0fSMartin Blumenstingl * Based on meson-gx-p23x-q20x.dtsi: 59ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 Endless Computers, Inc. 69ded9b0fSMartin Blumenstingl * Author: Carlo Caione <carlo@endlessm.com> 79ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 BayLibre, SAS. 89ded9b0fSMartin Blumenstingl * Author: Neil Armstrong <narmstrong@baylibre.com> 99ded9b0fSMartin Blumenstingl */ 109ded9b0fSMartin Blumenstingl 119ded9b0fSMartin Blumenstingl/* Common DTSI for devices which are based on the P212 reference board. */ 129ded9b0fSMartin Blumenstingl 139ded9b0fSMartin Blumenstingl#include "meson-gxl-s905x.dtsi" 149ded9b0fSMartin Blumenstingl 159ded9b0fSMartin Blumenstingl/ { 169ded9b0fSMartin Blumenstingl aliases { 179ded9b0fSMartin Blumenstingl serial0 = &uart_AO; 189ded9b0fSMartin Blumenstingl serial1 = &uart_A; 19059a58fcSJorge Ramirez-Ortiz ethernet0 = ðmac; 209ded9b0fSMartin Blumenstingl }; 219ded9b0fSMartin Blumenstingl 229ded9b0fSMartin Blumenstingl chosen { 239ded9b0fSMartin Blumenstingl stdout-path = "serial0:115200n8"; 249ded9b0fSMartin Blumenstingl }; 259ded9b0fSMartin Blumenstingl 269ded9b0fSMartin Blumenstingl memory@0 { 279ded9b0fSMartin Blumenstingl device_type = "memory"; 289ded9b0fSMartin Blumenstingl reg = <0x0 0x0 0x0 0x80000000>; 299ded9b0fSMartin Blumenstingl }; 309ded9b0fSMartin Blumenstingl 31b409f625SNeil Armstrong hdmi_5v: regulator-hdmi-5v { 32b409f625SNeil Armstrong compatible = "regulator-fixed"; 33b409f625SNeil Armstrong 34b409f625SNeil Armstrong regulator-name = "HDMI_5V"; 35b409f625SNeil Armstrong regulator-min-microvolt = <5000000>; 36b409f625SNeil Armstrong regulator-max-microvolt = <5000000>; 37b409f625SNeil Armstrong 38b409f625SNeil Armstrong gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 39b409f625SNeil Armstrong enable-active-high; 40b409f625SNeil Armstrong regulator-always-on; 41b409f625SNeil Armstrong }; 42b409f625SNeil Armstrong 439ded9b0fSMartin Blumenstingl vddio_boot: regulator-vddio_boot { 449ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 459ded9b0fSMartin Blumenstingl regulator-name = "VDDIO_BOOT"; 469ded9b0fSMartin Blumenstingl regulator-min-microvolt = <1800000>; 479ded9b0fSMartin Blumenstingl regulator-max-microvolt = <1800000>; 489ded9b0fSMartin Blumenstingl }; 499ded9b0fSMartin Blumenstingl 509ded9b0fSMartin Blumenstingl vddao_3v3: regulator-vddao_3v3 { 519ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 529ded9b0fSMartin Blumenstingl regulator-name = "VDDAO_3V3"; 539ded9b0fSMartin Blumenstingl regulator-min-microvolt = <3300000>; 549ded9b0fSMartin Blumenstingl regulator-max-microvolt = <3300000>; 559ded9b0fSMartin Blumenstingl }; 569ded9b0fSMartin Blumenstingl 579ded9b0fSMartin Blumenstingl vddio_ao18: regulator-vddio_ao18 { 589ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 599ded9b0fSMartin Blumenstingl regulator-name = "VDDIO_AO18"; 609ded9b0fSMartin Blumenstingl regulator-min-microvolt = <1800000>; 619ded9b0fSMartin Blumenstingl regulator-max-microvolt = <1800000>; 629ded9b0fSMartin Blumenstingl }; 639ded9b0fSMartin Blumenstingl 649ded9b0fSMartin Blumenstingl vcc_3v3: regulator-vcc_3v3 { 659ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 669ded9b0fSMartin Blumenstingl regulator-name = "VCC_3V3"; 679ded9b0fSMartin Blumenstingl regulator-min-microvolt = <3300000>; 689ded9b0fSMartin Blumenstingl regulator-max-microvolt = <3300000>; 699ded9b0fSMartin Blumenstingl }; 709ded9b0fSMartin Blumenstingl 719ded9b0fSMartin Blumenstingl emmc_pwrseq: emmc-pwrseq { 729ded9b0fSMartin Blumenstingl compatible = "mmc-pwrseq-emmc"; 739ded9b0fSMartin Blumenstingl reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 749ded9b0fSMartin Blumenstingl }; 759ded9b0fSMartin Blumenstingl 769ded9b0fSMartin Blumenstingl wifi32k: wifi32k { 779ded9b0fSMartin Blumenstingl compatible = "pwm-clock"; 789ded9b0fSMartin Blumenstingl #clock-cells = <0>; 799ded9b0fSMartin Blumenstingl clock-frequency = <32768>; 809ded9b0fSMartin Blumenstingl pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 819ded9b0fSMartin Blumenstingl }; 829ded9b0fSMartin Blumenstingl 839ded9b0fSMartin Blumenstingl sdio_pwrseq: sdio-pwrseq { 849ded9b0fSMartin Blumenstingl compatible = "mmc-pwrseq-simple"; 859ded9b0fSMartin Blumenstingl reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 869ded9b0fSMartin Blumenstingl clocks = <&wifi32k>; 879ded9b0fSMartin Blumenstingl clock-names = "ext_clock"; 889ded9b0fSMartin Blumenstingl }; 899ded9b0fSMartin Blumenstingl}; 909ded9b0fSMartin Blumenstingl 919ded9b0fSMartin Blumenstinglðmac { 929ded9b0fSMartin Blumenstingl status = "okay"; 939ded9b0fSMartin Blumenstingl}; 949ded9b0fSMartin Blumenstingl 959ded9b0fSMartin Blumenstingl&ir { 969ded9b0fSMartin Blumenstingl status = "okay"; 979ded9b0fSMartin Blumenstingl pinctrl-0 = <&remote_input_ao_pins>; 989ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 999ded9b0fSMartin Blumenstingl}; 1009ded9b0fSMartin Blumenstingl 1019ded9b0fSMartin Blumenstingl&saradc { 1029ded9b0fSMartin Blumenstingl status = "okay"; 1039ded9b0fSMartin Blumenstingl vref-supply = <&vddio_ao18>; 1049ded9b0fSMartin Blumenstingl}; 1059ded9b0fSMartin Blumenstingl 1069ded9b0fSMartin Blumenstingl/* Wireless SDIO Module */ 1079ded9b0fSMartin Blumenstingl&sd_emmc_a { 1089ded9b0fSMartin Blumenstingl status = "okay"; 1099ded9b0fSMartin Blumenstingl pinctrl-0 = <&sdio_pins>; 11067e7607fSJerome Brunet pinctrl-1 = <&sdio_clk_gate_pins>; 11167e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 1129ded9b0fSMartin Blumenstingl #address-cells = <1>; 1139ded9b0fSMartin Blumenstingl #size-cells = <0>; 1149ded9b0fSMartin Blumenstingl 1159ded9b0fSMartin Blumenstingl bus-width = <4>; 1169ded9b0fSMartin Blumenstingl cap-sd-highspeed; 1179ded9b0fSMartin Blumenstingl max-frequency = <100000000>; 1189ded9b0fSMartin Blumenstingl 1199ded9b0fSMartin Blumenstingl non-removable; 1209ded9b0fSMartin Blumenstingl disable-wp; 1219ded9b0fSMartin Blumenstingl 1229ded9b0fSMartin Blumenstingl mmc-pwrseq = <&sdio_pwrseq>; 1239ded9b0fSMartin Blumenstingl 1249ded9b0fSMartin Blumenstingl vmmc-supply = <&vddao_3v3>; 1259ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 1269ded9b0fSMartin Blumenstingl}; 1279ded9b0fSMartin Blumenstingl 1289ded9b0fSMartin Blumenstingl/* SD card */ 1299ded9b0fSMartin Blumenstingl&sd_emmc_b { 1309ded9b0fSMartin Blumenstingl status = "okay"; 1319ded9b0fSMartin Blumenstingl pinctrl-0 = <&sdcard_pins>; 13267e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 13367e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 1349ded9b0fSMartin Blumenstingl 1359ded9b0fSMartin Blumenstingl bus-width = <4>; 1369ded9b0fSMartin Blumenstingl cap-sd-highspeed; 1379ded9b0fSMartin Blumenstingl max-frequency = <100000000>; 1389ded9b0fSMartin Blumenstingl disable-wp; 1399ded9b0fSMartin Blumenstingl 1409ded9b0fSMartin Blumenstingl cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 1419ded9b0fSMartin Blumenstingl cd-inverted; 1429ded9b0fSMartin Blumenstingl 1439ded9b0fSMartin Blumenstingl vmmc-supply = <&vddao_3v3>; 1449ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 1459ded9b0fSMartin Blumenstingl}; 1469ded9b0fSMartin Blumenstingl 1479ded9b0fSMartin Blumenstingl/* eMMC */ 1489ded9b0fSMartin Blumenstingl&sd_emmc_c { 1499ded9b0fSMartin Blumenstingl status = "okay"; 150ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 15167e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 15267e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 1539ded9b0fSMartin Blumenstingl 1549ded9b0fSMartin Blumenstingl bus-width = <8>; 1559ded9b0fSMartin Blumenstingl cap-mmc-highspeed; 1569ded9b0fSMartin Blumenstingl max-frequency = <200000000>; 1579ded9b0fSMartin Blumenstingl non-removable; 1589ded9b0fSMartin Blumenstingl disable-wp; 1599ded9b0fSMartin Blumenstingl mmc-ddr-1_8v; 1609ded9b0fSMartin Blumenstingl mmc-hs200-1_8v; 1619ded9b0fSMartin Blumenstingl 1629ded9b0fSMartin Blumenstingl mmc-pwrseq = <&emmc_pwrseq>; 1639ded9b0fSMartin Blumenstingl vmmc-supply = <&vcc_3v3>; 1649ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 1659ded9b0fSMartin Blumenstingl}; 1669ded9b0fSMartin Blumenstingl 1679ded9b0fSMartin Blumenstingl&pwm_ef { 1689ded9b0fSMartin Blumenstingl status = "okay"; 1699ded9b0fSMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>; 1709ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 1719ded9b0fSMartin Blumenstingl clocks = <&clkc CLKID_FCLK_DIV4>; 1729ded9b0fSMartin Blumenstingl clock-names = "clkin0"; 1739ded9b0fSMartin Blumenstingl}; 1749ded9b0fSMartin Blumenstingl 1759ded9b0fSMartin Blumenstingl/* This is connected to the Bluetooth module: */ 1769ded9b0fSMartin Blumenstingl&uart_A { 1779ded9b0fSMartin Blumenstingl status = "okay"; 1789ded9b0fSMartin Blumenstingl pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 1799ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 1809ded9b0fSMartin Blumenstingl uart-has-rtscts; 1819ded9b0fSMartin Blumenstingl}; 1829ded9b0fSMartin Blumenstingl 1839ded9b0fSMartin Blumenstingl&uart_AO { 1849ded9b0fSMartin Blumenstingl status = "okay"; 1859ded9b0fSMartin Blumenstingl pinctrl-0 = <&uart_ao_a_pins>; 1869ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 1879ded9b0fSMartin Blumenstingl}; 188