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

Merge tag 'lpc32xx-dt-4.7' of git://github.com/vzapolskiy/linux-lpc32xx into next/dt

Merge "NXP LPC32xx device tree updates for v4.7" from Vladimir Zapolskiy:

This includes a few functional changes:
* new representation of MIC, SIC1 and SIC2 interrupt controllers,
* disabled by default SPI1, SPI2, SSP0 and SSP1 SPI controllers in
shared lpc32xx.dtsi file,
* added clock sources for SPI1 and SPI2,
* set default clock rate of HCLK PLL to main osc rate multiplied by 16.

Also there are some non-functional changes:
* flatten board DTS files by exploiting device node labels,
* add 'partitions' device node for NAND SLC / MTD OF,
* correct Atmel vendor prefix to describe on board AT24 EEPROMs,
* rename board DTS files by adding SoC name prefix.

Since now DTS files of LPC32xx boards match "^lpc32[2345]0-" pattern.

* tag 'lpc32xx-dt-4.7' of git://github.com/vzapolskiy/linux-lpc32xx:
ARM: dts: lpc32xx: phy3250: add SoC name prefix to board dts file
ARM: dts: lpc32xx: phy3250: add NAND partitions device node
ARM: dts: lpc32xx: phy3250: avoid extension of device nodes by absolute path
ARM: dts: lpc32xx: ea3250: add SoC name prefix to board dts file
ARM: dts: lpc32xx: ea3250: fix Atmel at24 eeprom vendor
ARM: dts: lpc32xx: ea3250: add NAND partitions device node
ARM: dts: lpc32xx: ea3250: avoid extension of device nodes by absolute path
ARM: dts: lpc32xx: reparent SIC1 and SIC2 interrupts from MIC
dt-bindings: interrupt-controllers: add description of SIC1 and SIC2
ARM: dts: lpc32xx: disabled ssp0/spi1 & ssp1/spi2 by default
ARM: dts: phy3250: enable ssp0
ARM: dts: lpc32xx: add clock properties to spi nodes
ARM: dts: lpc32xx: set default clock rate of HCLK PLL

+447 -386
+46 -24
Documentation/devicetree/bindings/interrupt-controller/nxp,lpc3220-mic.txt
··· 1 - * NXP LPC32xx Main Interrupt Controller 2 - (MIC, including SIC1 and SIC2 secondary controllers) 1 + * NXP LPC32xx MIC, SIC1 and SIC2 Interrupt Controllers 3 2 4 3 Required properties: 5 - - compatible: Should be "nxp,lpc3220-mic" 6 - - interrupt-controller: Identifies the node as an interrupt controller. 7 - - interrupt-parent: Empty for the interrupt controller itself 8 - - #interrupt-cells: The number of cells to define the interrupts. Should be 2. 9 - The first cell is the IRQ number 10 - The second cell is used to specify mode: 11 - 1 = low-to-high edge triggered 12 - 2 = high-to-low edge triggered 13 - 4 = active high level-sensitive 14 - 8 = active low level-sensitive 15 - Default for internal sources should be set to 4 (active high). 16 - - reg: Should contain MIC registers location and length 4 + - compatible: "nxp,lpc3220-mic" or "nxp,lpc3220-sic". 5 + - reg: should contain IC registers location and length. 6 + - interrupt-controller: identifies the node as an interrupt controller. 7 + - #interrupt-cells: the number of cells to define an interrupt, should be 2. 8 + The first cell is the IRQ number, the second cell is used to specify 9 + one of the supported IRQ types: 10 + IRQ_TYPE_EDGE_RISING = low-to-high edge triggered, 11 + IRQ_TYPE_EDGE_FALLING = high-to-low edge triggered, 12 + IRQ_TYPE_LEVEL_HIGH = active high level-sensitive, 13 + IRQ_TYPE_LEVEL_LOW = active low level-sensitive. 14 + Reset value is IRQ_TYPE_LEVEL_LOW. 15 + 16 + Optional properties: 17 + - interrupt-parent: empty for MIC interrupt controller, link to parent 18 + MIC interrupt controller for SIC1 and SIC2 19 + - interrupts: empty for MIC interrupt controller, cascaded MIC 20 + hardware interrupts for SIC1 and SIC2 17 21 18 22 Examples: 19 - /* 20 - * MIC 21 - */ 23 + 24 + /* LPC32xx MIC, SIC1 and SIC2 interrupt controllers */ 22 25 mic: interrupt-controller@40008000 { 23 26 compatible = "nxp,lpc3220-mic"; 27 + reg = <0x40008000 0x4000>; 24 28 interrupt-controller; 25 - interrupt-parent; 26 29 #interrupt-cells = <2>; 27 - reg = <0x40008000 0xC000>; 28 30 }; 29 31 30 - /* 31 - * ADC 32 - */ 32 + sic1: interrupt-controller@4000c000 { 33 + compatible = "nxp,lpc3220-sic"; 34 + reg = <0x4000c000 0x4000>; 35 + interrupt-controller; 36 + #interrupt-cells = <2>; 37 + 38 + interrupt-parent = <&mic>; 39 + interrupts = <0 IRQ_TYPE_LEVEL_LOW>, 40 + <30 IRQ_TYPE_LEVEL_LOW>; 41 + }; 42 + 43 + sic2: interrupt-controller@40010000 { 44 + compatible = "nxp,lpc3220-sic"; 45 + reg = <0x40010000 0x4000>; 46 + interrupt-controller; 47 + #interrupt-cells = <2>; 48 + 49 + interrupt-parent = <&mic>; 50 + interrupts = <1 IRQ_TYPE_LEVEL_LOW>, 51 + <31 IRQ_TYPE_LEVEL_LOW>; 52 + }; 53 + 54 + /* ADC */ 33 55 adc@40048000 { 34 56 compatible = "nxp,lpc3220-adc"; 35 57 reg = <0x40048000 0x1000>; 36 - interrupt-parent = <&mic>; 37 - interrupts = <39 4>; 58 + interrupt-parent = <&sic1>; 59 + interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; 38 60 };
+2 -1
arch/arm/boot/dts/Makefile
··· 245 245 lpc4350-hitex-eval.dtb \ 246 246 lpc4357-ea4357-devkit.dtb 247 247 dtb-$(CONFIG_ARCH_LPC32XX) += \ 248 - ea3250.dtb phy3250.dtb 248 + lpc3250-ea3250.dtb \ 249 + lpc3250-phy3250.dtb 249 250 dtb-$(CONFIG_MACH_MESON6) += \ 250 251 meson6-atv1200.dtb 251 252 dtb-$(CONFIG_MACH_MESON8) += \
+114 -116
arch/arm/boot/dts/ea3250.dts arch/arm/boot/dts/lpc3250-ea3250.dts
··· 25 25 reg = <0x80000000 0x4000000>; 26 26 }; 27 27 28 - ahb { 29 - mac: ethernet@31060000 { 30 - phy-mode = "rmii"; 31 - use-iram; 32 - }; 33 - 34 - /* 128MB Flash via SLC NAND controller */ 35 - slc: flash@20020000 { 36 - status = "okay"; 37 - #address-cells = <1>; 38 - #size-cells = <1>; 39 - 40 - nxp,wdr-clks = <14>; 41 - nxp,wwidth = <260000000>; 42 - nxp,whold = <104000000>; 43 - nxp,wsetup = <200000000>; 44 - nxp,rdr-clks = <14>; 45 - nxp,rwidth = <34666666>; 46 - nxp,rhold = <104000000>; 47 - nxp,rsetup = <200000000>; 48 - nand-on-flash-bbt; 49 - gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ 50 - 51 - mtd0@00000000 { 52 - label = "ea3250-boot"; 53 - reg = <0x00000000 0x00080000>; 54 - read-only; 55 - }; 56 - 57 - mtd1@00080000 { 58 - label = "ea3250-uboot"; 59 - reg = <0x00080000 0x000c0000>; 60 - read-only; 61 - }; 62 - 63 - mtd2@00140000 { 64 - label = "ea3250-kernel"; 65 - reg = <0x00140000 0x00400000>; 66 - }; 67 - 68 - mtd3@00540000 { 69 - label = "ea3250-rootfs"; 70 - reg = <0x00540000 0x07ac0000>; 71 - }; 72 - }; 73 - 74 - apb { 75 - uart5: serial@40090000 { 76 - status = "okay"; 77 - }; 78 - 79 - uart3: serial@40080000 { 80 - status = "okay"; 81 - }; 82 - 83 - uart6: serial@40098000 { 84 - status = "okay"; 85 - }; 86 - 87 - i2c1: i2c@400A0000 { 88 - clock-frequency = <100000>; 89 - 90 - eeprom@50 { 91 - compatible = "at,24c256"; 92 - reg = <0x50>; 93 - }; 94 - 95 - eeprom@57 { 96 - compatible = "at,24c64"; 97 - reg = <0x57>; 98 - }; 99 - 100 - uda1380: uda1380@18 { 101 - compatible = "nxp,uda1380"; 102 - reg = <0x18>; 103 - power-gpio = <&gpio 0x59 0>; 104 - reset-gpio = <&gpio 0x51 0>; 105 - dac-clk = "wspll"; 106 - }; 107 - 108 - pca9532: pca9532@60 { 109 - compatible = "nxp,pca9532"; 110 - gpio-controller; 111 - #gpio-cells = <2>; 112 - reg = <0x60>; 113 - }; 114 - }; 115 - 116 - i2c2: i2c@400A8000 { 117 - clock-frequency = <100000>; 118 - }; 119 - 120 - sd@20098000 { 121 - wp-gpios = <&pca9532 5 0>; 122 - cd-gpios = <&pca9532 4 0>; 123 - cd-inverted; 124 - bus-width = <4>; 125 - status = "okay"; 126 - }; 127 - }; 128 - 129 - fab { 130 - uart1: serial@40014000 { 131 - status = "okay"; 132 - }; 133 - 134 - /* 3-axis accelerometer X,Y,Z (or AD-IN instead of Z) */ 135 - adc@40048000 { 136 - status = "okay"; 137 - }; 138 - }; 139 - }; 140 - 141 28 gpio_keys { 142 29 compatible = "gpio-keys"; 143 30 #address-cells = <1>; ··· 145 258 }; 146 259 }; 147 260 148 - /* Here, choose exactly one from: ohci, usbd */ 149 - &ohci /* &usbd */ { 150 - transceiver = <&isp1301>; 261 + /* 3-axis accelerometer X,Y,Z (or AD-IN instead of Z) */ 262 + &adc { 151 263 status = "okay"; 264 + }; 265 + 266 + &i2c1 { 267 + clock-frequency = <100000>; 268 + 269 + uda1380: uda1380@18 { 270 + compatible = "nxp,uda1380"; 271 + reg = <0x18>; 272 + power-gpio = <&gpio 0x59 0>; 273 + reset-gpio = <&gpio 0x51 0>; 274 + dac-clk = "wspll"; 275 + }; 276 + 277 + eeprom@50 { 278 + compatible = "atmel,24c256"; 279 + reg = <0x50>; 280 + }; 281 + 282 + eeprom@57 { 283 + compatible = "atmel,24c64"; 284 + reg = <0x57>; 285 + }; 286 + 287 + pca9532: pca9532@60 { 288 + compatible = "nxp,pca9532"; 289 + gpio-controller; 290 + #gpio-cells = <2>; 291 + reg = <0x60>; 292 + }; 293 + }; 294 + 295 + &i2c2 { 296 + clock-frequency = <100000>; 152 297 }; 153 298 154 299 &i2cusb { ··· 190 271 compatible = "nxp,isp1301"; 191 272 reg = <0x2d>; 192 273 }; 274 + }; 275 + 276 + &mac { 277 + phy-mode = "rmii"; 278 + use-iram; 279 + }; 280 + 281 + /* Here, choose exactly one from: ohci, usbd */ 282 + &ohci /* &usbd */ { 283 + transceiver = <&isp1301>; 284 + status = "okay"; 285 + }; 286 + 287 + &sd { 288 + wp-gpios = <&pca9532 5 0>; 289 + cd-gpios = <&pca9532 4 0>; 290 + cd-inverted; 291 + bus-width = <4>; 292 + status = "okay"; 293 + }; 294 + 295 + /* 128MB Flash via SLC NAND controller */ 296 + &slc { 297 + status = "okay"; 298 + 299 + nxp,wdr-clks = <14>; 300 + nxp,wwidth = <260000000>; 301 + nxp,whold = <104000000>; 302 + nxp,wsetup = <200000000>; 303 + nxp,rdr-clks = <14>; 304 + nxp,rwidth = <34666666>; 305 + nxp,rhold = <104000000>; 306 + nxp,rsetup = <200000000>; 307 + nand-on-flash-bbt; 308 + gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ 309 + 310 + partitions { 311 + compatible = "fixed-partitions"; 312 + #address-cells = <1>; 313 + #size-cells = <1>; 314 + 315 + mtd0@00000000 { 316 + label = "ea3250-boot"; 317 + reg = <0x00000000 0x00080000>; 318 + read-only; 319 + }; 320 + 321 + mtd1@00080000 { 322 + label = "ea3250-uboot"; 323 + reg = <0x00080000 0x000c0000>; 324 + read-only; 325 + }; 326 + 327 + mtd2@00140000 { 328 + label = "ea3250-kernel"; 329 + reg = <0x00140000 0x00400000>; 330 + }; 331 + 332 + mtd3@00540000 { 333 + label = "ea3250-rootfs"; 334 + reg = <0x00540000 0x07ac0000>; 335 + }; 336 + }; 337 + }; 338 + 339 + &uart1 { 340 + status = "okay"; 341 + }; 342 + 343 + &uart3 { 344 + status = "okay"; 345 + }; 346 + 347 + &uart5 { 348 + status = "okay"; 349 + }; 350 + 351 + &uart6 { 352 + status = "okay"; 193 353 };
+226
arch/arm/boot/dts/lpc3250-phy3250.dts
··· 1 + /* 2 + * PHYTEC phyCORE-LPC3250 board 3 + * 4 + * Copyright 2012 Roland Stigge <stigge@antcom.de> 5 + * 6 + * The code contained herein is licensed under the GNU General Public 7 + * License. You may obtain a copy of the GNU General Public License 8 + * Version 2 or later at the following locations: 9 + * 10 + * http://www.opensource.org/licenses/gpl-license.html 11 + * http://www.gnu.org/copyleft/gpl.html 12 + */ 13 + 14 + /dts-v1/; 15 + #include "lpc32xx.dtsi" 16 + 17 + / { 18 + model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250"; 19 + compatible = "phytec,phy3250", "nxp,lpc3250"; 20 + #address-cells = <1>; 21 + #size-cells = <1>; 22 + 23 + memory { 24 + device_type = "memory"; 25 + reg = <0x80000000 0x4000000>; 26 + }; 27 + 28 + regulators { 29 + backlight_reg: regulator@0 { 30 + compatible = "regulator-fixed"; 31 + regulator-name = "backlight_reg"; 32 + regulator-min-microvolt = <1800000>; 33 + regulator-max-microvolt = <1800000>; 34 + gpio = <&gpio 5 4 0>; 35 + enable-active-high; 36 + regulator-boot-on; 37 + }; 38 + 39 + lcd_reg: regulator@1 { 40 + compatible = "regulator-fixed"; 41 + regulator-name = "lcd_reg"; 42 + regulator-min-microvolt = <1800000>; 43 + regulator-max-microvolt = <1800000>; 44 + gpio = <&gpio 5 0 0>; 45 + enable-active-high; 46 + regulator-boot-on; 47 + }; 48 + 49 + sd_reg: regulator@2 { 50 + compatible = "regulator-fixed"; 51 + regulator-name = "sd_reg"; 52 + regulator-min-microvolt = <1800000>; 53 + regulator-max-microvolt = <1800000>; 54 + gpio = <&gpio 5 5 0>; 55 + enable-active-high; 56 + }; 57 + }; 58 + 59 + leds { 60 + compatible = "gpio-leds"; 61 + 62 + led0 { /* red */ 63 + gpios = <&gpio 5 1 0>; /* GPO_P3 1, GPIO 80, active high */ 64 + default-state = "off"; 65 + }; 66 + 67 + led1 { /* green */ 68 + gpios = <&gpio 5 14 0>; /* GPO_P3 14, GPIO 93, active high */ 69 + linux,default-trigger = "heartbeat"; 70 + }; 71 + }; 72 + }; 73 + 74 + &clcd { 75 + status = "okay"; 76 + }; 77 + 78 + &i2c1 { 79 + clock-frequency = <100000>; 80 + 81 + uda1380: uda1380@18 { 82 + compatible = "nxp,uda1380"; 83 + reg = <0x18>; 84 + power-gpio = <&gpio 0x59 0>; 85 + reset-gpio = <&gpio 0x51 0>; 86 + dac-clk = "wspll"; 87 + }; 88 + 89 + pcf8563: rtc@51 { 90 + compatible = "nxp,pcf8563"; 91 + reg = <0x51>; 92 + }; 93 + }; 94 + 95 + &i2c2 { 96 + clock-frequency = <100000>; 97 + }; 98 + 99 + &i2cusb { 100 + clock-frequency = <100000>; 101 + 102 + isp1301: usb-transceiver@2c { 103 + compatible = "nxp,isp1301"; 104 + reg = <0x2c>; 105 + }; 106 + }; 107 + 108 + &key { 109 + keypad,num-rows = <1>; 110 + keypad,num-columns = <1>; 111 + nxp,debounce-delay-ms = <3>; 112 + nxp,scan-delay-ms = <34>; 113 + linux,keymap = <0x00000002>; 114 + status = "okay"; 115 + }; 116 + 117 + &mac { 118 + phy-mode = "rmii"; 119 + use-iram; 120 + }; 121 + 122 + /* Here, choose exactly one from: ohci, usbd */ 123 + &ohci /* &usbd */ { 124 + transceiver = <&isp1301>; 125 + status = "okay"; 126 + }; 127 + 128 + &sd { 129 + wp-gpios = <&gpio 3 0 0>; 130 + cd-gpios = <&gpio 3 1 0>; 131 + cd-inverted; 132 + bus-width = <4>; 133 + vmmc-supply = <&sd_reg>; 134 + status = "okay"; 135 + }; 136 + 137 + /* 64MB Flash via SLC NAND controller */ 138 + &slc { 139 + status = "okay"; 140 + 141 + nxp,wdr-clks = <14>; 142 + nxp,wwidth = <40000000>; 143 + nxp,whold = <100000000>; 144 + nxp,wsetup = <100000000>; 145 + nxp,rdr-clks = <14>; 146 + nxp,rwidth = <40000000>; 147 + nxp,rhold = <66666666>; 148 + nxp,rsetup = <100000000>; 149 + nand-on-flash-bbt; 150 + gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ 151 + 152 + partitions { 153 + compatible = "fixed-partitions"; 154 + #address-cells = <1>; 155 + #size-cells = <1>; 156 + 157 + mtd0@00000000 { 158 + label = "phy3250-boot"; 159 + reg = <0x00000000 0x00064000>; 160 + read-only; 161 + }; 162 + 163 + mtd1@00064000 { 164 + label = "phy3250-uboot"; 165 + reg = <0x00064000 0x00190000>; 166 + read-only; 167 + }; 168 + 169 + mtd2@001f4000 { 170 + label = "phy3250-ubt-prms"; 171 + reg = <0x001f4000 0x00010000>; 172 + }; 173 + 174 + mtd3@00204000 { 175 + label = "phy3250-kernel"; 176 + reg = <0x00204000 0x00400000>; 177 + }; 178 + 179 + mtd4@00604000 { 180 + label = "phy3250-rootfs"; 181 + reg = <0x00604000 0x039fc000>; 182 + }; 183 + }; 184 + }; 185 + 186 + &ssp0 { 187 + #address-cells = <1>; 188 + #size-cells = <0>; 189 + num-cs = <1>; 190 + cs-gpios = <&gpio 3 5 0>; 191 + status = "okay"; 192 + 193 + eeprom: at25@0 { 194 + compatible = "atmel,at25"; 195 + reg = <0>; 196 + spi-max-frequency = <5000000>; 197 + 198 + pl022,interface = <0>; 199 + pl022,com-mode = <0>; 200 + pl022,rx-level-trig = <1>; 201 + pl022,tx-level-trig = <1>; 202 + pl022,ctrl-len = <11>; 203 + pl022,wait-state = <0>; 204 + pl022,duplex = <0>; 205 + 206 + at25,byte-len = <0x8000>; 207 + at25,addr-mode = <2>; 208 + at25,page-size = <64>; 209 + }; 210 + }; 211 + 212 + &tsc { 213 + status = "okay"; 214 + }; 215 + 216 + &uart2 { 217 + status = "okay"; 218 + }; 219 + 220 + &uart3 { 221 + status = "okay"; 222 + }; 223 + 224 + &uart5 { 225 + status = "okay"; 226 + };
+59 -18
arch/arm/boot/dts/lpc32xx.dtsi
··· 92 92 ohci: ohci@0 { 93 93 compatible = "nxp,ohci-nxp", "usb-ohci"; 94 94 reg = <0x0 0x300>; 95 - interrupts = <59 IRQ_TYPE_LEVEL_HIGH>; 95 + interrupt-parent = <&sic1>; 96 + interrupts = <27 IRQ_TYPE_LEVEL_HIGH>; 96 97 clocks = <&usbclk LPC32XX_USB_CLK_HOST>; 97 98 status = "disabled"; 98 99 }; ··· 101 100 usbd: usbd@0 { 102 101 compatible = "nxp,lpc3220-udc"; 103 102 reg = <0x0 0x300>; 104 - interrupts = <61 IRQ_TYPE_LEVEL_HIGH>, 105 - <62 IRQ_TYPE_LEVEL_HIGH>, 106 - <60 IRQ_TYPE_LEVEL_HIGH>, 107 - <58 IRQ_TYPE_LEVEL_LOW>; 103 + interrupt-parent = <&sic1>; 104 + interrupts = <29 IRQ_TYPE_LEVEL_HIGH>, 105 + <30 IRQ_TYPE_LEVEL_HIGH>, 106 + <28 IRQ_TYPE_LEVEL_HIGH>, 107 + <26 IRQ_TYPE_LEVEL_LOW>; 108 108 clocks = <&usbclk LPC32XX_USB_CLK_DEVICE>; 109 109 status = "disabled"; 110 110 }; ··· 113 111 i2cusb: i2c@300 { 114 112 compatible = "nxp,pnx-i2c"; 115 113 reg = <0x300 0x100>; 116 - interrupts = <63 IRQ_TYPE_LEVEL_HIGH>; 114 + interrupt-parent = <&sic1>; 115 + interrupts = <31 IRQ_TYPE_LEVEL_HIGH>; 117 116 clocks = <&usbclk LPC32XX_USB_CLK_I2C>; 118 117 #address-cells = <1>; 119 118 #size-cells = <0>; ··· 165 162 compatible = "simple-bus"; 166 163 ranges = <0x20000000 0x20000000 0x30000000>; 167 164 165 + /* 166 + * ssp0 and spi1 are shared pins; 167 + * enable one in your board dts, as needed. 168 + */ 168 169 ssp0: ssp@20084000 { 169 170 compatible = "arm,pl022", "arm,primecell"; 170 171 reg = <0x20084000 0x1000>; 171 172 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>; 172 173 clocks = <&clk LPC32XX_CLK_SSP0>; 173 174 clock-names = "apb_pclk"; 175 + status = "disabled"; 174 176 }; 175 177 176 178 spi1: spi@20088000 { 177 179 compatible = "nxp,lpc3220-spi"; 178 180 reg = <0x20088000 0x1000>; 181 + clocks = <&clk LPC32XX_CLK_SPI1>; 182 + status = "disabled"; 179 183 }; 180 184 185 + /* 186 + * ssp1 and spi2 are shared pins; 187 + * enable one in your board dts, as needed. 188 + */ 181 189 ssp1: ssp@2008c000 { 182 190 compatible = "arm,pl022", "arm,primecell"; 183 191 reg = <0x2008c000 0x1000>; 184 192 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; 185 193 clocks = <&clk LPC32XX_CLK_SSP1>; 186 194 clock-names = "apb_pclk"; 195 + status = "disabled"; 187 196 }; 188 197 189 198 spi2: spi@20090000 { 190 199 compatible = "nxp,lpc3220-spi"; 191 200 reg = <0x20090000 0x1000>; 201 + clocks = <&clk LPC32XX_CLK_SPI2>; 202 + status = "disabled"; 192 203 }; 193 204 194 205 i2s0: i2s@20094000 { ··· 266 249 i2c1: i2c@400A0000 { 267 250 compatible = "nxp,pnx-i2c"; 268 251 reg = <0x400A0000 0x100>; 269 - interrupts = <51 IRQ_TYPE_LEVEL_LOW>; 252 + interrupt-parent = <&sic1>; 253 + interrupts = <19 IRQ_TYPE_LEVEL_LOW>; 270 254 #address-cells = <1>; 271 255 #size-cells = <0>; 272 256 pnx,timeout = <0x64>; ··· 277 259 i2c2: i2c@400A8000 { 278 260 compatible = "nxp,pnx-i2c"; 279 261 reg = <0x400A8000 0x100>; 280 - interrupts = <50 IRQ_TYPE_LEVEL_LOW>; 262 + interrupt-parent = <&sic1>; 263 + interrupts = <18 IRQ_TYPE_LEVEL_LOW>; 281 264 #address-cells = <1>; 282 265 #size-cells = <0>; 283 266 pnx,timeout = <0x64>; ··· 313 294 314 295 clocks = <&xtal_32k>, <&xtal>; 315 296 clock-names = "xtal_32k", "xtal"; 297 + 298 + assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>; 299 + assigned-clock-rates = <208000000>; 316 300 }; 317 301 }; 318 302 319 - /* 320 - * MIC Interrupt controller includes: 321 - * MIC @40008000 322 - * SIC1 @4000C000 323 - * SIC2 @40010000 324 - */ 325 303 mic: interrupt-controller@40008000 { 326 304 compatible = "nxp,lpc3220-mic"; 305 + reg = <0x40008000 0x4000>; 327 306 interrupt-controller; 328 - reg = <0x40008000 0xC000>; 329 307 #interrupt-cells = <2>; 308 + }; 309 + 310 + sic1: interrupt-controller@4000c000 { 311 + compatible = "nxp,lpc3220-sic"; 312 + reg = <0x4000c000 0x4000>; 313 + interrupt-controller; 314 + #interrupt-cells = <2>; 315 + 316 + interrupt-parent = <&mic>; 317 + interrupts = <0 IRQ_TYPE_LEVEL_LOW>, 318 + <30 IRQ_TYPE_LEVEL_LOW>; 319 + }; 320 + 321 + sic2: interrupt-controller@40010000 { 322 + compatible = "nxp,lpc3220-sic"; 323 + reg = <0x40010000 0x4000>; 324 + interrupt-controller; 325 + #interrupt-cells = <2>; 326 + 327 + interrupt-parent = <&mic>; 328 + interrupts = <1 IRQ_TYPE_LEVEL_LOW>, 329 + <31 IRQ_TYPE_LEVEL_LOW>; 330 330 }; 331 331 332 332 uart1: serial@40014000 { ··· 372 334 rtc: rtc@40024000 { 373 335 compatible = "nxp,lpc3220-rtc"; 374 336 reg = <0x40024000 0x1000>; 375 - interrupts = <52 IRQ_TYPE_LEVEL_HIGH>; 337 + interrupt-parent = <&sic1>; 338 + interrupts = <20 IRQ_TYPE_LEVEL_HIGH>; 376 339 clocks = <&clk LPC32XX_CLK_RTC>; 377 340 }; 378 341 ··· 426 387 adc: adc@40048000 { 427 388 compatible = "nxp,lpc3220-adc"; 428 389 reg = <0x40048000 0x1000>; 429 - interrupts = <39 IRQ_TYPE_LEVEL_HIGH>; 390 + interrupt-parent = <&sic1>; 391 + interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; 430 392 clocks = <&clk LPC32XX_CLK_ADC>; 431 393 status = "disabled"; 432 394 }; ··· 435 395 tsc: tsc@40048000 { 436 396 compatible = "nxp,lpc3220-tsc"; 437 397 reg = <0x40048000 0x1000>; 438 - interrupts = <39 IRQ_TYPE_LEVEL_HIGH>; 398 + interrupt-parent = <&sic1>; 399 + interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; 439 400 clocks = <&clk LPC32XX_CLK_ADC>; 440 401 status = "disabled"; 441 402 };
-227
arch/arm/boot/dts/phy3250.dts
··· 1 - /* 2 - * PHYTEC phyCORE-LPC3250 board 3 - * 4 - * Copyright 2012 Roland Stigge <stigge@antcom.de> 5 - * 6 - * The code contained herein is licensed under the GNU General Public 7 - * License. You may obtain a copy of the GNU General Public License 8 - * Version 2 or later at the following locations: 9 - * 10 - * http://www.opensource.org/licenses/gpl-license.html 11 - * http://www.gnu.org/copyleft/gpl.html 12 - */ 13 - 14 - /dts-v1/; 15 - #include "lpc32xx.dtsi" 16 - 17 - / { 18 - model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250"; 19 - compatible = "phytec,phy3250", "nxp,lpc3250"; 20 - #address-cells = <1>; 21 - #size-cells = <1>; 22 - 23 - memory { 24 - device_type = "memory"; 25 - reg = <0x80000000 0x4000000>; 26 - }; 27 - 28 - regulators { 29 - backlight_reg: regulator@0 { 30 - compatible = "regulator-fixed"; 31 - regulator-name = "backlight_reg"; 32 - regulator-min-microvolt = <1800000>; 33 - regulator-max-microvolt = <1800000>; 34 - gpio = <&gpio 5 4 0>; 35 - enable-active-high; 36 - regulator-boot-on; 37 - }; 38 - 39 - lcd_reg: regulator@1 { 40 - compatible = "regulator-fixed"; 41 - regulator-name = "lcd_reg"; 42 - regulator-min-microvolt = <1800000>; 43 - regulator-max-microvolt = <1800000>; 44 - gpio = <&gpio 5 0 0>; 45 - enable-active-high; 46 - regulator-boot-on; 47 - }; 48 - 49 - sd_reg: regulator@2 { 50 - compatible = "regulator-fixed"; 51 - regulator-name = "sd_reg"; 52 - regulator-min-microvolt = <1800000>; 53 - regulator-max-microvolt = <1800000>; 54 - gpio = <&gpio 5 5 0>; 55 - enable-active-high; 56 - }; 57 - }; 58 - 59 - ahb { 60 - mac: ethernet@31060000 { 61 - phy-mode = "rmii"; 62 - use-iram; 63 - }; 64 - 65 - clcd@31040000 { 66 - status = "okay"; 67 - }; 68 - 69 - /* 64MB Flash via SLC NAND controller */ 70 - slc: flash@20020000 { 71 - status = "okay"; 72 - #address-cells = <1>; 73 - #size-cells = <1>; 74 - 75 - nxp,wdr-clks = <14>; 76 - nxp,wwidth = <40000000>; 77 - nxp,whold = <100000000>; 78 - nxp,wsetup = <100000000>; 79 - nxp,rdr-clks = <14>; 80 - nxp,rwidth = <40000000>; 81 - nxp,rhold = <66666666>; 82 - nxp,rsetup = <100000000>; 83 - nand-on-flash-bbt; 84 - gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ 85 - 86 - mtd0@00000000 { 87 - label = "phy3250-boot"; 88 - reg = <0x00000000 0x00064000>; 89 - read-only; 90 - }; 91 - 92 - mtd1@00064000 { 93 - label = "phy3250-uboot"; 94 - reg = <0x00064000 0x00190000>; 95 - read-only; 96 - }; 97 - 98 - mtd2@001f4000 { 99 - label = "phy3250-ubt-prms"; 100 - reg = <0x001f4000 0x00010000>; 101 - }; 102 - 103 - mtd3@00204000 { 104 - label = "phy3250-kernel"; 105 - reg = <0x00204000 0x00400000>; 106 - }; 107 - 108 - mtd4@00604000 { 109 - label = "phy3250-rootfs"; 110 - reg = <0x00604000 0x039fc000>; 111 - }; 112 - }; 113 - 114 - apb { 115 - uart5: serial@40090000 { 116 - status = "okay"; 117 - }; 118 - 119 - uart3: serial@40080000 { 120 - status = "okay"; 121 - }; 122 - 123 - i2c1: i2c@400A0000 { 124 - clock-frequency = <100000>; 125 - 126 - pcf8563: rtc@51 { 127 - compatible = "nxp,pcf8563"; 128 - reg = <0x51>; 129 - }; 130 - 131 - uda1380: uda1380@18 { 132 - compatible = "nxp,uda1380"; 133 - reg = <0x18>; 134 - power-gpio = <&gpio 0x59 0>; 135 - reset-gpio = <&gpio 0x51 0>; 136 - dac-clk = "wspll"; 137 - }; 138 - }; 139 - 140 - i2c2: i2c@400A8000 { 141 - clock-frequency = <100000>; 142 - }; 143 - 144 - ssp0: ssp@20084000 { 145 - #address-cells = <1>; 146 - #size-cells = <0>; 147 - num-cs = <1>; 148 - cs-gpios = <&gpio 3 5 0>; 149 - 150 - eeprom: at25@0 { 151 - pl022,interface = <0>; 152 - pl022,com-mode = <0>; 153 - pl022,rx-level-trig = <1>; 154 - pl022,tx-level-trig = <1>; 155 - pl022,ctrl-len = <11>; 156 - pl022,wait-state = <0>; 157 - pl022,duplex = <0>; 158 - 159 - at25,byte-len = <0x8000>; 160 - at25,addr-mode = <2>; 161 - at25,page-size = <64>; 162 - 163 - compatible = "atmel,at25"; 164 - reg = <0>; 165 - spi-max-frequency = <5000000>; 166 - }; 167 - }; 168 - 169 - sd@20098000 { 170 - wp-gpios = <&gpio 3 0 0>; 171 - cd-gpios = <&gpio 3 1 0>; 172 - cd-inverted; 173 - bus-width = <4>; 174 - vmmc-supply = <&sd_reg>; 175 - status = "okay"; 176 - }; 177 - }; 178 - 179 - fab { 180 - uart2: serial@40018000 { 181 - status = "okay"; 182 - }; 183 - 184 - tsc@40048000 { 185 - status = "okay"; 186 - }; 187 - 188 - key@40050000 { 189 - status = "okay"; 190 - keypad,num-rows = <1>; 191 - keypad,num-columns = <1>; 192 - nxp,debounce-delay-ms = <3>; 193 - nxp,scan-delay-ms = <34>; 194 - linux,keymap = <0x00000002>; 195 - }; 196 - }; 197 - }; 198 - 199 - leds { 200 - compatible = "gpio-leds"; 201 - 202 - led0 { /* red */ 203 - gpios = <&gpio 5 1 0>; /* GPO_P3 1, GPIO 80, active high */ 204 - default-state = "off"; 205 - }; 206 - 207 - led1 { /* green */ 208 - gpios = <&gpio 5 14 0>; /* GPO_P3 14, GPIO 93, active high */ 209 - linux,default-trigger = "heartbeat"; 210 - }; 211 - }; 212 - }; 213 - 214 - /* Here, choose exactly one from: ohci, usbd */ 215 - &ohci /* &usbd */ { 216 - transceiver = <&isp1301>; 217 - status = "okay"; 218 - }; 219 - 220 - &i2cusb { 221 - clock-frequency = <100000>; 222 - 223 - isp1301: usb-transceiver@2c { 224 - compatible = "nxp,isp1301"; 225 - reg = <0x2c>; 226 - }; 227 - };