1295011Sandrew/*
2295011Sandrew * Support for CompuLab SBC-AM57x single board computer
3295011Sandrew *
4295011Sandrew * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
5295011Sandrew * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
6295011Sandrew *
7295011Sandrew * This program is free software; you can redistribute it and/or modify it
8295011Sandrew * under the terms of the GNU General Public License version 2 as published by
9295011Sandrew * the Free Software Foundation.
10295011Sandrew */
11295011Sandrew
12295011Sandrew#include "am57xx-cl-som-am57x.dts"
13295011Sandrew#include "compulab-sb-som.dtsi"
14295011Sandrew
15295011Sandrew/ {
16295011Sandrew	model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x";
17295011Sandrew	compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
18295011Sandrew
19295011Sandrew	aliases {
20295011Sandrew		display0 = &lcd0;
21295011Sandrew		display1 = &hdmi;
22295011Sandrew	};
23295011Sandrew};
24295011Sandrew
25295011Sandrew&dra7_pmx_core {
26295011Sandrew	uart3_pins_default: uart3_pins_default {
27295011Sandrew		pinctrl-single,pins = <
28295011Sandrew			DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2)	/* uart2_ctsn.uart3_rxd */
29295011Sandrew			DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1)	/* uart2_rtsn.uart3_txd */
30295011Sandrew		>;
31295011Sandrew	};
32295011Sandrew
33295011Sandrew	mmc1_pins_default: mmc1_pins_default {
34295011Sandrew		pinctrl-single,pins = <
35295011Sandrew			DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
36295011Sandrew			DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0)	/* mmc1_cmd.cmd */
37295011Sandrew			DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
38295011Sandrew			DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
39295011Sandrew			DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
40295011Sandrew			DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
41295011Sandrew			DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)	/* mmc1_sdcd.gpio6_27 */
42295011Sandrew			DRA7XX_CORE_IOPAD(0x377c, PIN_INPUT | MUX_MODE14)	/* mmc1_sdwp.gpio6_28 */
43295011Sandrew		>;
44295011Sandrew	};
45295011Sandrew
46295011Sandrew	usb1_pins: pinmux_usb1_pins {
47295011Sandrew		pinctrl-single,pins = <
48295011Sandrew			DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
49295011Sandrew		>;
50295011Sandrew	};
51295011Sandrew
52295011Sandrew	i2c5_pins_default: i2c5_pins_default {
53295011Sandrew		pinctrl-single,pins = <
54295011Sandrew			DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT| MUX_MODE10)	/* mcasp1_axr0.i2c5_sda */
55295011Sandrew			DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10)	/* mcasp1_axr1.i2c5_scl */
56295011Sandrew		>;
57295011Sandrew	};
58295011Sandrew
59295011Sandrew	lcd_pins_default: lcd_pins_default {
60295011Sandrew		pinctrl-single,pins = <
61295011Sandrew			DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14)      /* vin2a_vsync0.gpio4_0 */
62295011Sandrew		>;
63295011Sandrew	};
64295011Sandrew
65295011Sandrew	hdmi_pins: pinmux_hdmi_pins {
66295011Sandrew		pinctrl-single,pins = <
67295011Sandrew			DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1)	/* i2c2_sda.hdmi1_ddc_scl */
68295011Sandrew			DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1)	/* i2c2_scl.hdmi1_ddc_sda */
69295011Sandrew		>;
70295011Sandrew	};
71295011Sandrew
72295011Sandrew	hdmi_conn_pins: pinmux_hdmi_conn_pins {
73295011Sandrew		pinctrl-single,pins = <
74295011Sandrew			DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT | MUX_MODE14)	/* spi1_cs2.gpio7_12 */
75295011Sandrew		>;
76295011Sandrew	};
77295011Sandrew};
78295011Sandrew
79295011Sandrew&uart3 {
80295011Sandrew	status = "okay";
81295011Sandrew	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
82295011Sandrew			      <&dra7_pmx_core 0x3f8>;
83295011Sandrew
84295011Sandrew	pinctrl-names = "default";
85295011Sandrew	pinctrl-0 = <&uart3_pins_default>;
86295011Sandrew};
87295011Sandrew
88295011Sandrew&mmc1 {
89295011Sandrew	status = "okay";
90295011Sandrew
91295011Sandrew	pinctrl-names = "default";
92295011Sandrew	pinctrl-0 = <&mmc1_pins_default>;
93295011Sandrew
94295011Sandrew	vmmc-supply = <&ldo1_reg>;
95295011Sandrew	bus-width = <4>;
96295011Sandrew	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
97295011Sandrew	wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
98295011Sandrew};
99295011Sandrew
100295011Sandrew&usb1 {
101295011Sandrew	pinctrl-names = "default";
102295011Sandrew	pinctrl-0 = <&usb1_pins>;
103295011Sandrew};
104295011Sandrew
105295011Sandrew&i2c5 {
106295011Sandrew	status = "okay";
107295011Sandrew	pinctrl-names = "default";
108295011Sandrew	pinctrl-0 = <&i2c5_pins_default>;
109295011Sandrew	clock-frequency = <400000>;
110295011Sandrew
111295011Sandrew	eeprom_base: atmel@50 {
112295011Sandrew		compatible = "atmel,24c08";
113295011Sandrew		reg = <0x50>;
114295011Sandrew		pagesize = <16>;
115295011Sandrew	};
116295011Sandrew
117295011Sandrew	pca9555: pca9555@20 {
118295011Sandrew		compatible = "nxp,pca9555";
119295011Sandrew		reg = <0x20>;
120295011Sandrew		gpio-controller;
121295011Sandrew		#gpio-cells = <2>;
122295011Sandrew	};
123295011Sandrew};
124295011Sandrew
125295011Sandrew&dss {
126295011Sandrew	status = "ok";
127295011Sandrew
128295011Sandrew	vdda_video-supply = <&ldoln_reg>;
129295011Sandrew
130295011Sandrew	port {
131295011Sandrew		dpi_lcd_out: endpoint@0 {
132295011Sandrew			remote-endpoint = <&lcd_in>;
133295011Sandrew			data-lines = <24>;
134295011Sandrew		};
135295011Sandrew	};
136295011Sandrew};
137295011Sandrew
138295011Sandrew&lcd0 {
139295011Sandrew	pinctrl-names = "default";
140295011Sandrew	pinctrl-0 = <&lcd_pins_default>;
141295011Sandrew
142295011Sandrew	enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH
143295011Sandrew			&gpio4 0 GPIO_ACTIVE_HIGH>;
144295011Sandrew
145295011Sandrew	port {
146295011Sandrew		lcd_in: endpoint {
147295011Sandrew			remote-endpoint = <&dpi_lcd_out>;
148295011Sandrew			data-lines = <24>;
149295011Sandrew		};
150295011Sandrew	};
151295011Sandrew};
152295011Sandrew
153295011Sandrew&hdmi {
154295011Sandrew	status = "ok";
155295011Sandrew	vdda-supply = <&ldo4_reg>;
156295011Sandrew
157295011Sandrew	pinctrl-names = "default";
158295011Sandrew	pinctrl-0 = <&hdmi_pins>;
159295011Sandrew
160295011Sandrew	port {
161295011Sandrew		hdmi_out: endpoint {
162295011Sandrew			remote-endpoint = <&hdmi_connector_in>;
163295011Sandrew			lanes = <1 0 3 2 5 4 7 6>;
164295011Sandrew		};
165295011Sandrew	};
166295011Sandrew};
167295011Sandrew
168295011Sandrew&hdmi_conn {
169295011Sandrew	pinctrl-names = "default";
170295011Sandrew	pinctrl-0 = <&hdmi_conn_pins>;
171295011Sandrew
172295011Sandrew	hpd-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>;
173295011Sandrew
174295011Sandrew	port {
175295011Sandrew		hdmi_connector_in: endpoint {
176295011Sandrew			remote-endpoint = <&hdmi_out>;
177295011Sandrew		};
178295011Sandrew	};
179295011Sandrew};
180