xref: /openbmc/linux/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
29bc7ffb0SAndreas Färber/*
39bc7ffb0SAndreas Färber * Copyright (c) 2017 Andreas Färber
49bc7ffb0SAndreas Färber */
59bc7ffb0SAndreas Färber
69bc7ffb0SAndreas Färber/dts-v1/;
79bc7ffb0SAndreas Färber
89bc7ffb0SAndreas Färber#include "meson-gxbb.dtsi"
99bc7ffb0SAndreas Färber#include <dt-bindings/gpio/gpio.h>
106a74f78cSChristian Hewitt#include <dt-bindings/sound/meson-aiu.h>
119bc7ffb0SAndreas Färber
129bc7ffb0SAndreas Färber/ {
139bc7ffb0SAndreas Färber	compatible = "friendlyarm,nanopi-k2", "amlogic,meson-gxbb";
14591185c1SNeil Armstrong	model = "FriendlyARM NanoPi K2";
159bc7ffb0SAndreas Färber
169bc7ffb0SAndreas Färber	aliases {
179bc7ffb0SAndreas Färber		serial0 = &uart_AO;
18059a58fcSJorge Ramirez-Ortiz		ethernet0 = &ethmac;
199bc7ffb0SAndreas Färber	};
209bc7ffb0SAndreas Färber
219bc7ffb0SAndreas Färber	chosen {
229bc7ffb0SAndreas Färber		stdout-path = "serial0:115200n8";
239bc7ffb0SAndreas Färber	};
249bc7ffb0SAndreas Färber
259bc7ffb0SAndreas Färber	memory@0 {
269bc7ffb0SAndreas Färber		device_type = "memory";
279bc7ffb0SAndreas Färber		reg = <0x0 0x0 0x0 0x80000000>;
289bc7ffb0SAndreas Färber	};
299bc7ffb0SAndreas Färber
309bc7ffb0SAndreas Färber	leds {
319bc7ffb0SAndreas Färber		compatible = "gpio-leds";
329bc7ffb0SAndreas Färber
3308dc0e5dSNeil Armstrong		led-stat {
349bc7ffb0SAndreas Färber			label = "nanopi-k2:blue:stat";
359bc7ffb0SAndreas Färber			gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
369bc7ffb0SAndreas Färber			default-state = "on";
379bc7ffb0SAndreas Färber			panic-indicator;
389bc7ffb0SAndreas Färber		};
399bc7ffb0SAndreas Färber	};
409bc7ffb0SAndreas Färber
419bc7ffb0SAndreas Färber	vdd_5v: regulator-vdd-5v {
429bc7ffb0SAndreas Färber		compatible = "regulator-fixed";
439bc7ffb0SAndreas Färber		regulator-name = "VDD_5V";
449bc7ffb0SAndreas Färber		regulator-min-microvolt = <5000000>;
459bc7ffb0SAndreas Färber		regulator-max-microvolt = <5000000>;
469bc7ffb0SAndreas Färber	};
479bc7ffb0SAndreas Färber
489bc7ffb0SAndreas Färber	vddio_ao18: regulator-vddio-ao18 {
499bc7ffb0SAndreas Färber		compatible = "regulator-fixed";
509bc7ffb0SAndreas Färber		regulator-name = "VDDIO_AO18";
519bc7ffb0SAndreas Färber		regulator-min-microvolt = <1800000>;
529bc7ffb0SAndreas Färber		regulator-max-microvolt = <1800000>;
539bc7ffb0SAndreas Färber	};
549bc7ffb0SAndreas Färber
559bc7ffb0SAndreas Färber	vddio_ao3v3: regulator-vddio-ao3v3 {
569bc7ffb0SAndreas Färber		compatible = "regulator-fixed";
579bc7ffb0SAndreas Färber		regulator-name = "VDDIO_AO3.3V";
589bc7ffb0SAndreas Färber		regulator-min-microvolt = <3300000>;
599bc7ffb0SAndreas Färber		regulator-max-microvolt = <3300000>;
609bc7ffb0SAndreas Färber	};
619bc7ffb0SAndreas Färber
629bc7ffb0SAndreas Färber	vddio_tf: regulator-vddio-tf {
639bc7ffb0SAndreas Färber		compatible = "regulator-gpio";
649bc7ffb0SAndreas Färber
659bc7ffb0SAndreas Färber		regulator-name = "VDDIO_TF";
669bc7ffb0SAndreas Färber		regulator-min-microvolt = <1800000>;
679bc7ffb0SAndreas Färber		regulator-max-microvolt = <3300000>;
689bc7ffb0SAndreas Färber
699bc7ffb0SAndreas Färber		gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
709bc7ffb0SAndreas Färber		gpios-states = <0>;
719bc7ffb0SAndreas Färber
729bc7ffb0SAndreas Färber		states = <3300000 0>,
739bc7ffb0SAndreas Färber		         <1800000 1>;
7442776561SJerome Brunet
7542776561SJerome Brunet		regulator-settling-time-up-us = <100>;
7642776561SJerome Brunet		regulator-settling-time-down-us = <5000>;
779bc7ffb0SAndreas Färber	};
789bc7ffb0SAndreas Färber
799bc7ffb0SAndreas Färber	wifi_32k: wifi-32k {
809bc7ffb0SAndreas Färber		compatible = "pwm-clock";
819bc7ffb0SAndreas Färber		#clock-cells = <0>;
829bc7ffb0SAndreas Färber		clock-frequency = <32768>;
839bc7ffb0SAndreas Färber		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
849bc7ffb0SAndreas Färber	};
859bc7ffb0SAndreas Färber
869bc7ffb0SAndreas Färber	sdio_pwrseq: sdio-pwrseq {
879bc7ffb0SAndreas Färber		compatible = "mmc-pwrseq-simple";
889bc7ffb0SAndreas Färber		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
899bc7ffb0SAndreas Färber		clocks = <&wifi_32k>;
909bc7ffb0SAndreas Färber		clock-names = "ext_clock";
919bc7ffb0SAndreas Färber	};
929bc7ffb0SAndreas Färber
939bc7ffb0SAndreas Färber	vcc1v8: regulator-vcc1v8 {
949bc7ffb0SAndreas Färber		compatible = "regulator-fixed";
959bc7ffb0SAndreas Färber		regulator-name = "VCC1.8V";
969bc7ffb0SAndreas Färber		regulator-min-microvolt = <1800000>;
979bc7ffb0SAndreas Färber		regulator-max-microvolt = <1800000>;
989bc7ffb0SAndreas Färber	};
999bc7ffb0SAndreas Färber
1009bc7ffb0SAndreas Färber	vcc3v3: regulator-vcc3v3 {
1019bc7ffb0SAndreas Färber		compatible = "regulator-fixed";
1029bc7ffb0SAndreas Färber		regulator-name = "VCC3.3V";
1039bc7ffb0SAndreas Färber		regulator-min-microvolt = <3300000>;
1049bc7ffb0SAndreas Färber		regulator-max-microvolt = <3300000>;
1059bc7ffb0SAndreas Färber	};
1069bc7ffb0SAndreas Färber
1079bc7ffb0SAndreas Färber	emmc_pwrseq: emmc-pwrseq {
1089bc7ffb0SAndreas Färber		compatible = "mmc-pwrseq-emmc";
1099bc7ffb0SAndreas Färber		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
1109bc7ffb0SAndreas Färber	};
111d1b5a0a8SNeil Armstrong
112d1b5a0a8SNeil Armstrong	/* CVBS is available on CON1 pin 36, disabled by default */
113d1b5a0a8SNeil Armstrong	cvbs-connector {
114d1b5a0a8SNeil Armstrong		compatible = "composite-video-connector";
115d1b5a0a8SNeil Armstrong		status = "disabled";
116d1b5a0a8SNeil Armstrong
117d1b5a0a8SNeil Armstrong		port {
118d1b5a0a8SNeil Armstrong			cvbs_connector_in: endpoint {
119d1b5a0a8SNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
120d1b5a0a8SNeil Armstrong			};
121d1b5a0a8SNeil Armstrong		};
122d1b5a0a8SNeil Armstrong	};
123d1b5a0a8SNeil Armstrong
124d1b5a0a8SNeil Armstrong	hdmi-connector {
125d1b5a0a8SNeil Armstrong		compatible = "hdmi-connector";
126d1b5a0a8SNeil Armstrong		type = "a";
127d1b5a0a8SNeil Armstrong
128d1b5a0a8SNeil Armstrong		port {
129d1b5a0a8SNeil Armstrong			hdmi_connector_in: endpoint {
130d1b5a0a8SNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
131d1b5a0a8SNeil Armstrong			};
132d1b5a0a8SNeil Armstrong		};
133d1b5a0a8SNeil Armstrong	};
1346a74f78cSChristian Hewitt
1356a74f78cSChristian Hewitt	sound {
1366a74f78cSChristian Hewitt		compatible = "amlogic,gx-sound-card";
137933b80edSChristian Hewitt		model = "NANOPI-K2";
1386a74f78cSChristian Hewitt		assigned-clocks = <&clkc CLKID_MPLL0>,
1396a74f78cSChristian Hewitt				  <&clkc CLKID_MPLL1>,
1406a74f78cSChristian Hewitt				  <&clkc CLKID_MPLL2>;
1416a74f78cSChristian Hewitt		assigned-clock-parents = <0>, <0>, <0>;
1426a74f78cSChristian Hewitt		assigned-clock-rates = <294912000>,
1436a74f78cSChristian Hewitt				       <270950400>,
1446a74f78cSChristian Hewitt				       <393216000>;
1456a74f78cSChristian Hewitt
1466a74f78cSChristian Hewitt		dai-link-0 {
1476a74f78cSChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
1486a74f78cSChristian Hewitt		};
1496a74f78cSChristian Hewitt
1506a74f78cSChristian Hewitt		dai-link-1 {
1516a74f78cSChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
1526a74f78cSChristian Hewitt			dai-format = "i2s";
1536a74f78cSChristian Hewitt			mclk-fs = <256>;
1546a74f78cSChristian Hewitt
1556a74f78cSChristian Hewitt			codec-0 {
1566a74f78cSChristian Hewitt				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
1576a74f78cSChristian Hewitt			};
1586a74f78cSChristian Hewitt		};
1596a74f78cSChristian Hewitt
1606a74f78cSChristian Hewitt		dai-link-2 {
1616a74f78cSChristian Hewitt			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
1626a74f78cSChristian Hewitt
1636a74f78cSChristian Hewitt			codec-0 {
1646a74f78cSChristian Hewitt				sound-dai = <&hdmi_tx>;
1656a74f78cSChristian Hewitt			};
1666a74f78cSChristian Hewitt		};
1676a74f78cSChristian Hewitt	};
1686a74f78cSChristian Hewitt};
1696a74f78cSChristian Hewitt
1706a74f78cSChristian Hewitt&aiu {
1716a74f78cSChristian Hewitt	status = "okay";
172d1b5a0a8SNeil Armstrong};
173d1b5a0a8SNeil Armstrong
174d1b5a0a8SNeil Armstrong&cec_AO {
175d1b5a0a8SNeil Armstrong	status = "okay";
176d1b5a0a8SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
177d1b5a0a8SNeil Armstrong	pinctrl-names = "default";
178d1b5a0a8SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
179d1b5a0a8SNeil Armstrong};
180d1b5a0a8SNeil Armstrong
181d1b5a0a8SNeil Armstrong&cvbs_vdac_port {
182d1b5a0a8SNeil Armstrong	cvbs_vdac_out: endpoint {
183d1b5a0a8SNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
184d1b5a0a8SNeil Armstrong	};
1859bc7ffb0SAndreas Färber};
1869bc7ffb0SAndreas Färber
1879bc7ffb0SAndreas Färber&ethmac {
1889bc7ffb0SAndreas Färber	status = "okay";
1899bc7ffb0SAndreas Färber	pinctrl-0 = <&eth_rgmii_pins>;
1909bc7ffb0SAndreas Färber	pinctrl-names = "default";
1919bc7ffb0SAndreas Färber
1929bc7ffb0SAndreas Färber	phy-handle = <&eth_phy0>;
1939bc7ffb0SAndreas Färber	phy-mode = "rgmii";
1949bc7ffb0SAndreas Färber
1959bc7ffb0SAndreas Färber	amlogic,tx-delay-ns = <2>;
1969bc7ffb0SAndreas Färber
1979bc7ffb0SAndreas Färber	mdio {
1989bc7ffb0SAndreas Färber		compatible = "snps,dwmac-mdio";
1999bc7ffb0SAndreas Färber		#address-cells = <1>;
2009bc7ffb0SAndreas Färber		#size-cells = <0>;
2019bc7ffb0SAndreas Färber
2029bc7ffb0SAndreas Färber		eth_phy0: ethernet-phy@0 {
2039bc7ffb0SAndreas Färber			/* Realtek RTL8211F (0x001cc916) */
2049bc7ffb0SAndreas Färber			reg = <0>;
205f29cabf2SMartin Blumenstingl
206f29cabf2SMartin Blumenstingl			reset-assert-us = <10000>;
207c183c406SStefan Agner			reset-deassert-us = <80000>;
208f29cabf2SMartin Blumenstingl			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
209f29cabf2SMartin Blumenstingl
210b94d22d9SJerome Brunet			interrupt-parent = <&gpio_intc>;
21150290cfeSMartin Blumenstingl			/* MAC_INTR on GPIOZ_15 */
212b94d22d9SJerome Brunet			interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
2139bc7ffb0SAndreas Färber		};
2149bc7ffb0SAndreas Färber	};
2159bc7ffb0SAndreas Färber};
2169bc7ffb0SAndreas Färber
217d1b5a0a8SNeil Armstrong&hdmi_tx {
218d1b5a0a8SNeil Armstrong	status = "okay";
219d1b5a0a8SNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
220d1b5a0a8SNeil Armstrong	pinctrl-names = "default";
221d1b5a0a8SNeil Armstrong};
222d1b5a0a8SNeil Armstrong
223d1b5a0a8SNeil Armstrong&hdmi_tx_tmds_port {
224d1b5a0a8SNeil Armstrong	hdmi_tx_tmds_out: endpoint {
225d1b5a0a8SNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
226d1b5a0a8SNeil Armstrong	};
227d1b5a0a8SNeil Armstrong};
228d1b5a0a8SNeil Armstrong
2299bc7ffb0SAndreas Färber&ir {
2309bc7ffb0SAndreas Färber	status = "okay";
2319bc7ffb0SAndreas Färber	pinctrl-0 = <&remote_input_ao_pins>;
2329bc7ffb0SAndreas Färber	pinctrl-names = "default";
2339bc7ffb0SAndreas Färber};
2349bc7ffb0SAndreas Färber
235f0783f5eSNeil Armstrong&gpio_ao {
23612ada051SNeil Armstrong	gpio-line-names = "UART TX", "UART RX", "Power Control", "Power Key In",
23712ada051SNeil Armstrong			  "VCCK En", "CON1 Header Pin31",
23812ada051SNeil Armstrong			  "I2S Header Pin6", "IR In", "I2S Header Pin7",
23912ada051SNeil Armstrong			  "I2S Header Pin3", "I2S Header Pin4",
2401ce2c008SJerome Brunet			  "I2S Header Pin5", "HDMI CEC", "SYS LED",
2411ce2c008SJerome Brunet			  /* GPIO_TEST_N */
2421ce2c008SJerome Brunet			  "";
24312ada051SNeil Armstrong};
24412ada051SNeil Armstrong
245f0783f5eSNeil Armstrong&gpio {
24612ada051SNeil Armstrong	gpio-line-names = /* Bank GPIOZ */
24712ada051SNeil Armstrong			  "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
24812ada051SNeil Armstrong			  "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
24912ada051SNeil Armstrong			  "Eth RX D3", "Eth RGMII TX Clk", "Eth TX En",
25012ada051SNeil Armstrong			  "Eth TX D0", "Eth TX D1", "Eth TX D2", "Eth TX D3",
25112ada051SNeil Armstrong			  "Eth PHY nRESET", "Eth PHY Intc",
25212ada051SNeil Armstrong			  /* Bank GPIOH */
25312ada051SNeil Armstrong			  "HDMI HPD", "HDMI DDC SDA", "HDMI DDC SCL",
25412ada051SNeil Armstrong			  "CON1 Header Pin33",
25512ada051SNeil Armstrong			  /* Bank BOOT */
25612ada051SNeil Armstrong			  "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", "eMMC D4",
25712ada051SNeil Armstrong			  "eMMC D5", "eMMC D6", "eMMC D7", "eMMC Clk",
25812ada051SNeil Armstrong			  "eMMC Reset", "eMMC CMD",
25912ada051SNeil Armstrong			  "", "", "", "", "eMMC DS",
26012ada051SNeil Armstrong			  "", "",
26112ada051SNeil Armstrong			  /* Bank CARD */
26212ada051SNeil Armstrong			  "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
26312ada051SNeil Armstrong			  "SDCard D3", "SDCard D2", "SDCard Det",
26412ada051SNeil Armstrong			  /* Bank GPIODV */
26512ada051SNeil Armstrong			  "", "", "", "", "", "", "", "", "", "", "", "", "",
26612ada051SNeil Armstrong			  "", "", "", "", "", "", "", "", "", "", "",
26712ada051SNeil Armstrong			  "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
26812ada051SNeil Armstrong			  "VDDEE Regulator", "VCCK Regulator",
26912ada051SNeil Armstrong			  /* Bank GPIOY */
27012ada051SNeil Armstrong			  "CON1 Header Pin7", "CON1 Header Pin11",
27112ada051SNeil Armstrong			  "CON1 Header Pin13", "CON1 Header Pin15",
27212ada051SNeil Armstrong			  "CON1 Header Pin18", "CON1 Header Pin19",
27312ada051SNeil Armstrong			  "CON1 Header Pin22", "CON1 Header Pin21",
27412ada051SNeil Armstrong			  "CON1 Header Pin24", "CON1 Header Pin23",
27512ada051SNeil Armstrong			  "CON1 Header Pin26", "CON1 Header Pin29",
27612ada051SNeil Armstrong			  "CON1 Header Pin32", "CON1 Header Pin8",
27712ada051SNeil Armstrong			  "CON1 Header Pin10", "CON1 Header Pin16",
27812ada051SNeil Armstrong			  "CON1 Header Pin12",
27912ada051SNeil Armstrong			  /* Bank GPIOX */
28012ada051SNeil Armstrong			  "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
28112ada051SNeil Armstrong			  "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
28212ada051SNeil Armstrong			  "WIFI Power Enable", "WIFI WAKE HOST",
28312ada051SNeil Armstrong			  "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
28412ada051SNeil Armstrong			  "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
28512ada051SNeil Armstrong			  "Bluetooth UART TX", "Bluetooth UART RX",
28612ada051SNeil Armstrong			  "Bluetooth UART CTS", "Bluetooth UART RTS",
28712ada051SNeil Armstrong			  "", "", "", "WIFI 32K", "Bluetooth Enable",
2881ce2c008SJerome Brunet			  "Bluetooth WAKE HOST", "",
28912ada051SNeil Armstrong			  /* Bank GPIOCLK */
2901ce2c008SJerome Brunet			  "", "CON1 Header Pin35", "", "";
29112ada051SNeil Armstrong};
29212ada051SNeil Armstrong
2939bc7ffb0SAndreas Färber&pwm_ef {
2949bc7ffb0SAndreas Färber	status = "okay";
2959bc7ffb0SAndreas Färber	pinctrl-0 = <&pwm_e_pins>;
2969bc7ffb0SAndreas Färber	pinctrl-names = "default";
2979bc7ffb0SAndreas Färber	clocks = <&clkc CLKID_FCLK_DIV4>;
2989bc7ffb0SAndreas Färber	clock-names = "clkin0";
2999bc7ffb0SAndreas Färber};
3009bc7ffb0SAndreas Färber
3019bc7ffb0SAndreas Färber&saradc {
3029bc7ffb0SAndreas Färber	status = "okay";
3039bc7ffb0SAndreas Färber	vref-supply = <&vddio_ao18>;
3049bc7ffb0SAndreas Färber};
3059bc7ffb0SAndreas Färber
3069bc7ffb0SAndreas Färber/* SDIO */
3079bc7ffb0SAndreas Färber&sd_emmc_a {
3089bc7ffb0SAndreas Färber	status = "okay";
3099bc7ffb0SAndreas Färber	pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>;
31067e7607fSJerome Brunet	pinctrl-1 = <&sdio_clk_gate_pins>;
31167e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
3129bc7ffb0SAndreas Färber	#address-cells = <1>;
3139bc7ffb0SAndreas Färber	#size-cells = <0>;
3149bc7ffb0SAndreas Färber
3159bc7ffb0SAndreas Färber	bus-width = <4>;
3169bc7ffb0SAndreas Färber	cap-sd-highspeed;
317adc52bf7SJerome Brunet	max-frequency = <50000000>;
3189bc7ffb0SAndreas Färber
3199bc7ffb0SAndreas Färber	non-removable;
3209bc7ffb0SAndreas Färber	disable-wp;
3219bc7ffb0SAndreas Färber
322f7caa8b5SNeil Armstrong	/* WiFi firmware requires power to be kept while in suspend */
323f7caa8b5SNeil Armstrong	keep-power-in-suspend;
324f7caa8b5SNeil Armstrong
3259bc7ffb0SAndreas Färber	mmc-pwrseq = <&sdio_pwrseq>;
3269bc7ffb0SAndreas Färber
3279bc7ffb0SAndreas Färber	vmmc-supply = <&vddio_ao3v3>;
3289bc7ffb0SAndreas Färber	vqmmc-supply = <&vddio_ao18>;
3299bc7ffb0SAndreas Färber
3309bc7ffb0SAndreas Färber	brcmf: wifi@1 {
3319bc7ffb0SAndreas Färber		compatible = "brcm,bcm4329-fmac";
3329bc7ffb0SAndreas Färber		reg = <1>;
3339bc7ffb0SAndreas Färber	};
3349bc7ffb0SAndreas Färber};
3359bc7ffb0SAndreas Färber
3369bc7ffb0SAndreas Färber/* SD */
3379bc7ffb0SAndreas Färber&sd_emmc_b {
3389bc7ffb0SAndreas Färber	status = "okay";
3399bc7ffb0SAndreas Färber	pinctrl-0 = <&sdcard_pins>;
34067e7607fSJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_pins>;
34167e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
3429bc7ffb0SAndreas Färber
3439bc7ffb0SAndreas Färber	bus-width = <4>;
3449bc7ffb0SAndreas Färber	cap-sd-highspeed;
345c1429e20SJerome Brunet	sd-uhs-sdr12;
346c1429e20SJerome Brunet	sd-uhs-sdr25;
347c1429e20SJerome Brunet	sd-uhs-sdr50;
348f52bc6ddSJerome Brunet	sd-uhs-ddr50;
349adc52bf7SJerome Brunet	max-frequency = <100000000>;
3509bc7ffb0SAndreas Färber	disable-wp;
3519bc7ffb0SAndreas Färber
352f29200c8SLoys Ollivier	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
3539bc7ffb0SAndreas Färber
3549bc7ffb0SAndreas Färber	vmmc-supply = <&vddio_ao3v3>;
3559bc7ffb0SAndreas Färber	vqmmc-supply = <&vddio_tf>;
3569bc7ffb0SAndreas Färber};
3579bc7ffb0SAndreas Färber
3589bc7ffb0SAndreas Färber/* eMMC */
3599bc7ffb0SAndreas Färber&sd_emmc_c {
3609bc7ffb0SAndreas Färber	status = "disabled";
361ab36be66SNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
36267e7607fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
36367e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
3649bc7ffb0SAndreas Färber
3659bc7ffb0SAndreas Färber	bus-width = <8>;
3669bc7ffb0SAndreas Färber	max-frequency = <200000000>;
3679bc7ffb0SAndreas Färber	non-removable;
3689bc7ffb0SAndreas Färber	disable-wp;
3699bc7ffb0SAndreas Färber	cap-mmc-highspeed;
3709bc7ffb0SAndreas Färber	mmc-ddr-1_8v;
3719bc7ffb0SAndreas Färber	mmc-hs200-1_8v;
3729bc7ffb0SAndreas Färber
3739bc7ffb0SAndreas Färber	mmc-pwrseq = <&emmc_pwrseq>;
3749bc7ffb0SAndreas Färber	vmmc-supply = <&vcc3v3>;
3759bc7ffb0SAndreas Färber	vqmmc-supply = <&vcc1v8>;
3769bc7ffb0SAndreas Färber};
3779bc7ffb0SAndreas Färber
3789bc7ffb0SAndreas Färber/* DBG_UART */
3799bc7ffb0SAndreas Färber&uart_AO {
3809bc7ffb0SAndreas Färber	status = "okay";
3819bc7ffb0SAndreas Färber	pinctrl-0 = <&uart_ao_a_pins>;
3829bc7ffb0SAndreas Färber	pinctrl-names = "default";
3839bc7ffb0SAndreas Färber};
3849bc7ffb0SAndreas Färber
3859bc7ffb0SAndreas Färber/* Bluetooth on AP6212 */
3869bc7ffb0SAndreas Färber&uart_A {
387*46f2735cSChen-Yu Tsai	status = "okay";
3889bc7ffb0SAndreas Färber	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
3899bc7ffb0SAndreas Färber	pinctrl-names = "default";
390*46f2735cSChen-Yu Tsai	uart-has-rtscts;
391*46f2735cSChen-Yu Tsai
392*46f2735cSChen-Yu Tsai	bluetooth {
393*46f2735cSChen-Yu Tsai		compatible = "brcm,bcm43438-bt";
394*46f2735cSChen-Yu Tsai		clocks = <&wifi_32k>;
395*46f2735cSChen-Yu Tsai		clock-names = "lpo";
396*46f2735cSChen-Yu Tsai		vbat-supply = <&vddio_ao3v3>;
397*46f2735cSChen-Yu Tsai		vddio-supply = <&vddio_ao18>;
398*46f2735cSChen-Yu Tsai		host-wakeup-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>;
399*46f2735cSChen-Yu Tsai		shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
400*46f2735cSChen-Yu Tsai	};
4019bc7ffb0SAndreas Färber};
4029bc7ffb0SAndreas Färber
4039bc7ffb0SAndreas Färber/* 40-pin CON1 */
4049bc7ffb0SAndreas Färber&uart_C {
4059bc7ffb0SAndreas Färber	status = "disabled";
4069bc7ffb0SAndreas Färber	pinctrl-0 = <&uart_c_pins>;
4079bc7ffb0SAndreas Färber	pinctrl-names = "default";
4089bc7ffb0SAndreas Färber};
4099bc7ffb0SAndreas Färber
4109bc7ffb0SAndreas Färber&usb0_phy {
4119bc7ffb0SAndreas Färber	status = "okay";
4129bc7ffb0SAndreas Färber	phy-supply = <&vdd_5v>;
4139bc7ffb0SAndreas Färber};
4149bc7ffb0SAndreas Färber
4159bc7ffb0SAndreas Färber&usb1_phy {
4169bc7ffb0SAndreas Färber	status = "okay";
4179bc7ffb0SAndreas Färber};
4189bc7ffb0SAndreas Färber
4199bc7ffb0SAndreas Färber&usb0 {
4209bc7ffb0SAndreas Färber	status = "okay";
4219bc7ffb0SAndreas Färber};
4229bc7ffb0SAndreas Färber
4239bc7ffb0SAndreas Färber&usb1 {
4249bc7ffb0SAndreas Färber	status = "okay";
4259bc7ffb0SAndreas Färber};
426