diff options
author | Arnd Bergmann <arnd@arndb.de> | 2016-09-15 05:44:02 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2016-09-15 05:44:02 -0400 |
commit | 9b81a8ceea415808018ede67a09ab8c4963b584d (patch) | |
tree | b4f57e43c878b5ed4f70361f2c65f044cf796f1d | |
parent | aaf1edc2bab1dba2a57695a3122ddb28f6cbaa59 (diff) | |
parent | 9d05b389846312751108b16f3f8fccd51fa92715 (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.txt | 4 | ||||
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/da850-evm.dts | 49 | ||||
-rw-r--r-- | arch/arm/boot/dts/da850-lcdk.dts | 138 | ||||
-rw-r--r-- | arch/arm/boot/dts/da850.dtsi | 80 | ||||
-rw-r--r-- | arch/arm/mach-davinci/da8xx-dt.c | 1 |
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 | |||
5 | Required root node properties: | 5 | Required root node properties: |
6 | - compatible = "ti,da850-evm", "ti,da850"; | 6 | - compatible = "ti,da850-evm", "ti,da850"; |
7 | 7 | ||
8 | DA850/OMAP-L138/AM18x L138/C6748 Development Kit (LCDK) board | ||
9 | Required root node properties: | ||
10 | - compatible = "ti,da850-lcdk", "ti,da850"; | ||
11 | |||
8 | EnBW AM1808 based CMC board | 12 | EnBW AM1808 based CMC board |
9 | Required root node properties: | 13 | Required 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) += \ | |||
120 | dtb-$(CONFIG_ARCH_CLPS711X) += \ | 120 | dtb-$(CONFIG_ARCH_CLPS711X) += \ |
121 | ep7211-edb7211.dtb | 121 | ep7211-edb7211.dtb |
122 | dtb-$(CONFIG_ARCH_DAVINCI) += \ | 122 | dtb-$(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 |
125 | dtb-$(CONFIG_ARCH_DIGICOLOR) += \ | 126 | dtb-$(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 | ð0 { | ||
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 | ||
50 | static const char *const da850_boards_compat[] __initconst = { | 50 | static 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, |