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