Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+239 -34
+4
Documentation/devicetree/bindings/arm/davinci.txt
··· 5 5 Required root node properties: 6 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 12 EnBW AM1808 based CMC board 9 13 Required root node properties: 10 14 - compatible = "enbw,cmc", "ti,da850;
+1
arch/arm/boot/dts/Makefile
··· 120 120 dtb-$(CONFIG_ARCH_CLPS711X) += \ 121 121 ep7211-edb7211.dtb 122 122 dtb-$(CONFIG_ARCH_DAVINCI) += \ 123 + da850-lcdk.dtb \ 123 124 da850-enbw-cmc.dtb \ 124 125 da850-evm.dtb 125 126 dtb-$(CONFIG_ARCH_DIGICOLOR) += \
+44 -5
arch/arm/boot/dts/da850-evm.dts
··· 29 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 47 serial0: serial@42000 { 34 48 status = "okay"; ··· 144 130 gpio: gpio@226000 { 145 131 status = "okay"; 146 132 }; 147 - }; 148 - nand_cs3@62000000 { 149 - status = "okay"; 150 - pinctrl-names = "default"; 151 - pinctrl-0 = <&nand_cs3_pins>; 152 133 }; 153 134 vbat: fixedregulator0 { 154 135 compatible = "regulator-fixed"; ··· 258 249 259 250 &edma1 { 260 251 ti,edma-reserved-slot-ranges = <32 90>; 252 + }; 253 + 254 + &aemif { 255 + pinctrl-names = "default"; 256 + pinctrl-0 = <&nand_pins>; 257 + status = "ok"; 258 + cs3 { 259 + #address-cells = <2>; 260 + #size-cells = <1>; 261 + clock-ranges; 262 + ranges; 263 + 264 + ti,cs-chipselect = <3>; 265 + 266 + nand@2000000,0 { 267 + compatible = "ti,davinci-nand"; 268 + #address-cells = <1>; 269 + #size-cells = <1>; 270 + reg = <0 0x02000000 0x02000000 271 + 1 0x00000000 0x00008000>; 272 + 273 + ti,davinci-chipselect = <1>; 274 + ti,davinci-mask-ale = <0>; 275 + ti,davinci-mask-cle = <0>; 276 + ti,davinci-mask-chipsel = <0>; 277 + ti,davinci-ecc-mode = "hw"; 278 + ti,davinci-ecc-bits = <4>; 279 + ti,davinci-nand-use-bbt; 280 + }; 281 + }; 261 282 };
+138
arch/arm/boot/dts/da850-lcdk.dts
··· 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 + };
+51 -29
arch/arm/boot/dts/da850.dtsi
··· 41 41 pinctrl-single,function-mask = <0xf>; 42 42 status = "disabled"; 43 43 44 - nand_cs3_pins: pinmux_nand_pins { 44 + serial0_rtscts_pins: pinmux_serial0_rtscts_pins { 45 45 pinctrl-single,bits = < 46 - /* EMA_OE, EMA_WE */ 47 - 0x1c 0x00110000 0x00ff0000 48 - /* EMA_CS[4],EMA_CS[3]*/ 49 - 0x1c 0x00000110 0x00000ff0 50 - /* 51 - * EMA_D[0], EMA_D[1], EMA_D[2], 52 - * EMA_D[3], EMA_D[4], EMA_D[5], 53 - * EMA_D[6], EMA_D[7] 54 - */ 55 - 0x24 0x11111111 0xffffffff 56 - /* EMA_A[1], EMA_A[2] */ 57 - 0x30 0x01100000 0x0ff00000 46 + /* UART0_RTS UART0_CTS */ 47 + 0x0c 0x22000000 0xff000000 48 + >; 49 + }; 50 + serial0_rxtx_pins: pinmux_serial0_rxtx_pins { 51 + pinctrl-single,bits = < 52 + /* UART0_TXD UART0_RXD */ 53 + 0x0c 0x00220000 0x00ff0000 54 + >; 55 + }; 56 + serial1_rtscts_pins: pinmux_serial1_rtscts_pins { 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 80 i2c0_pins: pinmux_i2c0_pins { ··· 294 274 status = "disabled"; 295 275 }; 296 276 ehrpwm0: pwm@300000 { 297 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 277 + compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm", 278 + "ti,am33xx-ehrpwm"; 298 279 #pwm-cells = <3>; 299 280 reg = <0x300000 0x2000>; 300 281 status = "disabled"; 301 282 }; 302 283 ehrpwm1: pwm@302000 { 303 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 284 + compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm", 285 + "ti,am33xx-ehrpwm"; 304 286 #pwm-cells = <3>; 305 287 reg = <0x302000 0x2000>; 306 288 status = "disabled"; 307 289 }; 308 290 ecap0: ecap@306000 { 309 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 291 + compatible = "ti,da850-ecap", "ti,am3352-ecap", 292 + "ti,am33xx-ecap"; 310 293 #pwm-cells = <3>; 311 294 reg = <0x306000 0x80>; 312 295 status = "disabled"; 313 296 }; 314 297 ecap1: ecap@307000 { 315 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 298 + compatible = "ti,da850-ecap", "ti,am3352-ecap", 299 + "ti,am33xx-ecap"; 316 300 #pwm-cells = <3>; 317 301 reg = <0x307000 0x80>; 318 302 status = "disabled"; 319 303 }; 320 304 ecap2: ecap@308000 { 321 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 305 + compatible = "ti,da850-ecap", "ti,am3352-ecap", 306 + "ti,am33xx-ecap"; 322 307 #pwm-cells = <3>; 323 308 reg = <0x308000 0x80>; 324 309 status = "disabled"; ··· 400 375 dma-names = "tx", "rx"; 401 376 }; 402 377 }; 403 - nand_cs3@62000000 { 404 - compatible = "ti,davinci-nand"; 405 - reg = <0x62000000 0x807ff 406 - 0x68000000 0x8000>; 407 - ti,davinci-chipselect = <1>; 408 - ti,davinci-mask-ale = <0>; 409 - ti,davinci-mask-cle = <0>; 410 - ti,davinci-mask-chipsel = <0>; 411 - ti,davinci-ecc-mode = "hw"; 412 - ti,davinci-ecc-bits = <4>; 413 - ti,davinci-nand-use-bbt; 378 + aemif: aemif@68000000 { 379 + compatible = "ti,da850-aemif"; 380 + #address-cells = <2>; 381 + #size-cells = <1>; 382 + 383 + reg = <0x68000000 0x00008000>; 384 + ranges = <0 0 0x60000000 0x08000000 385 + 1 0 0x68000000 0x00008000>; 414 386 status = "disabled"; 415 387 }; 416 388 };
+1
arch/arm/mach-davinci/da8xx-dt.c
··· 49 49 50 50 static const char *const da850_boards_compat[] __initconst = { 51 51 "enbw,cmc", 52 + "ti,da850-lcdk", 52 53 "ti,da850-evm", 53 54 "ti,da850", 54 55 NULL,