18ff8d693SJernej Skrabec// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28ff8d693SJernej Skrabec// Copyright (c) 2019 Jernej Skrabec <jernej.skrabec@siol.net>
38ff8d693SJernej Skrabec
48ff8d693SJernej Skrabec/dts-v1/;
58ff8d693SJernej Skrabec
68ff8d693SJernej Skrabec#include "sun50i-h6.dtsi"
78ff8d693SJernej Skrabec#include "sun50i-h6-cpu-opp.dtsi"
88ff8d693SJernej Skrabec
98ff8d693SJernej Skrabec#include <dt-bindings/gpio/gpio.h>
108ff8d693SJernej Skrabec
118ff8d693SJernej Skrabec/ {
128ff8d693SJernej Skrabec	aliases {
138ff8d693SJernej Skrabec		serial0 = &uart0;
148ff8d693SJernej Skrabec	};
158ff8d693SJernej Skrabec
168ff8d693SJernej Skrabec	chosen {
178ff8d693SJernej Skrabec		stdout-path = "serial0:115200n8";
188ff8d693SJernej Skrabec	};
198ff8d693SJernej Skrabec
208ff8d693SJernej Skrabec	connector {
218ff8d693SJernej Skrabec		compatible = "hdmi-connector";
228ff8d693SJernej Skrabec		ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
238ff8d693SJernej Skrabec		type = "a";
248ff8d693SJernej Skrabec
258ff8d693SJernej Skrabec		port {
268ff8d693SJernej Skrabec			hdmi_con_in: endpoint {
278ff8d693SJernej Skrabec				remote-endpoint = <&hdmi_out_con>;
288ff8d693SJernej Skrabec			};
298ff8d693SJernej Skrabec		};
308ff8d693SJernej Skrabec	};
318ff8d693SJernej Skrabec
328ff8d693SJernej Skrabec	/* used for FD650 LED display driver */
338ff8d693SJernej Skrabec	i2c {
348ff8d693SJernej Skrabec		compatible = "i2c-gpio";
358ff8d693SJernej Skrabec		sda-gpios = <&pio 7 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH6 */
368ff8d693SJernej Skrabec		scl-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH5 */
378ff8d693SJernej Skrabec		i2c-gpio,delay-us = <5>;
388ff8d693SJernej Skrabec	};
398ff8d693SJernej Skrabec
408ff8d693SJernej Skrabec	reg_vcc1v8: regulator-vcc1v8 {
418ff8d693SJernej Skrabec		compatible = "regulator-fixed";
428ff8d693SJernej Skrabec		regulator-name = "vcc1v8";
438ff8d693SJernej Skrabec		regulator-min-microvolt = <1800000>;
448ff8d693SJernej Skrabec		regulator-max-microvolt = <1800000>;
458ff8d693SJernej Skrabec	};
468ff8d693SJernej Skrabec
478ff8d693SJernej Skrabec	reg_vcc3v3: regulator-vcc3v3 {
488ff8d693SJernej Skrabec		compatible = "regulator-fixed";
498ff8d693SJernej Skrabec		regulator-name = "vcc3v3";
508ff8d693SJernej Skrabec		regulator-min-microvolt = <3300000>;
518ff8d693SJernej Skrabec		regulator-max-microvolt = <3300000>;
528ff8d693SJernej Skrabec	};
538ff8d693SJernej Skrabec
548ff8d693SJernej Skrabec	reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu {
558ff8d693SJernej Skrabec		compatible = "regulator-fixed";
568ff8d693SJernej Skrabec		regulator-name = "vdd-cpu-gpu";
578ff8d693SJernej Skrabec		regulator-min-microvolt = <1135000>;
588ff8d693SJernej Skrabec		regulator-max-microvolt = <1135000>;
598ff8d693SJernej Skrabec	};
608ff8d693SJernej Skrabec
618ff8d693SJernej Skrabec	sound-spdif {
628ff8d693SJernej Skrabec		compatible = "simple-audio-card";
638ff8d693SJernej Skrabec		simple-audio-card,name = "sun50i-h6-spdif";
648ff8d693SJernej Skrabec
658ff8d693SJernej Skrabec		simple-audio-card,cpu {
668ff8d693SJernej Skrabec			sound-dai = <&spdif>;
678ff8d693SJernej Skrabec		};
688ff8d693SJernej Skrabec
698ff8d693SJernej Skrabec		simple-audio-card,codec {
708ff8d693SJernej Skrabec			sound-dai = <&spdif_out>;
718ff8d693SJernej Skrabec		};
728ff8d693SJernej Skrabec	};
738ff8d693SJernej Skrabec
748ff8d693SJernej Skrabec	spdif_out: spdif-out {
758ff8d693SJernej Skrabec		#sound-dai-cells = <0>;
768ff8d693SJernej Skrabec		compatible = "linux,spdif-dit";
778ff8d693SJernej Skrabec	};
7808358193SJernej Skrabec
7908358193SJernej Skrabec	wifi_pwrseq: wifi-pwrseq {
8008358193SJernej Skrabec		compatible = "mmc-pwrseq-simple";
811b9dac68SSamuel Holland		clocks = <&rtc CLK_OSC32K_FANOUT>;
8208358193SJernej Skrabec		clock-names = "ext_clock";
8308358193SJernej Skrabec		reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
8408358193SJernej Skrabec	};
858ff8d693SJernej Skrabec};
868ff8d693SJernej Skrabec
878ff8d693SJernej Skrabec&cpu0 {
888ff8d693SJernej Skrabec	cpu-supply = <&reg_vdd_cpu_gpu>;
898ff8d693SJernej Skrabec};
908ff8d693SJernej Skrabec
918ff8d693SJernej Skrabec&de {
928ff8d693SJernej Skrabec	status = "okay";
938ff8d693SJernej Skrabec};
948ff8d693SJernej Skrabec
958ff8d693SJernej Skrabec&dwc3 {
968ff8d693SJernej Skrabec	status = "okay";
978ff8d693SJernej Skrabec};
988ff8d693SJernej Skrabec
998ff8d693SJernej Skrabec&ehci0 {
1008ff8d693SJernej Skrabec	status = "okay";
1018ff8d693SJernej Skrabec};
1028ff8d693SJernej Skrabec
1038ff8d693SJernej Skrabec&ehci3 {
1048ff8d693SJernej Skrabec	status = "okay";
1058ff8d693SJernej Skrabec};
1068ff8d693SJernej Skrabec
1078ff8d693SJernej Skrabec&gpu {
1088ff8d693SJernej Skrabec	mali-supply = <&reg_vdd_cpu_gpu>;
1098ff8d693SJernej Skrabec	status = "okay";
1108ff8d693SJernej Skrabec};
1118ff8d693SJernej Skrabec
1128ff8d693SJernej Skrabec&hdmi {
1138ff8d693SJernej Skrabec	status = "okay";
1148ff8d693SJernej Skrabec};
1158ff8d693SJernej Skrabec
1168ff8d693SJernej Skrabec&hdmi_out {
1178ff8d693SJernej Skrabec	hdmi_out_con: endpoint {
1188ff8d693SJernej Skrabec		remote-endpoint = <&hdmi_con_in>;
1198ff8d693SJernej Skrabec	};
1208ff8d693SJernej Skrabec};
1218ff8d693SJernej Skrabec
1228ff8d693SJernej Skrabec&mmc0 {
1238ff8d693SJernej Skrabec	pinctrl-names = "default";
1248ff8d693SJernej Skrabec	pinctrl-0 = <&mmc0_pins>;
1258ff8d693SJernej Skrabec	vmmc-supply = <&reg_vcc3v3>;
1268ff8d693SJernej Skrabec	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
1278ff8d693SJernej Skrabec	bus-width = <4>;
1288ff8d693SJernej Skrabec	status = "okay";
1298ff8d693SJernej Skrabec};
1308ff8d693SJernej Skrabec
13108358193SJernej Skrabec&mmc1 {
13208358193SJernej Skrabec	vmmc-supply = <&reg_vcc3v3>;
13308358193SJernej Skrabec	vqmmc-supply = <&reg_vcc1v8>;
13408358193SJernej Skrabec	mmc-pwrseq = <&wifi_pwrseq>;
13508358193SJernej Skrabec	bus-width = <4>;
13608358193SJernej Skrabec	non-removable;
13708358193SJernej Skrabec	status = "okay";
13808358193SJernej Skrabec};
13908358193SJernej Skrabec
1408ff8d693SJernej Skrabec&mmc2 {
1418ff8d693SJernej Skrabec	vmmc-supply = <&reg_vcc3v3>;
1428ff8d693SJernej Skrabec	vqmmc-supply = <&reg_vcc1v8>;
1438ff8d693SJernej Skrabec	bus-width = <8>;
1448ff8d693SJernej Skrabec	non-removable;
1458ff8d693SJernej Skrabec	cap-mmc-hw-reset;
1468ff8d693SJernej Skrabec	mmc-hs200-1_8v;
1478ff8d693SJernej Skrabec	status = "okay";
1488ff8d693SJernej Skrabec};
1498ff8d693SJernej Skrabec
1508ff8d693SJernej Skrabec&ohci0 {
1518ff8d693SJernej Skrabec	status = "okay";
1528ff8d693SJernej Skrabec};
1538ff8d693SJernej Skrabec
1548ff8d693SJernej Skrabec&ohci3 {
1558ff8d693SJernej Skrabec	status = "okay";
1568ff8d693SJernej Skrabec};
1578ff8d693SJernej Skrabec
1588ff8d693SJernej Skrabec&pio {
1598ff8d693SJernej Skrabec	vcc-pc-supply = <&reg_vcc1v8>;
1608ff8d693SJernej Skrabec	vcc-pd-supply = <&reg_vcc3v3>;
1618ff8d693SJernej Skrabec	vcc-pg-supply = <&reg_vcc1v8>;
1628ff8d693SJernej Skrabec};
1638ff8d693SJernej Skrabec
1648ff8d693SJernej Skrabec&r_ir {
1658ff8d693SJernej Skrabec	status = "okay";
1668ff8d693SJernej Skrabec};
1678ff8d693SJernej Skrabec
1688ff8d693SJernej Skrabec&spdif {
169*832f0fadSChen-Yu Tsai	pinctrl-names = "default";
170*832f0fadSChen-Yu Tsai	pinctrl-0 = <&spdif_tx_pin>;
1718ff8d693SJernej Skrabec	status = "okay";
1728ff8d693SJernej Skrabec};
1738ff8d693SJernej Skrabec
1748ff8d693SJernej Skrabec&uart0 {
1758ff8d693SJernej Skrabec	pinctrl-names = "default";
1768ff8d693SJernej Skrabec	pinctrl-0 = <&uart0_ph_pins>;
1778ff8d693SJernej Skrabec	status = "okay";
1788ff8d693SJernej Skrabec};
1798ff8d693SJernej Skrabec
1808ff8d693SJernej Skrabec&usb2otg {
1818ff8d693SJernej Skrabec	dr_mode = "host";
1828ff8d693SJernej Skrabec	status = "okay";
1838ff8d693SJernej Skrabec};
1848ff8d693SJernej Skrabec
1858ff8d693SJernej Skrabec&usb2phy {
1868ff8d693SJernej Skrabec	status = "okay";
1878ff8d693SJernej Skrabec};
1888ff8d693SJernej Skrabec
1898ff8d693SJernej Skrabec&usb3phy {
1908ff8d693SJernej Skrabec	status = "okay";
1918ff8d693SJernej Skrabec};
192