aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-09-15 05:44:02 -0400
committerArnd Bergmann <arnd@arndb.de>2016-09-15 05:44:02 -0400
commit9b81a8ceea415808018ede67a09ab8c4963b584d (patch)
treeb4f57e43c878b5ed4f70361f2c65f044cf796f1d
parentaaf1edc2bab1dba2a57695a3122ddb28f6cbaa59 (diff)
parent9d05b389846312751108b16f3f8fccd51fa92715 (diff)
Merge tag 'davinci-for-v4.9/dts' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/dt
Pull "DaVinci DA850 device-tree enhancements include" from Sekhar Nori: - Support for new board OMAP-L138 LCDK - Add AEMIF node on DA850 EVM and use it for NAND - Audio support for LCDK - Cleanups for PWM and UART * tag 'davinci-for-v4.9/dts' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: dts: da850-lcdk: Audio support via simple-card ARM: dts: da850,da850-evm: Add an aemif node and use it for the NAND ARM: dts: da850: Add basic DTS for the LCDK ARM: dts: da850: Add missing pin muxing for the UARTs ARM: dts: da850: Add new ECAP and EPWM bindings
-rw-r--r--Documentation/devicetree/bindings/arm/davinci.txt4
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/da850-evm.dts49
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts138
-rw-r--r--arch/arm/boot/dts/da850.dtsi80
-rw-r--r--arch/arm/mach-davinci/da8xx-dt.c1
6 files changed, 239 insertions, 34 deletions
diff --git a/Documentation/devicetree/bindings/arm/davinci.txt b/Documentation/devicetree/bindings/arm/davinci.txt
index cfaeda4274e6..f0841ce725b5 100644
--- a/Documentation/devicetree/bindings/arm/davinci.txt
+++ b/Documentation/devicetree/bindings/arm/davinci.txt
@@ -5,6 +5,10 @@ DA850/OMAP-L138/AM18x Evaluation Module (EVM) board
5Required root node properties: 5Required root node properties:
6 - compatible = "ti,da850-evm", "ti,da850"; 6 - compatible = "ti,da850-evm", "ti,da850";
7 7
8DA850/OMAP-L138/AM18x L138/C6748 Development Kit (LCDK) board
9Required root node properties:
10 - compatible = "ti,da850-lcdk", "ti,da850";
11
8EnBW AM1808 based CMC board 12EnBW AM1808 based CMC board
9Required root node properties: 13Required root node properties:
10 - compatible = "enbw,cmc", "ti,da850; 14 - compatible = "enbw,cmc", "ti,da850;
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b8d789dfe548..50d730101ab2 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -120,6 +120,7 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
120dtb-$(CONFIG_ARCH_CLPS711X) += \ 120dtb-$(CONFIG_ARCH_CLPS711X) += \
121 ep7211-edb7211.dtb 121 ep7211-edb7211.dtb
122dtb-$(CONFIG_ARCH_DAVINCI) += \ 122dtb-$(CONFIG_ARCH_DAVINCI) += \
123 da850-lcdk.dtb \
123 da850-enbw-cmc.dtb \ 124 da850-enbw-cmc.dtb \
124 da850-evm.dtb 125 da850-evm.dtb
125dtb-$(CONFIG_ARCH_DIGICOLOR) += \ 126dtb-$(CONFIG_ARCH_DIGICOLOR) += \
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index 5fd4c37680fd..41de15fe15a2 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -29,6 +29,20 @@
29 0x04 0x00011000 0x000ff000 29 0x04 0x00011000 0x000ff000
30 >; 30 >;
31 }; 31 };
32 nand_pins: nand_pins {
33 pinctrl-single,bits = <
34 /* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[4], EMA_CS[3] */
35 0x1c 0x10110110 0xf0ff0ff0
36 /*
37 * EMA_D[0], EMA_D[1], EMA_D[2],
38 * EMA_D[3], EMA_D[4], EMA_D[5],
39 * EMA_D[6], EMA_D[7]
40 */
41 0x24 0x11111111 0xffffffff
42 /* EMA_A[1], EMA_A[2] */
43 0x30 0x01100000 0x0ff00000
44 >;
45 };
32 }; 46 };
33 serial0: serial@42000 { 47 serial0: serial@42000 {
34 status = "okay"; 48 status = "okay";
@@ -131,11 +145,6 @@
131 status = "okay"; 145 status = "okay";
132 }; 146 };
133 }; 147 };
134 nand_cs3@62000000 {
135 status = "okay";
136 pinctrl-names = "default";
137 pinctrl-0 = <&nand_cs3_pins>;
138 };
139 vbat: fixedregulator0 { 148 vbat: fixedregulator0 {
140 compatible = "regulator-fixed"; 149 compatible = "regulator-fixed";
141 regulator-name = "vbat"; 150 regulator-name = "vbat";
@@ -250,3 +259,33 @@
250&edma1 { 259&edma1 {
251 ti,edma-reserved-slot-ranges = <32 90>; 260 ti,edma-reserved-slot-ranges = <32 90>;
252}; 261};
262
263&aemif {
264 pinctrl-names = "default";
265 pinctrl-0 = <&nand_pins>;
266 status = "ok";
267 cs3 {
268 #address-cells = <2>;
269 #size-cells = <1>;
270 clock-ranges;
271 ranges;
272
273 ti,cs-chipselect = <3>;
274
275 nand@2000000,0 {
276 compatible = "ti,davinci-nand";
277 #address-cells = <1>;
278 #size-cells = <1>;
279 reg = <0 0x02000000 0x02000000
280 1 0x00000000 0x00008000>;
281
282 ti,davinci-chipselect = <1>;
283 ti,davinci-mask-ale = <0>;
284 ti,davinci-mask-cle = <0>;
285 ti,davinci-mask-chipsel = <0>;
286 ti,davinci-ecc-mode = "hw";
287 ti,davinci-ecc-bits = <4>;
288 ti,davinci-nand-use-bbt;
289 };
290 };
291};
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
new file mode 100644
index 000000000000..7563260e95d1
--- /dev/null
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -0,0 +1,138 @@
1/*
2 * Copyright (c) 2016 BayLibre, Inc.
3 *
4 * Licensed under GPLv2.
5 */
6/dts-v1/;
7#include "da850.dtsi"
8#include <dt-bindings/gpio/gpio.h>
9
10/ {
11 model = "DA850/AM1808/OMAP-L138 LCDK";
12 compatible = "ti,da850-lcdk", "ti,da850";
13
14 aliases {
15 serial2 = &serial2;
16 };
17
18 chosen {
19 stdout-path = "serial2:115200n8";
20 };
21
22 memory {
23 device_type = "memory";
24 reg = <0xc0000000 0x08000000>;
25 };
26
27 sound {
28 compatible = "simple-audio-card";
29 simple-audio-card,name = "DA850/OMAP-L138 LCDK";
30 simple-audio-card,widgets =
31 "Line", "Line In",
32 "Line", "Line Out";
33 simple-audio-card,routing =
34 "LINE1L", "Line In",
35 "LINE1R", "Line In",
36 "Line Out", "LLOUT",
37 "Line Out", "RLOUT";
38 simple-audio-card,format = "dsp_b";
39 simple-audio-card,bitclock-master = <&link0_codec>;
40 simple-audio-card,frame-master = <&link0_codec>;
41 simple-audio-card,bitclock-inversion;
42
43 simple-audio-card,cpu {
44 sound-dai = <&mcasp0>;
45 system-clock-frequency = <24576000>;
46 };
47
48 link0_codec: simple-audio-card,codec {
49 sound-dai = <&tlv320aic3106>;
50 system-clock-frequency = <24576000>;
51 };
52 };
53};
54
55&pmx_core {
56 status = "okay";
57
58 mcasp0_pins: pinmux_mcasp0_pins {
59 pinctrl-single,bits = <
60 /* AHCLKX AFSX ACLKX */
61 0x00 0x00101010 0x00f0f0f0
62 /* ARX13 ARX14 */
63 0x04 0x00000110 0x00000ff0
64 >;
65 };
66};
67
68&serial2 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&serial2_rxtx_pins>;
71 status = "okay";
72};
73
74&wdt {
75 status = "okay";
76};
77
78&rtc0 {
79 status = "okay";
80};
81
82&gpio {
83 status = "okay";
84};
85
86&mdio {
87 pinctrl-names = "default";
88 pinctrl-0 = <&mdio_pins>;
89 bus_freq = <2200000>;
90 status = "okay";
91};
92
93&eth0 {
94 pinctrl-names = "default";
95 pinctrl-0 = <&mii_pins>;
96 status = "okay";
97};
98
99&mmc0 {
100 max-frequency = <50000000>;
101 bus-width = <4>;
102 pinctrl-names = "default";
103 pinctrl-0 = <&mmc0_pins>;
104 cd-gpios = <&gpio 64 GPIO_ACTIVE_HIGH>;
105 status = "okay";
106};
107
108&i2c0 {
109 pinctrl-names = "default";
110 pinctrl-0 = <&i2c0_pins>;
111 clock-frequency = <100000>;
112 status = "okay";
113
114 tlv320aic3106: tlv320aic3106@18 {
115 #sound-dai-cells = <0>;
116 compatible = "ti,tlv320aic3106";
117 reg = <0x18>;
118 status = "okay";
119 };
120};
121
122&mcasp0 {
123 #sound-dai-cells = <0>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&mcasp0_pins>;
126 status = "okay";
127
128 op-mode = <0>; /* DAVINCI_MCASP_IIS_MODE */
129 tdm-slots = <2>;
130 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
131 0 0 0 0
132 0 0 0 0
133 0 0 0 0
134 0 1 2 0
135 >;
136 tx-num-evt = <32>;
137 rx-num-evt = <32>;
138};
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index 25f0f8e6dde5..f79e1b91c680 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -41,20 +41,40 @@
41 pinctrl-single,function-mask = <0xf>; 41 pinctrl-single,function-mask = <0xf>;
42 status = "disabled"; 42 status = "disabled";
43 43
44 nand_cs3_pins: pinmux_nand_pins { 44 serial0_rtscts_pins: pinmux_serial0_rtscts_pins {
45 pinctrl-single,bits = < 45 pinctrl-single,bits = <
46 /* EMA_OE, EMA_WE */ 46 /* UART0_RTS UART0_CTS */
47 0x1c 0x00110000 0x00ff0000 47 0x0c 0x22000000 0xff000000
48 /* EMA_CS[4],EMA_CS[3]*/ 48 >;
49 0x1c 0x00000110 0x00000ff0 49 };
50 /* 50 serial0_rxtx_pins: pinmux_serial0_rxtx_pins {
51 * EMA_D[0], EMA_D[1], EMA_D[2], 51 pinctrl-single,bits = <
52 * EMA_D[3], EMA_D[4], EMA_D[5], 52 /* UART0_TXD UART0_RXD */
53 * EMA_D[6], EMA_D[7] 53 0x0c 0x00220000 0x00ff0000
54 */ 54 >;
55 0x24 0x11111111 0xffffffff 55 };
56 /* EMA_A[1], EMA_A[2] */ 56 serial1_rtscts_pins: pinmux_serial1_rtscts_pins {
57 0x30 0x01100000 0x0ff00000 57 pinctrl-single,bits = <
58 /* UART1_CTS UART1_RTS */
59 0x00 0x00440000 0x00ff0000
60 >;
61 };
62 serial1_rxtx_pins: pinmux_serial1_rxtx_pins {
63 pinctrl-single,bits = <
64 /* UART1_TXD UART1_RXD */
65 0x10 0x22000000 0xff000000
66 >;
67 };
68 serial2_rtscts_pins: pinmux_serial2_rtscts_pins {
69 pinctrl-single,bits = <
70 /* UART2_CTS UART2_RTS */
71 0x00 0x44000000 0xff000000
72 >;
73 };
74 serial2_rxtx_pins: pinmux_serial2_rxtx_pins {
75 pinctrl-single,bits = <
76 /* UART2_TXD UART2_RXD */
77 0x10 0x00220000 0x00ff0000
58 >; 78 >;
59 }; 79 };
60 i2c0_pins: pinmux_i2c0_pins { 80 i2c0_pins: pinmux_i2c0_pins {
@@ -274,31 +294,36 @@
274 status = "disabled"; 294 status = "disabled";
275 }; 295 };
276 ehrpwm0: pwm@300000 { 296 ehrpwm0: pwm@300000 {
277 compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 297 compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
298 "ti,am33xx-ehrpwm";
278 #pwm-cells = <3>; 299 #pwm-cells = <3>;
279 reg = <0x300000 0x2000>; 300 reg = <0x300000 0x2000>;
280 status = "disabled"; 301 status = "disabled";
281 }; 302 };
282 ehrpwm1: pwm@302000 { 303 ehrpwm1: pwm@302000 {
283 compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 304 compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
305 "ti,am33xx-ehrpwm";
284 #pwm-cells = <3>; 306 #pwm-cells = <3>;
285 reg = <0x302000 0x2000>; 307 reg = <0x302000 0x2000>;
286 status = "disabled"; 308 status = "disabled";
287 }; 309 };
288 ecap0: ecap@306000 { 310 ecap0: ecap@306000 {
289 compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 311 compatible = "ti,da850-ecap", "ti,am3352-ecap",
312 "ti,am33xx-ecap";
290 #pwm-cells = <3>; 313 #pwm-cells = <3>;
291 reg = <0x306000 0x80>; 314 reg = <0x306000 0x80>;
292 status = "disabled"; 315 status = "disabled";
293 }; 316 };
294 ecap1: ecap@307000 { 317 ecap1: ecap@307000 {
295 compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 318 compatible = "ti,da850-ecap", "ti,am3352-ecap",
319 "ti,am33xx-ecap";
296 #pwm-cells = <3>; 320 #pwm-cells = <3>;
297 reg = <0x307000 0x80>; 321 reg = <0x307000 0x80>;
298 status = "disabled"; 322 status = "disabled";
299 }; 323 };
300 ecap2: ecap@308000 { 324 ecap2: ecap@308000 {
301 compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 325 compatible = "ti,da850-ecap", "ti,am3352-ecap",
326 "ti,am33xx-ecap";
302 #pwm-cells = <3>; 327 #pwm-cells = <3>;
303 reg = <0x308000 0x80>; 328 reg = <0x308000 0x80>;
304 status = "disabled"; 329 status = "disabled";
@@ -375,17 +400,14 @@
375 dma-names = "tx", "rx"; 400 dma-names = "tx", "rx";
376 }; 401 };
377 }; 402 };
378 nand_cs3@62000000 { 403 aemif: aemif@68000000 {
379 compatible = "ti,davinci-nand"; 404 compatible = "ti,da850-aemif";
380 reg = <0x62000000 0x807ff 405 #address-cells = <2>;
381 0x68000000 0x8000>; 406 #size-cells = <1>;
382 ti,davinci-chipselect = <1>; 407
383 ti,davinci-mask-ale = <0>; 408 reg = <0x68000000 0x00008000>;
384 ti,davinci-mask-cle = <0>; 409 ranges = <0 0 0x60000000 0x08000000
385 ti,davinci-mask-chipsel = <0>; 410 1 0 0x68000000 0x00008000>;
386 ti,davinci-ecc-mode = "hw";
387 ti,davinci-ecc-bits = <4>;
388 ti,davinci-nand-use-bbt;
389 status = "disabled"; 411 status = "disabled";
390 }; 412 };
391}; 413};
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index 754f478110b4..ca997114b1f4 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -49,6 +49,7 @@ static void __init da850_init_machine(void)
49 49
50static const char *const da850_boards_compat[] __initconst = { 50static const char *const da850_boards_compat[] __initconst = {
51 "enbw,cmc", 51 "enbw,cmc",
52 "ti,da850-lcdk",
52 "ti,da850-evm", 53 "ti,da850-evm",
53 "ti,da850", 54 "ti,da850",
54 NULL, 55 NULL,