1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Support for CompuLab SBC-AM57x single board computer
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
6*724ba675SRob Herring * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
7*724ba675SRob Herring */
8*724ba675SRob Herring
9*724ba675SRob Herring#include "am57xx-cl-som-am57x.dts"
10*724ba675SRob Herring#include "compulab-sb-som.dtsi"
11*724ba675SRob Herring
12*724ba675SRob Herring/ {
13*724ba675SRob Herring	model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x";
14*724ba675SRob Herring	compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
15*724ba675SRob Herring
16*724ba675SRob Herring	aliases {
17*724ba675SRob Herring		display0 = &lcd0;
18*724ba675SRob Herring		display1 = &hdmi;
19*724ba675SRob Herring	};
20*724ba675SRob Herring};
21*724ba675SRob Herring
22*724ba675SRob Herring&dra7_pmx_core {
23*724ba675SRob Herring	uart3_pins_default: uart3-default-pins {
24*724ba675SRob Herring		pinctrl-single,pins = <
25*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3648, PIN_INPUT_SLEW | MUX_MODE0)	/* uart3_rxd */
26*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x364c, PIN_INPUT_SLEW | MUX_MODE0)	/* uart3_txd */
27*724ba675SRob Herring		>;
28*724ba675SRob Herring	};
29*724ba675SRob Herring
30*724ba675SRob Herring	mmc1_pins_default: mmc1-default-pins {
31*724ba675SRob Herring		pinctrl-single,pins = <
32*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
33*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0)	/* mmc1_cmd.cmd */
34*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
35*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
36*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
37*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
38*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)	/* mmc1_sdcd.gpio6_27 */
39*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x377c, PIN_INPUT | MUX_MODE14)	/* mmc1_sdwp.gpio6_28 */
40*724ba675SRob Herring		>;
41*724ba675SRob Herring	};
42*724ba675SRob Herring
43*724ba675SRob Herring	usb1_pins: usb1-pins {
44*724ba675SRob Herring		pinctrl-single,pins = <
45*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
46*724ba675SRob Herring		>;
47*724ba675SRob Herring	};
48*724ba675SRob Herring
49*724ba675SRob Herring	i2c5_pins_default: i2c5-default-pins {
50*724ba675SRob Herring		pinctrl-single,pins = <
51*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT| MUX_MODE10)	/* mcasp1_axr0.i2c5_sda */
52*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10)	/* mcasp1_axr1.i2c5_scl */
53*724ba675SRob Herring		>;
54*724ba675SRob Herring	};
55*724ba675SRob Herring
56*724ba675SRob Herring	lcd_pins_default: lcd-default-pins {
57*724ba675SRob Herring		pinctrl-single,pins = <
58*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14)      /* vin2a_vsync0.gpio4_0 */
59*724ba675SRob Herring		>;
60*724ba675SRob Herring	};
61*724ba675SRob Herring
62*724ba675SRob Herring	hdmi_pins: hdmi-pins {
63*724ba675SRob Herring		pinctrl-single,pins = <
64*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1)	/* i2c2_sda.hdmi1_ddc_scl */
65*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1)	/* i2c2_scl.hdmi1_ddc_sda */
66*724ba675SRob Herring		>;
67*724ba675SRob Herring	};
68*724ba675SRob Herring
69*724ba675SRob Herring	hdmi_conn_pins: hdmi-conn-pins {
70*724ba675SRob Herring		pinctrl-single,pins = <
71*724ba675SRob Herring			DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT | MUX_MODE14)	/* spi1_cs2.gpio7_12 */
72*724ba675SRob Herring		>;
73*724ba675SRob Herring	};
74*724ba675SRob Herring};
75*724ba675SRob Herring
76*724ba675SRob Herring&uart3 {
77*724ba675SRob Herring	status = "okay";
78*724ba675SRob Herring	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
79*724ba675SRob Herring			      <&dra7_pmx_core 0x3f8>;
80*724ba675SRob Herring
81*724ba675SRob Herring	pinctrl-names = "default";
82*724ba675SRob Herring	pinctrl-0 = <&uart3_pins_default>;
83*724ba675SRob Herring};
84*724ba675SRob Herring
85*724ba675SRob Herring&mmc1 {
86*724ba675SRob Herring	status = "okay";
87*724ba675SRob Herring
88*724ba675SRob Herring	pinctrl-names = "default";
89*724ba675SRob Herring	pinctrl-0 = <&mmc1_pins_default>;
90*724ba675SRob Herring
91*724ba675SRob Herring	vmmc-supply = <&ldo1_reg>;
92*724ba675SRob Herring	bus-width = <4>;
93*724ba675SRob Herring	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
94*724ba675SRob Herring	wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
95*724ba675SRob Herring};
96*724ba675SRob Herring
97*724ba675SRob Herring&usb1 {
98*724ba675SRob Herring	pinctrl-names = "default";
99*724ba675SRob Herring	pinctrl-0 = <&usb1_pins>;
100*724ba675SRob Herring};
101*724ba675SRob Herring
102*724ba675SRob Herring&i2c5 {
103*724ba675SRob Herring	status = "okay";
104*724ba675SRob Herring	pinctrl-names = "default";
105*724ba675SRob Herring	pinctrl-0 = <&i2c5_pins_default>;
106*724ba675SRob Herring	clock-frequency = <400000>;
107*724ba675SRob Herring
108*724ba675SRob Herring	eeprom_base: atmel@54 {
109*724ba675SRob Herring		compatible = "atmel,24c08";
110*724ba675SRob Herring		reg = <0x54>;
111*724ba675SRob Herring		pagesize = <16>;
112*724ba675SRob Herring	};
113*724ba675SRob Herring
114*724ba675SRob Herring	pca9555: pca9555@20 {
115*724ba675SRob Herring		compatible = "nxp,pca9555";
116*724ba675SRob Herring		reg = <0x20>;
117*724ba675SRob Herring		gpio-controller;
118*724ba675SRob Herring		#gpio-cells = <2>;
119*724ba675SRob Herring	};
120*724ba675SRob Herring};
121*724ba675SRob Herring
122*724ba675SRob Herring&dss {
123*724ba675SRob Herring	status = "okay";
124*724ba675SRob Herring
125*724ba675SRob Herring	vdda_video-supply = <&ldoln_reg>;
126*724ba675SRob Herring
127*724ba675SRob Herring	port {
128*724ba675SRob Herring		dpi_lcd_out: endpoint {
129*724ba675SRob Herring			remote-endpoint = <&lcd_in>;
130*724ba675SRob Herring			data-lines = <24>;
131*724ba675SRob Herring		};
132*724ba675SRob Herring	};
133*724ba675SRob Herring};
134*724ba675SRob Herring
135*724ba675SRob Herring&lcd0 {
136*724ba675SRob Herring	pinctrl-names = "default";
137*724ba675SRob Herring	pinctrl-0 = <&lcd_pins_default>;
138*724ba675SRob Herring
139*724ba675SRob Herring	enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH
140*724ba675SRob Herring			&gpio4 0 GPIO_ACTIVE_HIGH>;
141*724ba675SRob Herring
142*724ba675SRob Herring	port {
143*724ba675SRob Herring		lcd_in: endpoint {
144*724ba675SRob Herring			remote-endpoint = <&dpi_lcd_out>;
145*724ba675SRob Herring			data-lines = <24>;
146*724ba675SRob Herring		};
147*724ba675SRob Herring	};
148*724ba675SRob Herring};
149*724ba675SRob Herring
150*724ba675SRob Herring&hdmi {
151*724ba675SRob Herring	status = "okay";
152*724ba675SRob Herring	vdda-supply = <&ldo4_reg>;
153*724ba675SRob Herring
154*724ba675SRob Herring	pinctrl-names = "default";
155*724ba675SRob Herring	pinctrl-0 = <&hdmi_pins>;
156*724ba675SRob Herring
157*724ba675SRob Herring	port {
158*724ba675SRob Herring		hdmi_out: endpoint {
159*724ba675SRob Herring			remote-endpoint = <&hdmi_connector_in>;
160*724ba675SRob Herring			lanes = <1 0 3 2 5 4 7 6>;
161*724ba675SRob Herring		};
162*724ba675SRob Herring	};
163*724ba675SRob Herring};
164*724ba675SRob Herring
165*724ba675SRob Herring&hdmi_conn {
166*724ba675SRob Herring	pinctrl-names = "default";
167*724ba675SRob Herring	pinctrl-0 = <&hdmi_conn_pins>;
168*724ba675SRob Herring
169*724ba675SRob Herring	hpd-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>;
170*724ba675SRob Herring
171*724ba675SRob Herring	port {
172*724ba675SRob Herring		hdmi_connector_in: endpoint {
173*724ba675SRob Herring			remote-endpoint = <&hdmi_out>;
174*724ba675SRob Herring		};
175*724ba675SRob Herring	};
176*724ba675SRob Herring};
177