Skip to content

Commit 3938bc6

Browse files
LegoLivesMatterarndb
authored andcommitted
arm64: dts: Add DTS for Marvell PXA1908 and samsung,coreprimevelte
Add DTS for Marvell PXA1908 SoC and Samsung Galaxy Core Prime Value Edition LTE, a smartphone based on said SoC. Signed-off-by: Duje Mihanović <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnd Bergmann <[email protected]>
1 parent 1eb07e9 commit 3938bc6

File tree

4 files changed

+635
-0
lines changed

4 files changed

+635
-0
lines changed

arch/arm64/boot/dts/marvell/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,5 @@ dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-base.dtb
3232
dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-pro.dtb
3333
dtb-$(CONFIG_ARCH_MVEBU) += cn9131-cf-solidwan.dtb
3434
dtb-$(CONFIG_ARCH_MVEBU) += cn9132-clearfog.dtb
35+
36+
subdir-y += mmp
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
dtb-$(CONFIG_ARCH_MMP) += pxa1908-samsung-coreprimevelte.dtb
Lines changed: 331 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,331 @@
1+
// SPDX-License-Identifier: GPL-2.0-only
2+
#include "pxa1908.dtsi"
3+
#include <dt-bindings/gpio/gpio.h>
4+
#include <dt-bindings/input/linux-event-codes.h>
5+
6+
/ {
7+
model = "Samsung Galaxy Core Prime VE LTE";
8+
compatible = "samsung,coreprimevelte", "marvell,pxa1908";
9+
10+
aliases {
11+
mmc0 = &sdh2; /* eMMC */
12+
mmc1 = &sdh0; /* SD card */
13+
serial0 = &uart0;
14+
};
15+
16+
chosen {
17+
#address-cells = <2>;
18+
#size-cells = <2>;
19+
ranges;
20+
21+
stdout-path = "serial0:115200n8";
22+
23+
fb0: framebuffer@17177000 {
24+
compatible = "simple-framebuffer";
25+
reg = <0 0x17177000 0 (480 * 800 * 4)>;
26+
width = <480>;
27+
height = <800>;
28+
stride = <(480 * 4)>;
29+
format = "a8r8g8b8";
30+
};
31+
};
32+
33+
/* Bootloader fills this in */
34+
memory@0 {
35+
device_type = "memory";
36+
reg = <0 0 0 0>;
37+
};
38+
39+
reserved-memory {
40+
#address-cells = <2>;
41+
#size-cells = <2>;
42+
ranges;
43+
44+
framebuffer@17000000 {
45+
reg = <0 0x17000000 0 0x1800000>;
46+
no-map;
47+
};
48+
49+
gpu@9000000 {
50+
reg = <0 0x9000000 0 0x1000000>;
51+
};
52+
53+
/* Communications processor, aka modem */
54+
cp@5000000 {
55+
reg = <0 0x5000000 0 0x3000000>;
56+
};
57+
58+
cm3@a000000 {
59+
reg = <0 0xa000000 0 0x80000>;
60+
};
61+
62+
seclog@8000000 {
63+
reg = <0 0x8000000 0 0x100000>;
64+
};
65+
66+
ramoops@8100000 {
67+
compatible = "ramoops";
68+
reg = <0 0x8100000 0 0x40000>;
69+
record-size = <0x8000>;
70+
console-size = <0x20000>;
71+
max-reason = <5>;
72+
};
73+
};
74+
75+
i2c-muic {
76+
compatible = "i2c-gpio";
77+
sda-gpios = <&gpio 30 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
78+
scl-gpios = <&gpio 29 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
79+
i2c-gpio,delay-us = <3>;
80+
i2c-gpio,timeout-ms = <100>;
81+
#address-cells = <1>;
82+
#size-cells = <0>;
83+
pinctrl-names = "default";
84+
pinctrl-0 = <&i2c_muic_pins>;
85+
86+
muic: extcon@14 {
87+
compatible = "siliconmitus,sm5504-muic";
88+
reg = <0x14>;
89+
interrupt-parent = <&gpio>;
90+
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
91+
};
92+
};
93+
94+
gpio-keys {
95+
compatible = "gpio-keys";
96+
pinctrl-names = "default";
97+
pinctrl-0 = <&gpio_keys_pins>;
98+
autorepeat;
99+
100+
key-home {
101+
label = "Home";
102+
linux,code = <KEY_HOME>;
103+
gpios = <&gpio 50 GPIO_ACTIVE_LOW>;
104+
};
105+
106+
key-volup {
107+
label = "Volume Up";
108+
linux,code = <KEY_VOLUMEUP>;
109+
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
110+
};
111+
112+
key-voldown {
113+
label = "Volume Down";
114+
linux,code = <KEY_VOLUMEDOWN>;
115+
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
116+
};
117+
};
118+
};
119+
120+
&smmu {
121+
status = "okay";
122+
};
123+
124+
&pmx {
125+
pinctrl-single,gpio-range = <&range 55 55 0>,
126+
<&range 110 32 0>,
127+
<&range 52 1 0>;
128+
129+
pinctrl-names = "default";
130+
pinctrl-0 = <&board_pins_0 &board_pins_1 &board_pins_2>;
131+
132+
board_pins_0: board-pins-0 {
133+
pinctrl-single,pins = <
134+
0x160 0
135+
0x164 0
136+
0x168 0
137+
0x16c 0
138+
>;
139+
pinctrl-single,drive-strength = <0x1000 0x1800>;
140+
pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>;
141+
pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>;
142+
pinctrl-single,input-schmitt = <0 0x30>;
143+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
144+
pinctrl-single,low-power-mode = <0x288 0x388>;
145+
};
146+
147+
board_pins_1: board-pins-1 {
148+
pinctrl-single,pins = <
149+
0x44 1
150+
0x48 1
151+
0x20 1
152+
0x18 1
153+
0x14 1
154+
0x10 1
155+
0xc 1
156+
0x8 1
157+
0x68 1
158+
0x58 0
159+
0x54 0
160+
0x7c 0
161+
0x6c 0
162+
0x70 0
163+
0x4c 1
164+
0x50 1
165+
0xac 0
166+
0x90 0
167+
0x8c 0
168+
0x88 0
169+
0x84 0
170+
0xc8 0
171+
0x128 0
172+
0x190 0
173+
0x194 0
174+
0x1a0 0
175+
0x114 0
176+
0x118 0
177+
0x1d8 0
178+
0x1e4 0
179+
0xe8 0
180+
0x100 0
181+
0x204 0
182+
0x210 0
183+
0x218 0
184+
>;
185+
pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
186+
pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xc000>;
187+
pinctrl-single,low-power-mode = <0x288 0x388>;
188+
};
189+
190+
board_pins_2: board-pins-2 {
191+
pinctrl-single,pins = <
192+
0x260 0
193+
0x264 0
194+
0x268 0
195+
0x26c 0
196+
0x270 0
197+
0x274 0
198+
0x78 0
199+
0x74 0
200+
0xb0 1
201+
>;
202+
pinctrl-single,drive-strength = <0x1000 0x1800>;
203+
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
204+
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
205+
pinctrl-single,input-schmitt = <0 0x30>;
206+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
207+
pinctrl-single,low-power-mode = <0 0x388>;
208+
};
209+
210+
uart0_pins: uart0-pins {
211+
pinctrl-single,pins = <
212+
0x198 6
213+
0x19c 6
214+
>;
215+
pinctrl-single,drive-strength = <0x1000 0x1800>;
216+
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
217+
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
218+
pinctrl-single,input-schmitt = <0 0x30>;
219+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
220+
pinctrl-single,low-power-mode = <0 0x388>;
221+
};
222+
223+
gpio_keys_pins: gpio-keys-pins {
224+
pinctrl-single,pins = <
225+
0x11c 0
226+
0x120 0
227+
0x1a4 0
228+
>;
229+
pinctrl-single,drive-strength = <0x1000 0x1800>;
230+
pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
231+
pinctrl-single,bias-pulldown = <0x8000 0xa0000 0x8000 0xa000>;
232+
pinctrl-single,input-schmitt = <0 0x30>;
233+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
234+
pinctrl-single,low-power-mode = <0 0x388>;
235+
};
236+
237+
i2c_muic_pins: i2c-muic-pins {
238+
pinctrl-single,pins = <
239+
0x154 0
240+
0x150 0
241+
>;
242+
pinctrl-single,drive-strength = <0x1000 0x1800>;
243+
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
244+
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
245+
pinctrl-single,input-schmitt = <0 0x30>;
246+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
247+
pinctrl-single,low-power-mode = <0x288 0x388>;
248+
};
249+
250+
sdh0_pins_0: sdh0-pins-0 {
251+
pinctrl-single,pins = <
252+
0x108 0
253+
>;
254+
pinctrl-single,drive-strength = <0x1000 0x1800>;
255+
pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
256+
pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
257+
pinctrl-single,input-schmitt = <0 0x30>;
258+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
259+
pinctrl-single,low-power-mode = <0 0x388>;
260+
};
261+
262+
sdh0_pins_1: sdh0-pins-1 {
263+
pinctrl-single,pins = <
264+
0x94 0
265+
0x98 0
266+
0x9c 0
267+
0xa0 0
268+
0xa4 0
269+
>;
270+
pinctrl-single,drive-strength = <0x800 0x1800>;
271+
pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
272+
pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
273+
pinctrl-single,input-schmitt = <0 0x30>;
274+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
275+
pinctrl-single,low-power-mode = <0 0x388>;
276+
};
277+
278+
sdh0_pins_2: sdh0-pins-2 {
279+
pinctrl-single,pins = <
280+
0xa8 0
281+
>;
282+
pinctrl-single,drive-strength = <0x1000 0x1800>;
283+
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
284+
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
285+
pinctrl-single,input-schmitt = <0 0x30>;
286+
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
287+
pinctrl-single,low-power-mode = <0x208 0x388>;
288+
};
289+
};
290+
291+
&uart0 {
292+
pinctrl-names = "default";
293+
pinctrl-0 = <&uart0_pins>;
294+
};
295+
296+
&twsi0 {
297+
status = "okay";
298+
};
299+
300+
&twsi1 {
301+
status = "okay";
302+
};
303+
304+
&twsi2 {
305+
status = "okay";
306+
};
307+
308+
&twsi3 {
309+
status = "okay";
310+
};
311+
312+
&usb {
313+
extcon = <&muic>, <&muic>;
314+
};
315+
316+
&sdh2 {
317+
/* Disabled for now because initialization fails with -ETIMEDOUT. */
318+
status = "disabled";
319+
bus-width = <8>;
320+
non-removable;
321+
mmc-ddr-1_8v;
322+
};
323+
324+
&sdh0 {
325+
pinctrl-names = "default";
326+
pinctrl-0 = <&sdh0_pins_0 &sdh0_pins_1 &sdh0_pins_2>;
327+
cd-gpios = <&gpio 11 0>;
328+
cd-inverted;
329+
bus-width = <4>;
330+
wp-inverted;
331+
};

0 commit comments

Comments
 (0)