16059Samurai// SPDX-License-Identifier: GPL-2.0
26059Samurai/dts-v1/;
36059Samurai
46059Samurai#include "jz4780.dtsi"
56059Samurai#include <dt-bindings/clock/ingenic,tcu.h>
66059Samurai#include <dt-bindings/gpio/gpio.h>
76059Samurai#include <dt-bindings/input/input.h>
86059Samurai#include <dt-bindings/interrupt-controller/irq.h>
96059Samurai#include <dt-bindings/regulator/active-semi,8865-regulator.h>
106059Samurai
116059Samurai/ {
126059Samurai	compatible = "img,ci20", "ingenic,jz4780";
136059Samurai
146059Samurai	aliases {
156059Samurai		serial0 = &uart0;
166059Samurai		serial1 = &uart1;
176059Samurai		serial3 = &uart3;
186059Samurai		serial4 = &uart4;
196059Samurai	};
2050479Speter
218857Srgrimes	chosen {
226059Samurai		stdout-path = &uart4;
236059Samurai	};
2436285Sbrian
2543313Sbrian	memory {
2630715Sbrian		device_type = "memory";
2730715Sbrian		reg = <0x0 0x10000000
2830715Sbrian		       0x30000000 0x30000000>;
2936285Sbrian	};
3058032Sbrian
3158032Sbrian	gpio-keys {
3230715Sbrian		compatible = "gpio-keys";
3330715Sbrian
346059Samurai		switch {
3511336Samurai			label = "ci20:sw1";
3630715Sbrian			linux,code = <KEY_F13>;
3730715Sbrian			gpios = <&gpd 17 GPIO_ACTIVE_HIGH>;
3852396Sbrian			wakeup-source;
3930715Sbrian		};
406059Samurai	};
416059Samurai
4218786Sjkh	leds {
4349581Sbrian		compatible = "gpio-leds";
4430715Sbrian
4550059Sbrian		led-0 {
4658037Sbrian			label = "ci20:red:led0";
4758037Sbrian			gpios = <&gpc 3 GPIO_ACTIVE_HIGH>;
4858037Sbrian			linux,default-trigger = "none";
4946086Sbrian		};
5039395Sbrian
5139395Sbrian		led-1 {
5258037Sbrian			label = "ci20:red:led1";
5346686Sbrian			gpios = <&gpc 2 GPIO_ACTIVE_HIGH>;
5437141Sbrian			linux,default-trigger = "nand-disk";
5530715Sbrian		};
5630715Sbrian
5730715Sbrian		led-2 {
5831061Sbrian			label = "ci20:red:led2";
5930715Sbrian			gpios = <&gpc 1 GPIO_ACTIVE_HIGH>;
6030715Sbrian			linux,default-trigger = "cpu1";
6136285Sbrian		};
626059Samurai
6331514Sbrian		led-3 {
6413389Sphk			label = "ci20:red:led3";
6536285Sbrian			gpios = <&gpc 0 GPIO_ACTIVE_HIGH>;
6636285Sbrian			linux,default-trigger = "cpu0";
6736285Sbrian		};
686059Samurai	};
6936285Sbrian
7036285Sbrian	eth0_power: fixedregulator-0 {
7136285Sbrian		compatible = "regulator-fixed";
7236285Sbrian
7343313Sbrian		regulator-name = "eth0_power";
7443313Sbrian		regulator-min-microvolt = <3300000>;
7543313Sbrian		regulator-max-microvolt = <3300000>;
7636285Sbrian
776735Samurai		gpio = <&gpb 25 0>;
7813389Sphk		enable-active-high;
7923840Sbrian	};
8030715Sbrian
8136285Sbrian	hdmi_out: connector {
8236285Sbrian		compatible = "hdmi-connector";
8336285Sbrian		label = "HDMI OUT";
8436285Sbrian		type = "a";
8538174Sbrian
8636285Sbrian		ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>;
8740561Sbrian
886059Samurai		port {
896735Samurai			hdmi_con: endpoint {
906735Samurai				remote-endpoint = <&dw_hdmi_out>;
916735Samurai			};
926735Samurai		};
936735Samurai	};
946735Samurai
9536431Sbrian	ir: ir {
9630715Sbrian		compatible = "gpio-ir-receiver";
9730715Sbrian		gpios = <&gpe 3 GPIO_ACTIVE_LOW>;
9836285Sbrian	};
9936285Sbrian
1006059Samurai	bt_power: fixedregulator-1 {
10110528Samurai		compatible = "regulator-fixed";
10236285Sbrian
1036059Samurai		regulator-name = "bt_power";
10436285Sbrian		regulator-min-microvolt = <3300000>;
10538008Sbrian		regulator-max-microvolt = <3300000>;
1066059Samurai		regulator-settling-time-us = <1400>;
1076059Samurai
1086059Samurai		vin-supply = <&vcc_50>;
10936285Sbrian
1106059Samurai		gpio = <&gpb 19 0>;
11136285Sbrian		enable-active-high;
11236285Sbrian	};
11337007Sbrian
11436285Sbrian	otg_power: fixedregulator-2 {
11536285Sbrian		compatible = "regulator-fixed";
1166059Samurai
1176059Samurai		regulator-name = "otg_power";
1186059Samurai		regulator-min-microvolt = <5000000>;
1196059Samurai		regulator-max-microvolt = <5000000>;
12028679Sbrian
1216059Samurai		gpio = <&gpf 15 0>;
12226858Sbrian		enable-active-high;
12336285Sbrian	};
12436285Sbrian
12537018Sbrian	wifi_power: fixedregulator-4 {
12636285Sbrian		compatible = "regulator-fixed";
1276059Samurai
1286059Samurai		regulator-name = "wifi_power";
1296059Samurai
13028679Sbrian		/*
1316059Samurai		 * Technically it's 5V, the WiFi chip has its own internal
13236285Sbrian		 * regulators; but the MMC/SD subsystem won't accept such a
13328679Sbrian		 * value.
1346059Samurai		 */
1356059Samurai		regulator-min-microvolt = <3300000>;
13636285Sbrian		regulator-max-microvolt = <3300000>;
13736285Sbrian		regulator-settling-time-us = <150000>;
13810528Samurai
13936285Sbrian		vin-supply = <&bt_power>;
14010528Samurai	};
14147119Sbrian
14236285Sbrian	vcc_33v: fixedregulator-5 {
14336285Sbrian		compatible = "regulator-fixed";
14410528Samurai
14510528Samurai		regulator-name = "vcc_33v";
14610528Samurai		regulator-min-microvolt = <3300000>;
14736285Sbrian		regulator-max-microvolt = <3300000>;
14810528Samurai		regulator-always-on;
14936285Sbrian	};
15036285Sbrian
15110528Samurai	wifi_pwrseq: pwrseq {
15210528Samurai		compatible = "mmc-pwrseq-simple";
15326940Sbrian		reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>;
15436285Sbrian
15526940Sbrian		clocks = <&rtc_dev>;
15636285Sbrian		clock-names = "ext_clock";
15736285Sbrian	};
15836285Sbrian};
15926940Sbrian
16026940Sbrian&ext {
16131081Sbrian	clock-frequency = <48000000>;
16231081Sbrian};
16331081Sbrian
16436285Sbrian&cgu {
16536285Sbrian	/*
16631081Sbrian	 * Use the 32.768 kHz oscillator as the parent of the RTC for a higher
16731081Sbrian	 * precision.
16830715Sbrian	 */
16931343Sbrian	assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>,
1706059Samurai			  <&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>,
17120120Snate			  <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_MSCMUX>;
17250059Sbrian	assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>,
17331343Sbrian				 <&cgu JZ4780_CLK_MPLL>,
17450059Sbrian				 <&cgu JZ4780_CLK_SSIPLL>,
17531343Sbrian				 <0>, <&cgu JZ4780_CLK_MPLL>;
17652396Sbrian	assigned-clock-rates = <48000000>, <0>, <54000000>, <0>, <27000000>;
1776059Samurai};
1786059Samurai
1796059Samurai&tcu {
18052396Sbrian	/*
18152396Sbrian	 * 750 kHz for the system timers and clocksource,
18252396Sbrian	 * use channel #0 and #1 for the per cpu system timers,
18352396Sbrian	 * and use channel #2 for the clocksource.
18452396Sbrian	 *
18552396Sbrian	 * 3000 kHz for the OST timer to provide a higher
18652396Sbrian	 * precision clocksource.
18752396Sbrian	 */
18840797Sbrian	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
18952396Sbrian					  <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>;
1906059Samurai	assigned-clock-rates = <750000>, <750000>, <750000>, <3000000>;
19140797Sbrian};
1926059Samurai
1936059Samurai&mmc0 {
19440797Sbrian	status = "okay";
19552396Sbrian
19652396Sbrian	bus-width = <4>;
19752396Sbrian	max-frequency = <50000000>;
19852396Sbrian
19940797Sbrian	pinctrl-names = "default";
20040797Sbrian	pinctrl-0 = <&pins_mmc0>;
20136465Sbrian
20236465Sbrian	cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>;
20336465Sbrian	vmmc-supply = <&vcc_33v>;
20452396Sbrian	vqmmc-supply = <&vcc_33v>;
20550059Sbrian};
20652396Sbrian
20737191Sbrian&mmc1 {
20852396Sbrian	status = "okay";
20936285Sbrian
21036465Sbrian	bus-width = <4>;
21152396Sbrian	max-frequency = <25000000>;
21252396Sbrian	mmc-pwrseq = <&wifi_pwrseq>;
21352396Sbrian	vmmc-supply = <&wifi_power>;
21452396Sbrian	vqmmc-supply = <&wifi_io>;
21552396Sbrian	non-removable;
21653889Sbrian
21753889Sbrian	pinctrl-names = "default";
21852396Sbrian	pinctrl-0 = <&pins_mmc1>;
21952396Sbrian
22052396Sbrian	#address-cells = <1>;
22152396Sbrian	#size-cells = <0>;
22253067Sbrian
22352396Sbrian	wifi@1 {
22453067Sbrian		compatible = "brcm,bcm4329-fmac";
22552396Sbrian		reg = <1>;
22652396Sbrian
22752396Sbrian		interrupt-parent = <&gpd>;
22852396Sbrian		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
22952396Sbrian		interrupt-names = "host-wake";
23052396Sbrian	};
23152396Sbrian};
23250059Sbrian
23352396Sbrian&uart0 {
23450059Sbrian	status = "okay";
23536465Sbrian
23636465Sbrian	pinctrl-names = "default";
23736465Sbrian	pinctrl-0 = <&pins_uart0>;
23836465Sbrian};
23936465Sbrian
24036465Sbrian&uart1 {
24136465Sbrian	status = "okay";
24236465Sbrian
24336465Sbrian	pinctrl-names = "default";
24452396Sbrian	pinctrl-0 = <&pins_uart1>;
24553830Sbrian};
24653830Sbrian
24736465Sbrian&uart2 {
2486059Samurai	status = "okay";
24936465Sbrian
2506059Samurai	pinctrl-names = "default";
25136285Sbrian	pinctrl-0 = <&pins_uart2>;
2526059Samurai	uart-has-rtscts;
2536059Samurai
25431197Sbrian	bluetooth {
25552396Sbrian		compatible = "brcm,bcm4330-bt";
25640797Sbrian
25736285Sbrian		vbat-supply = <&bt_power>;
25836285Sbrian		vddio-supply = <&wifi_io>;
25936285Sbrian
26040797Sbrian		interrupt-parent = <&gpf>;
2616059Samurai		interrupts = <6 IRQ_TYPE_EDGE_RISING>;
2626059Samurai		interrupt-names = "host-wakeup";
26340797Sbrian
26440797Sbrian		clocks = <&rtc_dev>;
26540797Sbrian		clock-names = "lpo";
26640797Sbrian
26740797Sbrian		reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>;
26840797Sbrian		device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>;
26940797Sbrian		shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>;
27040797Sbrian	};
27140797Sbrian};
27240797Sbrian
27340797Sbrian&uart3 {
27440797Sbrian	status = "okay";
27540797Sbrian
27640797Sbrian	pinctrl-names = "default";
27740797Sbrian	pinctrl-0 = <&pins_uart3>;
27840797Sbrian};
27926940Sbrian
28028679Sbrian&uart4 {
2816059Samurai	status = "okay";
28240797Sbrian
28343187Sbrian	pinctrl-names = "default";
28466898Sbrian	pinctrl-0 = <&pins_uart4>;
28536285Sbrian};
28636285Sbrian
28752396Sbrian&i2c0 {
28826516Sbrian	status = "okay";
28930715Sbrian
29036285Sbrian	pinctrl-names = "default";
29126516Sbrian	pinctrl-0 = <&pins_i2c0>;
29250059Sbrian
29338198Sbrian	clock-frequency = <400000>;
29438198Sbrian
29552396Sbrian	act8600: act8600@5a {
29631121Sbrian		compatible = "active-semi,act8600";
29736285Sbrian		reg = <0x5a>;
29844539Sbrian
29944539Sbrian		regulators {
30044539Sbrian			vddcore: DCDC1 {
30136285Sbrian				regulator-min-microvolt = <1125000>;
30236285Sbrian				regulator-max-microvolt = <1125000>;
30336285Sbrian				vp1-supply = <&vcc_33v>;
30452396Sbrian				regulator-always-on;
30536285Sbrian			};
30636285Sbrian			vddmem: DCDC2 {
30736285Sbrian				regulator-min-microvolt = <1500000>;
30836285Sbrian				regulator-max-microvolt = <1500000>;
30936285Sbrian				vp2-supply = <&vcc_33v>;
31036285Sbrian				regulator-always-on;
31136285Sbrian			};
31236285Sbrian			vcc_33: DCDC3 {
31352396Sbrian				regulator-min-microvolt = <3300000>;
31436285Sbrian				regulator-max-microvolt = <3300000>;
31543526Sbrian				vp3-supply = <&vcc_33v>;
31636285Sbrian				regulator-always-on;
31736285Sbrian			};
31831121Sbrian			vcc_50: SUDCDC_REG4 {
31931158Sbrian				regulator-min-microvolt = <5000000>;
32031158Sbrian				regulator-max-microvolt = <5000000>;
32131158Sbrian				regulator-always-on;
32231158Sbrian			};
32331158Sbrian			vcc_25: LDO5 {
32449581Sbrian				regulator-min-microvolt = <2500000>;
32549581Sbrian				regulator-max-microvolt = <2500000>;
32649581Sbrian				inl-supply = <&vcc_33v>;
32737019Sbrian				regulator-always-on;
32837019Sbrian			};
32931158Sbrian			wifi_io: LDO6 {
33031158Sbrian				regulator-min-microvolt = <1800000>;
33131158Sbrian				regulator-max-microvolt = <1800000>;
33231158Sbrian				regulator-settling-time-us = <150000>;
33331158Sbrian				inl-supply = <&vcc_33v>;
33431158Sbrian			};
33531158Sbrian			cim_io_28: LDO7 {
33631158Sbrian				regulator-min-microvolt = <2800000>;
33740797Sbrian				regulator-max-microvolt = <2800000>;
33840797Sbrian				inl-supply = <&vcc_33v>;
33952396Sbrian			};
34040797Sbrian			cim_io_15: LDO8 {
34152396Sbrian				regulator-min-microvolt = <1500000>;
34231121Sbrian				regulator-max-microvolt = <1500000>;
34352396Sbrian				inl-supply = <&vcc_33v>;
34452396Sbrian			};
34543526Sbrian			vrtc_18: LDO_REG9 {
34653298Sbrian				/* Despite the datasheet stating 3.3V
34726940Sbrian				 * for REG9 and the driver expecting that,
34843187Sbrian				 * REG9 outputs 1.8V.
34943187Sbrian				 * Likely the CI20 uses a proprietary
35043187Sbrian				 * factory programmed chip variant.
35136314Sbrian				 * Since this is a simple on/off LDO the
35236314Sbrian				 * exact values do not matter.
35352396Sbrian				 */
35450059Sbrian				regulator-min-microvolt = <3300000>;
35536314Sbrian				regulator-max-microvolt = <3300000>;
35636285Sbrian				regulator-always-on;
35752396Sbrian			};
35852396Sbrian			vcc_11: LDO_REG10 {
35940561Sbrian				regulator-min-microvolt = <1200000>;
36031121Sbrian				regulator-max-microvolt = <1200000>;
36137008Sbrian				regulator-always-on;
36236285Sbrian			};
36336285Sbrian		};
36436285Sbrian	};
36536285Sbrian};
36636285Sbrian
36736285Sbrian&i2c1 {
36836285Sbrian	status = "okay";
36924753Sache
3706059Samurai	pinctrl-names = "default";
37152396Sbrian	pinctrl-0 = <&pins_i2c1>;
37236285Sbrian
37336285Sbrian};
37436285Sbrian
37536285Sbrian&i2c2 {
37653298Sbrian	status = "okay";
37740797Sbrian
37840797Sbrian	pinctrl-names = "default";
37943187Sbrian	pinctrl-0 = <&pins_i2c2>;
38053298Sbrian
3816059Samurai};
38226940Sbrian
38340797Sbrian&i2c3 {
38440797Sbrian	status = "okay";
38543187Sbrian
38640797Sbrian	pinctrl-names = "default";
38752396Sbrian	pinctrl-0 = <&pins_i2c3>;
38840797Sbrian
38940797Sbrian};
39040797Sbrian
39140797Sbrian&i2c4 {
39240797Sbrian	status = "okay";
39340797Sbrian
39452396Sbrian	pinctrl-names = "default";
39552396Sbrian	pinctrl-0 = <&pins_i2c4>;
39652396Sbrian
39750059Sbrian	clock-frequency = <400000>;
39850059Sbrian
39936285Sbrian		rtc@51 {
40052396Sbrian			compatible = "nxp,pcf8563";
40150059Sbrian			reg = <0x51>;
40250059Sbrian
40350059Sbrian			interrupt-parent = <&gpf>;
4046059Samurai			interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
40550059Sbrian		};
40650059Sbrian};
40750059Sbrian
40850059Sbrian&nemc {
40950059Sbrian	status = "okay";
41036285Sbrian
41150059Sbrian	nandc: nand-controller@1 {
41250059Sbrian		compatible = "ingenic,jz4780-nand";
41359084Sbrian		reg = <1 0 0x1000000>;
41411336Samurai
41552396Sbrian		#address-cells = <1>;
41650059Sbrian		#size-cells = <0>;
41750059Sbrian
41850059Sbrian		ecc-engine = <&bch>;
41950059Sbrian
42050059Sbrian		ingenic,nemc-tAS = <10>;
42150059Sbrian		ingenic,nemc-tAH = <5>;
42250059Sbrian		ingenic,nemc-tBP = <10>;
42336285Sbrian		ingenic,nemc-tAW = <15>;
42450059Sbrian		ingenic,nemc-tSTRV = <100>;
42559084Sbrian
42659084Sbrian		/*
42759084Sbrian		 * Only CLE/ALE are needed for the devices that are connected, rather
42859084Sbrian		 * than the full address line set.
42959084Sbrian		 */
43059104Sbrian		pinctrl-names = "default";
43159084Sbrian		pinctrl-0 = <&pins_nemc>;
43259084Sbrian
43359084Sbrian		nand@1 {
43459084Sbrian			reg = <1>;
43559084Sbrian
43659084Sbrian			nand-ecc-step-size = <1024>;
43759084Sbrian			nand-ecc-strength = <24>;
43859084Sbrian			nand-ecc-mode = "hw";
43959084Sbrian			nand-on-flash-bbt;
44059084Sbrian
44159084Sbrian			pinctrl-names = "default";
44259084Sbrian			pinctrl-0 = <&pins_nemc_cs1>;
44359084Sbrian
44459084Sbrian			partitions {
44559084Sbrian				compatible = "fixed-partitions";
44659084Sbrian				#address-cells = <2>;
44759084Sbrian				#size-cells = <2>;
44850059Sbrian
44950059Sbrian				partition@0 {
45050059Sbrian					label = "u-boot-spl";
45150059Sbrian					reg = <0x0 0x0 0x0 0x800000>;
45228679Sbrian				};
45350059Sbrian
45452396Sbrian				partition@800000 {
45536285Sbrian					label = "u-boot";
45650059Sbrian					reg = <0x0 0x800000 0x0 0x200000>;
45750059Sbrian				};
45850059Sbrian
45956350Sbrian				partition@a00000 {
46050059Sbrian					label = "u-boot-env";
46136285Sbrian					reg = <0x0 0xa00000 0x0 0x200000>;
46220813Sjkh				};
46350059Sbrian
46436285Sbrian				partition@c00000 {
46536285Sbrian					label = "boot";
46636285Sbrian					reg = <0x0 0xc00000 0x0 0x4000000>;
46736285Sbrian				};
46852396Sbrian
46950059Sbrian				partition@4c00000 {
47036285Sbrian					label = "system";
47150059Sbrian					reg = <0x0 0x4c00000 0x1 0xfb400000>;
47236285Sbrian				};
47336285Sbrian			};
47436285Sbrian		};
47526686Sbrian	};
4766059Samurai
47750059Sbrian	dm9000@6 {
47832129Sbrian		compatible = "davicom,dm9000";
47936285Sbrian		davicom,no-eeprom;
48036285Sbrian
48136285Sbrian		pinctrl-names = "default";
4826059Samurai		pinctrl-0 = <&pins_nemc_cs6>;
48329696Sbrian
48452396Sbrian		reg = <6 0 1>, /* addr */
48536431Sbrian		      <6 2 1>; /* data */
48636285Sbrian
4876059Samurai		ingenic,nemc-tAS = <15>;
48836285Sbrian		ingenic,nemc-tAH = <10>;
4896059Samurai		ingenic,nemc-tBP = <20>;
4906059Samurai		ingenic,nemc-tAW = <50>;
4916059Samurai		ingenic,nemc-tSTRV = <100>;
49236431Sbrian
4936059Samurai		reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>;
49466898Sbrian		vcc-supply = <&eth0_power>;
49537141Sbrian
49637141Sbrian		interrupt-parent = <&gpe>;
4976059Samurai		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
49837141Sbrian
49937141Sbrian		nvmem-cells = <&eth0_addr>;
50066898Sbrian		nvmem-cell-names = "mac-address";
50166898Sbrian	};
50266898Sbrian};
50366898Sbrian
50466898Sbrian&bch {
50566898Sbrian	status = "okay";
50666898Sbrian};
50766898Sbrian
50866898Sbrian&otg_phy {
50966898Sbrian	status = "okay";
51066898Sbrian
51166898Sbrian	vcc-supply = <&otg_power>;
51266898Sbrian};
51366898Sbrian
51466898Sbrian&otg {
51566898Sbrian	status = "okay";
51666898Sbrian};
51766898Sbrian
51853070Sbrian&pinctrl {
51923598Sache	pins_uart0: uart0 {
52066898Sbrian		function = "uart0";
52166898Sbrian		groups = "uart0-data";
52266898Sbrian		bias-disable;
5237001Samurai	};
52436314Sbrian
52566898Sbrian	pins_uart1: uart1 {
52625067Sbrian		function = "uart1";
52736314Sbrian		groups = "uart1-data";
52866898Sbrian		bias-disable;
52936314Sbrian	};
53058453Sbrian
53136285Sbrian	pins_uart2: uart2 {
53236285Sbrian		function = "uart2";
53336285Sbrian		groups = "uart2-data", "uart2-hwflow";
53426551Sbrian		bias-disable;
53545126Sbrian	};
53645126Sbrian
53745126Sbrian	pins_uart3: uart3 {
53845126Sbrian		function = "uart3";
53945126Sbrian		groups = "uart3-data", "uart3-hwflow";
54045126Sbrian		bias-disable;
54145126Sbrian	};
54245126Sbrian
54345126Sbrian	pins_uart4: uart4 {
54445126Sbrian		function = "uart4";
54545126Sbrian		groups = "uart4-data";
54666898Sbrian		bias-disable;
54726696Sbrian	};
54836345Sbrian
54936285Sbrian	pins_i2c0: i2c0 {
55036285Sbrian		function = "i2c0";
55136285Sbrian		groups = "i2c0-data";
55236285Sbrian		bias-disable;
55336285Sbrian	};
55466898Sbrian
55536285Sbrian	pins_i2c1: i2c1 {
55666898Sbrian		function = "i2c1";
55736285Sbrian		groups = "i2c1-data";
55866898Sbrian		bias-disable;
55936285Sbrian	};
56036285Sbrian
56136285Sbrian	pins_i2c2: i2c2 {
56236285Sbrian		function = "i2c2";
56366898Sbrian		groups = "i2c2-data";
56436285Sbrian		bias-disable;
56566898Sbrian	};
56636285Sbrian
56766898Sbrian	pins_i2c3: i2c3 {
56836285Sbrian		function = "i2c3";
56936285Sbrian		groups = "i2c3-data";
57036285Sbrian		bias-disable;
57136285Sbrian	};
57266898Sbrian
57336285Sbrian	pins_i2c4: i2c4 {
57466898Sbrian		function = "i2c4";
57536285Sbrian		groups = "i2c4-data-e";
57666898Sbrian		bias-disable;
57736285Sbrian	};
57836285Sbrian
57936285Sbrian	pins_hdmi_ddc: hdmi_ddc {
58036285Sbrian		function = "hdmi-ddc";
58136285Sbrian		groups = "hdmi-ddc";
58228679Sbrian		bias-disable;
58328679Sbrian	};
5848857Srgrimes
5856059Samurai	pins_nemc: nemc {
58643693Sbrian		function = "nemc";
58743693Sbrian		groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe";
58836345Sbrian		bias-disable;
58936345Sbrian	};
59036345Sbrian
59136345Sbrian	pins_nemc_cs1: nemc-cs1 {
59236345Sbrian		function = "nemc-cs1";
59336285Sbrian		groups = "nemc-cs1";
59466898Sbrian		bias-disable;
59558038Sbrian	};
59658038Sbrian
59741654Sbrian	pins_nemc_cs6: nemc-cs6 {
59841654Sbrian		function = "nemc-cs6";
59941654Sbrian		groups = "nemc-cs6";
60041654Sbrian		bias-disable;
6016059Samurai	};
60228679Sbrian
60336285Sbrian	pins_mmc0: mmc0 {
60436285Sbrian		function = "mmc0";
60528536Sbrian		groups = "mmc0-1bit-e", "mmc0-4bit-e";
60637141Sbrian		bias-disable;
60737141Sbrian	};
60866898Sbrian
60966898Sbrian	pins_mmc1: mmc1 {
61037141Sbrian		function = "mmc1";
61137141Sbrian		groups = "mmc1-1bit-d", "mmc1-4bit-d";
61232039Sbrian		bias-disable;
61366898Sbrian	};
61466898Sbrian};
61537141Sbrian
61637141Sbrian&hdmi {
61737141Sbrian	status = "okay";
61866898Sbrian
61966898Sbrian	pinctrl-names = "default";
62037141Sbrian	pinctrl-0 = <&pins_hdmi_ddc>;
62137141Sbrian
62237141Sbrian	ports {
62337141Sbrian		#address-cells = <1>;
62437141Sbrian		#size-cells = <0>;
62537141Sbrian
62637141Sbrian		port@0 {
62736285Sbrian			reg = <0>;
62837141Sbrian			dw_hdmi_in: endpoint {
62937141Sbrian				remote-endpoint = <&lcd_out>;
63037141Sbrian			};
63137141Sbrian		};
63253070Sbrian
63336285Sbrian		port@1 {
63436285Sbrian			reg = <1>;
6356059Samurai			dw_hdmi_out: endpoint {
636				remote-endpoint = <&hdmi_con>;
637			};
638		};
639	};
640};
641
642&lcdc0 {
643	status = "okay";
644
645	port {
646		lcd_out: endpoint {
647			remote-endpoint = <&dw_hdmi_in>;
648		};
649	};
650};
651