xref: /openbmc/linux/arch/arm/boot/dts/ti/omap/omap3-sniper.dts (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2015-2016 Paul Kocialkowski <contact@paulk.fr>
4*724ba675SRob Herring */
5*724ba675SRob Herring/dts-v1/;
6*724ba675SRob Herring
7*724ba675SRob Herring#include "omap36xx.dtsi"
8*724ba675SRob Herring#include <dt-bindings/input/input.h>
9*724ba675SRob Herring
10*724ba675SRob Herring/ {
11*724ba675SRob Herring	model = "LG Optimus Black";
12*724ba675SRob Herring	compatible = "lg,omap3-sniper", "ti,omap3630", "ti,omap3";
13*724ba675SRob Herring
14*724ba675SRob Herring	cpus {
15*724ba675SRob Herring		cpu@0 {
16*724ba675SRob Herring			cpu0-supply = <&vcc>;
17*724ba675SRob Herring		};
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	memory@80000000 {
21*724ba675SRob Herring		device_type = "memory";
22*724ba675SRob Herring		reg = <0x80000000 0x20000000>; /* 512 MB */
23*724ba675SRob Herring	};
24*724ba675SRob Herring};
25*724ba675SRob Herring
26*724ba675SRob Herring&omap3_pmx_core {
27*724ba675SRob Herring	pinctrl-names = "default";
28*724ba675SRob Herring
29*724ba675SRob Herring	uart3_pins: uart3-pins {
30*724ba675SRob Herring		pinctrl-single,pins = <
31*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)	/* uart3_rx_irrx */
32*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)	/* uart3_tx_irtx */
33*724ba675SRob Herring		>;
34*724ba675SRob Herring	};
35*724ba675SRob Herring
36*724ba675SRob Herring	dp3t_sel_pins: dp3t-sel-pins {
37*724ba675SRob Herring		pinctrl-single,pins = <
38*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE4)	/* gpio_161 */
39*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4)	/* gpio_162 */
40*724ba675SRob Herring		>;
41*724ba675SRob Herring	};
42*724ba675SRob Herring
43*724ba675SRob Herring	i2c1_pins: i2c1-pins {
44*724ba675SRob Herring		pinctrl-single,pins = <
45*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0)	/* i2c1_scl */
46*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0)	/* i2c1_sda */
47*724ba675SRob Herring		>;
48*724ba675SRob Herring	};
49*724ba675SRob Herring
50*724ba675SRob Herring	i2c2_pins: i2c2-pins {
51*724ba675SRob Herring		pinctrl-single,pins = <
52*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0)	/* i2c2_scl */
53*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0)	/* i2c2_sda */
54*724ba675SRob Herring		>;
55*724ba675SRob Herring	};
56*724ba675SRob Herring
57*724ba675SRob Herring	i2c3_pins: i2c3-pins {
58*724ba675SRob Herring		pinctrl-single,pins = <
59*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0)	/* i2c3_scl */
60*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0)	/* i2c3_sda */
61*724ba675SRob Herring		>;
62*724ba675SRob Herring	};
63*724ba675SRob Herring
64*724ba675SRob Herring	lp8720_en_pin: lp8720-en-pins {
65*724ba675SRob Herring		pinctrl-single,pins = <
66*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2080, PIN_OUTPUT | MUX_MODE4)	/* gpio_37 */
67*724ba675SRob Herring		>;
68*724ba675SRob Herring	};
69*724ba675SRob Herring
70*724ba675SRob Herring	mmc1_pins: mmc1-pins {
71*724ba675SRob Herring		pinctrl-single,pins = <
72*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT | MUX_MODE0)	/* sdmmc1_clk */
73*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT | MUX_MODE0)	/* sdmmc1_cmd */
74*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT | MUX_MODE0)	/* sdmmc1_dat0 */
75*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT | MUX_MODE0)	/* sdmmc1_dat1 */
76*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT | MUX_MODE0)	/* sdmmc1_dat2 */
77*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT | MUX_MODE0)	/* sdmmc1_dat3 */
78*724ba675SRob Herring		>;
79*724ba675SRob Herring	};
80*724ba675SRob Herring
81*724ba675SRob Herring	mmc2_pins: mmc2-pins {
82*724ba675SRob Herring		pinctrl-single,pins = <
83*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT | MUX_MODE0)	/* sdmmc2_clk */
84*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT | MUX_MODE0)	/* sdmmc2_cmd */
85*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat0 */
86*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat1 */
87*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat2 */
88*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat3 */
89*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat4 */
90*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat5 */
91*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat6 */
92*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT | MUX_MODE0)	/* sdmmc2_dat7 */
93*724ba675SRob Herring		>;
94*724ba675SRob Herring	};
95*724ba675SRob Herring
96*724ba675SRob Herring	usb_otg_hs_pins: usb-otg-hs-pins {
97*724ba675SRob Herring		pinctrl-single,pins = <
98*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21a2, PIN_INPUT | MUX_MODE0)	/* hsusb0_clk */
99*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21a4, PIN_OUTPUT | MUX_MODE0)	/* hsusb0_stp */
100*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21a6, PIN_INPUT | MUX_MODE0)	/* hsusb0_dir */
101*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21a8, PIN_INPUT | MUX_MODE0)	/* hsusb0_nxt */
102*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21aa, PIN_INPUT | MUX_MODE0)	/* hsusb0_data0 */
103*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21ac, PIN_INPUT | MUX_MODE0)	/* hsusb0_data1 */
104*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21ae, PIN_INPUT | MUX_MODE0)	/* hsusb0_data2 */
105*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21b0, PIN_INPUT | MUX_MODE0)	/* hsusb0_data3 */
106*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21b2, PIN_INPUT | MUX_MODE0)	/* hsusb0_data4 */
107*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21b4, PIN_INPUT | MUX_MODE0)	/* hsusb0_data5 */
108*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21b6, PIN_INPUT | MUX_MODE0)	/* hsusb0_data6 */
109*724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21b8, PIN_INPUT | MUX_MODE0)	/* hsusb0_data7 */
110*724ba675SRob Herring		>;
111*724ba675SRob Herring	};
112*724ba675SRob Herring};
113*724ba675SRob Herring
114*724ba675SRob Herring&omap3_pmx_wkup {
115*724ba675SRob Herring	pinctrl-names = "default";
116*724ba675SRob Herring
117*724ba675SRob Herring	mmc1_cd_pin: mmc1-cd-pins {
118*724ba675SRob Herring		pinctrl-single,pins = <
119*724ba675SRob Herring			OMAP3_WKUP_IOPAD(0x2a1a, PIN_INPUT | MUX_MODE4)		/* gpio_10 */
120*724ba675SRob Herring		>;
121*724ba675SRob Herring	};
122*724ba675SRob Herring};
123*724ba675SRob Herring
124*724ba675SRob Herring&gpio2 {
125*724ba675SRob Herring	ti,no-reset-on-init;
126*724ba675SRob Herring};
127*724ba675SRob Herring
128*724ba675SRob Herring&gpio5 {
129*724ba675SRob Herring	ti,no-reset-on-init;
130*724ba675SRob Herring};
131*724ba675SRob Herring
132*724ba675SRob Herring&gpio6 {
133*724ba675SRob Herring	ti,no-reset-on-init;
134*724ba675SRob Herring};
135*724ba675SRob Herring
136*724ba675SRob Herring&uart3 {
137*724ba675SRob Herring	pinctrl-names = "default";
138*724ba675SRob Herring	pinctrl-0 = <&uart3_pins &dp3t_sel_pins>;
139*724ba675SRob Herring
140*724ba675SRob Herring	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
141*724ba675SRob Herring};
142*724ba675SRob Herring
143*724ba675SRob Herring&i2c1 {
144*724ba675SRob Herring	pinctrl-names = "default";
145*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins>;
146*724ba675SRob Herring
147*724ba675SRob Herring	clock-frequency = <2600000>;
148*724ba675SRob Herring
149*724ba675SRob Herring	twl: twl@48 {
150*724ba675SRob Herring		reg = <0x48>;
151*724ba675SRob Herring		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
152*724ba675SRob Herring		interrupt-parent = <&intc>;
153*724ba675SRob Herring
154*724ba675SRob Herring		power {
155*724ba675SRob Herring			compatible = "ti,twl4030-power";
156*724ba675SRob Herring			ti,use_poweroff;
157*724ba675SRob Herring		};
158*724ba675SRob Herring	};
159*724ba675SRob Herring};
160*724ba675SRob Herring
161*724ba675SRob Herring&i2c2 {
162*724ba675SRob Herring	pinctrl-names = "default";
163*724ba675SRob Herring	pinctrl-0 = <&i2c2_pins>;
164*724ba675SRob Herring
165*724ba675SRob Herring	clock-frequency = <400000>;
166*724ba675SRob Herring};
167*724ba675SRob Herring
168*724ba675SRob Herring&i2c3 {
169*724ba675SRob Herring	pinctrl-names = "default";
170*724ba675SRob Herring	pinctrl-0 = <&i2c3_pins>;
171*724ba675SRob Herring
172*724ba675SRob Herring	clock-frequency = <400000>;
173*724ba675SRob Herring
174*724ba675SRob Herring	lp8720@7d {
175*724ba675SRob Herring		pinctrl-names = "default";
176*724ba675SRob Herring		pinctrl-0 = <&lp8720_en_pin>;
177*724ba675SRob Herring
178*724ba675SRob Herring		compatible = "ti,lp8720";
179*724ba675SRob Herring		reg = <0x7d>;
180*724ba675SRob Herring
181*724ba675SRob Herring		enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* gpio_37 */
182*724ba675SRob Herring
183*724ba675SRob Herring		lp8720_ldo1: ldo1 {
184*724ba675SRob Herring			regulator-min-microvolt = <3000000>;
185*724ba675SRob Herring			regulator-max-microvolt = <3000000>;
186*724ba675SRob Herring		};
187*724ba675SRob Herring	};
188*724ba675SRob Herring};
189*724ba675SRob Herring
190*724ba675SRob Herring&mmc1 {
191*724ba675SRob Herring	pinctrl-names = "default";
192*724ba675SRob Herring	pinctrl-0 = <&mmc1_pins &mmc1_cd_pin>;
193*724ba675SRob Herring
194*724ba675SRob Herring	vmmc-supply = <&lp8720_ldo1>;
195*724ba675SRob Herring	cd-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* gpio 10 */
196*724ba675SRob Herring	bus-width = <4>;
197*724ba675SRob Herring};
198*724ba675SRob Herring
199*724ba675SRob Herring&mmc2 {
200*724ba675SRob Herring	pinctrl-names = "default";
201*724ba675SRob Herring	pinctrl-0 = <&mmc2_pins>;
202*724ba675SRob Herring
203*724ba675SRob Herring	vmmc-supply = <&vmmc2>;
204*724ba675SRob Herring	ti,non-removable;
205*724ba675SRob Herring	bus-width = <8>;
206*724ba675SRob Herring};
207*724ba675SRob Herring
208*724ba675SRob Herring&mmc3 {
209*724ba675SRob Herring	status = "disabled";
210*724ba675SRob Herring};
211*724ba675SRob Herring
212*724ba675SRob Herring&usb_otg_hs {
213*724ba675SRob Herring	pinctrl-names = "default";
214*724ba675SRob Herring	pinctrl-0 = <&usb_otg_hs_pins>;
215*724ba675SRob Herring
216*724ba675SRob Herring	interface-type = <0>;
217*724ba675SRob Herring	usb-phy = <&usb2_phy>;
218*724ba675SRob Herring	phys = <&usb2_phy>;
219*724ba675SRob Herring	phy-names = "usb2-phy";
220*724ba675SRob Herring	mode = <3>;
221*724ba675SRob Herring	power = <50>;
222*724ba675SRob Herring};
223*724ba675SRob Herring
224*724ba675SRob Herring#include "twl4030.dtsi"
225*724ba675SRob Herring#include "twl4030_omap3.dtsi"
226*724ba675SRob Herring
227*724ba675SRob Herring&twl_keypad {
228*724ba675SRob Herring	linux,keymap = <
229*724ba675SRob Herring		MATRIX_KEY(0x00, 0x00, KEY_VOLUMEUP)
230*724ba675SRob Herring		MATRIX_KEY(0x01, 0x00, KEY_VOLUMEDOWN)
231*724ba675SRob Herring		MATRIX_KEY(0x02, 0x00, KEY_SELECT)
232*724ba675SRob Herring	>;
233*724ba675SRob Herring};
234*724ba675SRob Herring
235*724ba675SRob Herring/*
236*724ba675SRob Herring * The TWL4030 VAUX2 and VDAC regulators power sensors that are slaves on I2C3.
237*724ba675SRob Herring * When not powered, these sensors cause the I2C3 clock to stay low at all times,
238*724ba675SRob Herring * making it impossible to reach other devices on I2C3.
239*724ba675SRob Herring */
240*724ba675SRob Herring
241*724ba675SRob Herring&vaux2 {
242*724ba675SRob Herring	regulator-min-microvolt = <2800000>;
243*724ba675SRob Herring	regulator-max-microvolt = <2800000>;
244*724ba675SRob Herring	regulator-always-on;
245*724ba675SRob Herring};
246*724ba675SRob Herring
247*724ba675SRob Herring&vdac {
248*724ba675SRob Herring	regulator-min-microvolt = <1800000>;
249*724ba675SRob Herring	regulator-max-microvolt = <1800000>;
250*724ba675SRob Herring	regulator-always-on;
251*724ba675SRob Herring};
252