1114abfe1SNeil 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; 18059a58fcSJorge Ramirez-Ortiz ethernet0 = ðmac; 199ded9b0fSMartin Blumenstingl }; 209ded9b0fSMartin Blumenstingl 219ded9b0fSMartin Blumenstingl chosen { 229ded9b0fSMartin Blumenstingl stdout-path = "serial0:115200n8"; 239ded9b0fSMartin Blumenstingl }; 249ded9b0fSMartin Blumenstingl 259ded9b0fSMartin Blumenstingl memory@0 { 269ded9b0fSMartin Blumenstingl device_type = "memory"; 279ded9b0fSMartin Blumenstingl reg = <0x0 0x0 0x0 0x80000000>; 289ded9b0fSMartin Blumenstingl }; 299ded9b0fSMartin Blumenstingl 30b409f625SNeil Armstrong hdmi_5v: regulator-hdmi-5v { 31b409f625SNeil Armstrong compatible = "regulator-fixed"; 32b409f625SNeil Armstrong 33b409f625SNeil Armstrong regulator-name = "HDMI_5V"; 34b409f625SNeil Armstrong regulator-min-microvolt = <5000000>; 35b409f625SNeil Armstrong regulator-max-microvolt = <5000000>; 36b409f625SNeil Armstrong 37b409f625SNeil Armstrong gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 38b409f625SNeil Armstrong enable-active-high; 39b409f625SNeil Armstrong regulator-always-on; 40b409f625SNeil Armstrong }; 41b409f625SNeil Armstrong 429ded9b0fSMartin Blumenstingl vddio_boot: regulator-vddio_boot { 439ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 449ded9b0fSMartin Blumenstingl regulator-name = "VDDIO_BOOT"; 459ded9b0fSMartin Blumenstingl regulator-min-microvolt = <1800000>; 469ded9b0fSMartin Blumenstingl regulator-max-microvolt = <1800000>; 479ded9b0fSMartin Blumenstingl }; 489ded9b0fSMartin Blumenstingl 499ded9b0fSMartin Blumenstingl vddao_3v3: regulator-vddao_3v3 { 509ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 519ded9b0fSMartin Blumenstingl regulator-name = "VDDAO_3V3"; 529ded9b0fSMartin Blumenstingl regulator-min-microvolt = <3300000>; 539ded9b0fSMartin Blumenstingl regulator-max-microvolt = <3300000>; 549ded9b0fSMartin Blumenstingl }; 559ded9b0fSMartin Blumenstingl 569ded9b0fSMartin Blumenstingl vddio_ao18: regulator-vddio_ao18 { 579ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 589ded9b0fSMartin Blumenstingl regulator-name = "VDDIO_AO18"; 599ded9b0fSMartin Blumenstingl regulator-min-microvolt = <1800000>; 609ded9b0fSMartin Blumenstingl regulator-max-microvolt = <1800000>; 619ded9b0fSMartin Blumenstingl }; 629ded9b0fSMartin Blumenstingl 639ded9b0fSMartin Blumenstingl vcc_3v3: regulator-vcc_3v3 { 649ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 659ded9b0fSMartin Blumenstingl regulator-name = "VCC_3V3"; 669ded9b0fSMartin Blumenstingl regulator-min-microvolt = <3300000>; 679ded9b0fSMartin Blumenstingl regulator-max-microvolt = <3300000>; 689ded9b0fSMartin Blumenstingl }; 699ded9b0fSMartin Blumenstingl 709ded9b0fSMartin Blumenstingl emmc_pwrseq: emmc-pwrseq { 719ded9b0fSMartin Blumenstingl compatible = "mmc-pwrseq-emmc"; 729ded9b0fSMartin Blumenstingl reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 739ded9b0fSMartin Blumenstingl }; 749ded9b0fSMartin Blumenstingl 759ded9b0fSMartin Blumenstingl wifi32k: wifi32k { 769ded9b0fSMartin Blumenstingl compatible = "pwm-clock"; 779ded9b0fSMartin Blumenstingl #clock-cells = <0>; 789ded9b0fSMartin Blumenstingl clock-frequency = <32768>; 799ded9b0fSMartin Blumenstingl pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 809ded9b0fSMartin Blumenstingl }; 819ded9b0fSMartin Blumenstingl 829ded9b0fSMartin Blumenstingl sdio_pwrseq: sdio-pwrseq { 839ded9b0fSMartin Blumenstingl compatible = "mmc-pwrseq-simple"; 849ded9b0fSMartin Blumenstingl reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 859ded9b0fSMartin Blumenstingl clocks = <&wifi32k>; 869ded9b0fSMartin Blumenstingl clock-names = "ext_clock"; 879ded9b0fSMartin Blumenstingl }; 889ded9b0fSMartin Blumenstingl}; 899ded9b0fSMartin Blumenstingl 909ded9b0fSMartin Blumenstinglðmac { 919ded9b0fSMartin Blumenstingl status = "okay"; 929ded9b0fSMartin Blumenstingl}; 939ded9b0fSMartin Blumenstingl 949ded9b0fSMartin Blumenstingl&ir { 959ded9b0fSMartin Blumenstingl status = "okay"; 969ded9b0fSMartin Blumenstingl pinctrl-0 = <&remote_input_ao_pins>; 979ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 989ded9b0fSMartin Blumenstingl}; 999ded9b0fSMartin Blumenstingl 1009ded9b0fSMartin Blumenstingl&saradc { 1019ded9b0fSMartin Blumenstingl status = "okay"; 1029ded9b0fSMartin Blumenstingl vref-supply = <&vddio_ao18>; 1039ded9b0fSMartin Blumenstingl}; 1049ded9b0fSMartin Blumenstingl 1059ded9b0fSMartin Blumenstingl/* Wireless SDIO Module */ 1069ded9b0fSMartin Blumenstingl&sd_emmc_a { 1079ded9b0fSMartin Blumenstingl status = "okay"; 1089ded9b0fSMartin Blumenstingl pinctrl-0 = <&sdio_pins>; 10967e7607fSJerome Brunet pinctrl-1 = <&sdio_clk_gate_pins>; 11067e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 1119ded9b0fSMartin Blumenstingl #address-cells = <1>; 1129ded9b0fSMartin Blumenstingl #size-cells = <0>; 1139ded9b0fSMartin Blumenstingl 1149ded9b0fSMartin Blumenstingl bus-width = <4>; 1159ded9b0fSMartin Blumenstingl cap-sd-highspeed; 116adc52bf7SJerome Brunet max-frequency = <50000000>; 1179ded9b0fSMartin Blumenstingl 1189ded9b0fSMartin Blumenstingl non-removable; 1199ded9b0fSMartin Blumenstingl disable-wp; 1209ded9b0fSMartin Blumenstingl 12132122c46SNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 12232122c46SNeil Armstrong keep-power-in-suspend; 12332122c46SNeil Armstrong 1249ded9b0fSMartin Blumenstingl mmc-pwrseq = <&sdio_pwrseq>; 1259ded9b0fSMartin Blumenstingl 1269ded9b0fSMartin Blumenstingl vmmc-supply = <&vddao_3v3>; 1279ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 1289ded9b0fSMartin Blumenstingl}; 1299ded9b0fSMartin Blumenstingl 1309ded9b0fSMartin Blumenstingl/* SD card */ 1319ded9b0fSMartin Blumenstingl&sd_emmc_b { 1329ded9b0fSMartin Blumenstingl status = "okay"; 1339ded9b0fSMartin Blumenstingl pinctrl-0 = <&sdcard_pins>; 13467e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 13567e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 1369ded9b0fSMartin Blumenstingl 1379ded9b0fSMartin Blumenstingl bus-width = <4>; 1389ded9b0fSMartin Blumenstingl cap-sd-highspeed; 139adc52bf7SJerome Brunet max-frequency = <50000000>; 1409ded9b0fSMartin Blumenstingl disable-wp; 1419ded9b0fSMartin Blumenstingl 142f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 1439ded9b0fSMartin Blumenstingl 1449ded9b0fSMartin Blumenstingl vmmc-supply = <&vddao_3v3>; 1459ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 1469ded9b0fSMartin Blumenstingl}; 1479ded9b0fSMartin Blumenstingl 1489ded9b0fSMartin Blumenstingl/* eMMC */ 1499ded9b0fSMartin Blumenstingl&sd_emmc_c { 1509ded9b0fSMartin Blumenstingl status = "okay"; 151ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 15267e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 15367e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 1549ded9b0fSMartin Blumenstingl 1559ded9b0fSMartin Blumenstingl bus-width = <8>; 1569ded9b0fSMartin Blumenstingl cap-mmc-highspeed; 1579ded9b0fSMartin Blumenstingl max-frequency = <200000000>; 1589ded9b0fSMartin Blumenstingl non-removable; 1599ded9b0fSMartin Blumenstingl disable-wp; 1609ded9b0fSMartin Blumenstingl mmc-ddr-1_8v; 1619ded9b0fSMartin Blumenstingl mmc-hs200-1_8v; 1629ded9b0fSMartin Blumenstingl 1639ded9b0fSMartin Blumenstingl mmc-pwrseq = <&emmc_pwrseq>; 1649ded9b0fSMartin Blumenstingl vmmc-supply = <&vcc_3v3>; 1659ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 1669ded9b0fSMartin Blumenstingl}; 1679ded9b0fSMartin Blumenstingl 1689ded9b0fSMartin Blumenstingl&pwm_ef { 1699ded9b0fSMartin Blumenstingl status = "okay"; 1709ded9b0fSMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>; 1719ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 1729ded9b0fSMartin Blumenstingl clocks = <&clkc CLKID_FCLK_DIV4>; 1739ded9b0fSMartin Blumenstingl clock-names = "clkin0"; 1749ded9b0fSMartin Blumenstingl}; 1759ded9b0fSMartin Blumenstingl 1769ded9b0fSMartin Blumenstingl/* This is connected to the Bluetooth module: */ 1779ded9b0fSMartin Blumenstingl&uart_A { 1789ded9b0fSMartin Blumenstingl status = "okay"; 1799ded9b0fSMartin Blumenstingl pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 1809ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 1819ded9b0fSMartin Blumenstingl uart-has-rtscts; 182026c20e7SChristian Hewitt 183026c20e7SChristian Hewitt bluetooth { 184026c20e7SChristian Hewitt compatible = "brcm,bcm43438-bt"; 185026c20e7SChristian Hewitt shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 186026c20e7SChristian Hewitt max-speed = <2000000>; 187026c20e7SChristian Hewitt clocks = <&wifi32k>; 188026c20e7SChristian Hewitt clock-names = "lpo"; 189026c20e7SChristian Hewitt }; 1909ded9b0fSMartin Blumenstingl}; 1919ded9b0fSMartin Blumenstingl 1929ded9b0fSMartin Blumenstingl&uart_AO { 1939ded9b0fSMartin Blumenstingl status = "okay"; 1949ded9b0fSMartin Blumenstingl pinctrl-0 = <&uart_ao_a_pins>; 1959ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 1969ded9b0fSMartin Blumenstingl}; 197b9f07cb4SMartin Blumenstingl 198*2f9139c2SMartin Blumenstingl&usb { 199b9f07cb4SMartin Blumenstingl status = "okay"; 200*2f9139c2SMartin Blumenstingl dr_mode = "host"; 201b9f07cb4SMartin Blumenstingl}; 202d511b3e4SNeil Armstrong 203d511b3e4SNeil Armstrong&usb2_phy0 { 204d511b3e4SNeil Armstrong /* 205d511b3e4SNeil Armstrong * HDMI_5V is also used as supply for the USB VBUS. 206d511b3e4SNeil Armstrong */ 207d511b3e4SNeil Armstrong phy-supply = <&hdmi_5v>; 208d511b3e4SNeil Armstrong}; 209