1*f126890aSEmmanuel Vadot/* 2*f126890aSEmmanuel Vadot * Common base for NXP LPC18xx and LPC43xx devices. 3*f126890aSEmmanuel Vadot * 4*f126890aSEmmanuel Vadot * Copyright 2015 Joachim Eastwood <manabian@gmail.com> 5*f126890aSEmmanuel Vadot * 6*f126890aSEmmanuel Vadot * This code is released using a dual license strategy: BSD/GPL 7*f126890aSEmmanuel Vadot * You can choose the licence that better fits your requirements. 8*f126890aSEmmanuel Vadot * 9*f126890aSEmmanuel Vadot * Released under the terms of 3-clause BSD License 10*f126890aSEmmanuel Vadot * Released under the terms of GNU General Public License Version 2.0 11*f126890aSEmmanuel Vadot * 12*f126890aSEmmanuel Vadot */ 13*f126890aSEmmanuel Vadot 14*f126890aSEmmanuel Vadot#include "../../armv7-m.dtsi" 15*f126890aSEmmanuel Vadot 16*f126890aSEmmanuel Vadot#include "dt-bindings/clock/lpc18xx-cgu.h" 17*f126890aSEmmanuel Vadot#include "dt-bindings/clock/lpc18xx-ccu.h" 18*f126890aSEmmanuel Vadot 19*f126890aSEmmanuel Vadot#define LPC_PIN(port, pin) (0x##port * 32 + pin) 20*f126890aSEmmanuel Vadot#define LPC_GPIO(port, pin) (port * 32 + pin) 21*f126890aSEmmanuel Vadot 22*f126890aSEmmanuel Vadot/ { 23*f126890aSEmmanuel Vadot #address-cells = <1>; 24*f126890aSEmmanuel Vadot #size-cells = <1>; 25*f126890aSEmmanuel Vadot 26*f126890aSEmmanuel Vadot cpus { 27*f126890aSEmmanuel Vadot #address-cells = <1>; 28*f126890aSEmmanuel Vadot #size-cells = <0>; 29*f126890aSEmmanuel Vadot 30*f126890aSEmmanuel Vadot cpu@0 { 31*f126890aSEmmanuel Vadot compatible = "arm,cortex-m3"; 32*f126890aSEmmanuel Vadot device_type = "cpu"; 33*f126890aSEmmanuel Vadot reg = <0x0>; 34*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_CORE>; 35*f126890aSEmmanuel Vadot }; 36*f126890aSEmmanuel Vadot }; 37*f126890aSEmmanuel Vadot 38*f126890aSEmmanuel Vadot clocks { 39*f126890aSEmmanuel Vadot xtal: xtal { 40*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 41*f126890aSEmmanuel Vadot #clock-cells = <0>; 42*f126890aSEmmanuel Vadot clock-frequency = <12000000>; 43*f126890aSEmmanuel Vadot }; 44*f126890aSEmmanuel Vadot 45*f126890aSEmmanuel Vadot xtal32: xtal32 { 46*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 47*f126890aSEmmanuel Vadot #clock-cells = <0>; 48*f126890aSEmmanuel Vadot clock-frequency = <32768>; 49*f126890aSEmmanuel Vadot }; 50*f126890aSEmmanuel Vadot 51*f126890aSEmmanuel Vadot enet_rx_clk: enet_rx_clk { 52*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 53*f126890aSEmmanuel Vadot #clock-cells = <0>; 54*f126890aSEmmanuel Vadot clock-frequency = <0>; 55*f126890aSEmmanuel Vadot clock-output-names = "enet_rx_clk"; 56*f126890aSEmmanuel Vadot }; 57*f126890aSEmmanuel Vadot 58*f126890aSEmmanuel Vadot enet_tx_clk: enet_tx_clk { 59*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 60*f126890aSEmmanuel Vadot #clock-cells = <0>; 61*f126890aSEmmanuel Vadot clock-frequency = <0>; 62*f126890aSEmmanuel Vadot clock-output-names = "enet_tx_clk"; 63*f126890aSEmmanuel Vadot }; 64*f126890aSEmmanuel Vadot 65*f126890aSEmmanuel Vadot gp_clkin: gp_clkin { 66*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 67*f126890aSEmmanuel Vadot #clock-cells = <0>; 68*f126890aSEmmanuel Vadot clock-frequency = <0>; 69*f126890aSEmmanuel Vadot clock-output-names = "gp_clkin"; 70*f126890aSEmmanuel Vadot }; 71*f126890aSEmmanuel Vadot }; 72*f126890aSEmmanuel Vadot 73*f126890aSEmmanuel Vadot soc { 74*f126890aSEmmanuel Vadot sct_pwm: pwm@40000000 { 75*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-sct-pwm"; 76*f126890aSEmmanuel Vadot reg = <0x40000000 0x1000>; 77*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_SCT>; 78*f126890aSEmmanuel Vadot clock-names = "pwm"; 79*f126890aSEmmanuel Vadot resets = <&rgu 37>; 80*f126890aSEmmanuel Vadot #pwm-cells = <3>; 81*f126890aSEmmanuel Vadot status = "disabled"; 82*f126890aSEmmanuel Vadot }; 83*f126890aSEmmanuel Vadot 84*f126890aSEmmanuel Vadot dmac: dma-controller@40002000 { 85*f126890aSEmmanuel Vadot compatible = "arm,pl080", "arm,primecell"; 86*f126890aSEmmanuel Vadot arm,primecell-periphid = <0x00041080>; 87*f126890aSEmmanuel Vadot reg = <0x40002000 0x1000>; 88*f126890aSEmmanuel Vadot interrupts = <2>; 89*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_DMA>; 90*f126890aSEmmanuel Vadot clock-names = "apb_pclk"; 91*f126890aSEmmanuel Vadot resets = <&rgu 19>; 92*f126890aSEmmanuel Vadot #dma-cells = <2>; 93*f126890aSEmmanuel Vadot dma-channels = <8>; 94*f126890aSEmmanuel Vadot dma-requests = <16>; 95*f126890aSEmmanuel Vadot lli-bus-interface-ahb1; 96*f126890aSEmmanuel Vadot lli-bus-interface-ahb2; 97*f126890aSEmmanuel Vadot mem-bus-interface-ahb1; 98*f126890aSEmmanuel Vadot mem-bus-interface-ahb2; 99*f126890aSEmmanuel Vadot memcpy-burst-size = <256>; 100*f126890aSEmmanuel Vadot memcpy-bus-width = <32>; 101*f126890aSEmmanuel Vadot }; 102*f126890aSEmmanuel Vadot 103*f126890aSEmmanuel Vadot spifi: flash-controller@40003000 { 104*f126890aSEmmanuel Vadot compatible = "nxp,lpc1773-spifi"; 105*f126890aSEmmanuel Vadot reg = <0x40003000 0x1000>, <0x14000000 0x4000000>; 106*f126890aSEmmanuel Vadot reg-names = "spifi", "flash"; 107*f126890aSEmmanuel Vadot interrupts = <30>; 108*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_SPIFI>, <&ccu1 CLK_CPU_SPIFI>; 109*f126890aSEmmanuel Vadot clock-names = "spifi", "reg"; 110*f126890aSEmmanuel Vadot resets = <&rgu 53>; 111*f126890aSEmmanuel Vadot status = "disabled"; 112*f126890aSEmmanuel Vadot }; 113*f126890aSEmmanuel Vadot 114*f126890aSEmmanuel Vadot mmcsd: mmcsd@40004000 { 115*f126890aSEmmanuel Vadot compatible = "snps,dw-mshc"; 116*f126890aSEmmanuel Vadot reg = <0x40004000 0x1000>; 117*f126890aSEmmanuel Vadot interrupts = <6>; 118*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_SDIO>, <&ccu1 CLK_CPU_SDIO>; 119*f126890aSEmmanuel Vadot clock-names = "ciu", "biu"; 120*f126890aSEmmanuel Vadot resets = <&rgu 20>; 121*f126890aSEmmanuel Vadot status = "disabled"; 122*f126890aSEmmanuel Vadot }; 123*f126890aSEmmanuel Vadot 124*f126890aSEmmanuel Vadot usb0: usb@40006100 { 125*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-ehci", "generic-ehci"; 126*f126890aSEmmanuel Vadot reg = <0x40006100 0x100>; 127*f126890aSEmmanuel Vadot interrupts = <8>; 128*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_USB0>; 129*f126890aSEmmanuel Vadot resets = <&rgu 17>; 130*f126890aSEmmanuel Vadot phys = <&usb0_otg_phy>; 131*f126890aSEmmanuel Vadot phy-names = "usb"; 132*f126890aSEmmanuel Vadot has-transaction-translator; 133*f126890aSEmmanuel Vadot status = "disabled"; 134*f126890aSEmmanuel Vadot }; 135*f126890aSEmmanuel Vadot 136*f126890aSEmmanuel Vadot usb1: usb@40007100 { 137*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-ehci", "generic-ehci"; 138*f126890aSEmmanuel Vadot reg = <0x40007100 0x100>; 139*f126890aSEmmanuel Vadot interrupts = <9>; 140*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_USB1>; 141*f126890aSEmmanuel Vadot resets = <&rgu 18>; 142*f126890aSEmmanuel Vadot status = "disabled"; 143*f126890aSEmmanuel Vadot }; 144*f126890aSEmmanuel Vadot 145*f126890aSEmmanuel Vadot emc: memory-controller@40005000 { 146*f126890aSEmmanuel Vadot compatible = "arm,pl172", "arm,primecell"; 147*f126890aSEmmanuel Vadot reg = <0x40005000 0x1000>; 148*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>; 149*f126890aSEmmanuel Vadot clock-names = "mpmcclk", "apb_pclk"; 150*f126890aSEmmanuel Vadot resets = <&rgu 21>; 151*f126890aSEmmanuel Vadot #address-cells = <2>; 152*f126890aSEmmanuel Vadot #size-cells = <1>; 153*f126890aSEmmanuel Vadot ranges = <0 0 0x1c000000 0x1000000 154*f126890aSEmmanuel Vadot 1 0 0x1d000000 0x1000000 155*f126890aSEmmanuel Vadot 2 0 0x1e000000 0x1000000 156*f126890aSEmmanuel Vadot 3 0 0x1f000000 0x1000000>; 157*f126890aSEmmanuel Vadot status = "disabled"; 158*f126890aSEmmanuel Vadot }; 159*f126890aSEmmanuel Vadot 160*f126890aSEmmanuel Vadot lcdc: lcd-controller@40008000 { 161*f126890aSEmmanuel Vadot compatible = "arm,pl111", "arm,primecell"; 162*f126890aSEmmanuel Vadot reg = <0x40008000 0x1000>; 163*f126890aSEmmanuel Vadot interrupts = <7>; 164*f126890aSEmmanuel Vadot interrupt-names = "combined"; 165*f126890aSEmmanuel Vadot clocks = <&cgu BASE_LCD_CLK>, <&ccu1 CLK_CPU_LCD>; 166*f126890aSEmmanuel Vadot clock-names = "clcdclk", "apb_pclk"; 167*f126890aSEmmanuel Vadot resets = <&rgu 16>; 168*f126890aSEmmanuel Vadot status = "disabled"; 169*f126890aSEmmanuel Vadot }; 170*f126890aSEmmanuel Vadot 171*f126890aSEmmanuel Vadot eeprom: eeprom@4000e000 { 172*f126890aSEmmanuel Vadot compatible = "nxp,lpc1857-eeprom"; 173*f126890aSEmmanuel Vadot reg = <0x4000e000 0x1000>, <0x20040000 0x4000>; 174*f126890aSEmmanuel Vadot reg-names = "reg", "mem"; 175*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_EEPROM>; 176*f126890aSEmmanuel Vadot clock-names = "eeprom"; 177*f126890aSEmmanuel Vadot resets = <&rgu 27>; 178*f126890aSEmmanuel Vadot interrupts = <4>; 179*f126890aSEmmanuel Vadot status = "disabled"; 180*f126890aSEmmanuel Vadot }; 181*f126890aSEmmanuel Vadot 182*f126890aSEmmanuel Vadot mac: ethernet@40010000 { 183*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac"; 184*f126890aSEmmanuel Vadot reg = <0x40010000 0x2000>; 185*f126890aSEmmanuel Vadot interrupts = <5>; 186*f126890aSEmmanuel Vadot interrupt-names = "macirq"; 187*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_ETHERNET>; 188*f126890aSEmmanuel Vadot clock-names = "stmmaceth"; 189*f126890aSEmmanuel Vadot resets = <&rgu 22>; 190*f126890aSEmmanuel Vadot reset-names = "stmmaceth"; 191*f126890aSEmmanuel Vadot rx-fifo-depth = <256>; 192*f126890aSEmmanuel Vadot tx-fifo-depth = <256>; 193*f126890aSEmmanuel Vadot snps,pbl = <4>; /* 32 (8x mode) */ 194*f126890aSEmmanuel Vadot snps,force_thresh_dma_mode; 195*f126890aSEmmanuel Vadot status = "disabled"; 196*f126890aSEmmanuel Vadot }; 197*f126890aSEmmanuel Vadot 198*f126890aSEmmanuel Vadot creg: syscon@40043000 { 199*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd"; 200*f126890aSEmmanuel Vadot reg = <0x40043000 0x1000>; 201*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_CREG>; 202*f126890aSEmmanuel Vadot resets = <&rgu 5>; 203*f126890aSEmmanuel Vadot 204*f126890aSEmmanuel Vadot creg_clk: clock-controller { 205*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-creg-clk"; 206*f126890aSEmmanuel Vadot clocks = <&xtal32>; 207*f126890aSEmmanuel Vadot #clock-cells = <1>; 208*f126890aSEmmanuel Vadot }; 209*f126890aSEmmanuel Vadot 210*f126890aSEmmanuel Vadot usb0_otg_phy: phy { 211*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-usb-otg-phy"; 212*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_USB0>; 213*f126890aSEmmanuel Vadot #phy-cells = <0>; 214*f126890aSEmmanuel Vadot }; 215*f126890aSEmmanuel Vadot 216*f126890aSEmmanuel Vadot dmamux: dma-mux { 217*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-dmamux"; 218*f126890aSEmmanuel Vadot #dma-cells = <3>; 219*f126890aSEmmanuel Vadot dma-requests = <64>; 220*f126890aSEmmanuel Vadot dma-masters = <&dmac>; 221*f126890aSEmmanuel Vadot }; 222*f126890aSEmmanuel Vadot }; 223*f126890aSEmmanuel Vadot 224*f126890aSEmmanuel Vadot rtc: rtc@40046000 { 225*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-rtc", "nxp,lpc1788-rtc"; 226*f126890aSEmmanuel Vadot reg = <0x40046000 0x1000>; 227*f126890aSEmmanuel Vadot interrupts = <47>; 228*f126890aSEmmanuel Vadot clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>; 229*f126890aSEmmanuel Vadot clock-names = "rtc", "reg"; 230*f126890aSEmmanuel Vadot }; 231*f126890aSEmmanuel Vadot 232*f126890aSEmmanuel Vadot cgu: clock-controller@40050000 { 233*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-cgu"; 234*f126890aSEmmanuel Vadot reg = <0x40050000 0x1000>; 235*f126890aSEmmanuel Vadot #clock-cells = <1>; 236*f126890aSEmmanuel Vadot clocks = <&xtal>, <&creg_clk 1>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>; 237*f126890aSEmmanuel Vadot }; 238*f126890aSEmmanuel Vadot 239*f126890aSEmmanuel Vadot ccu1: clock-controller@40051000 { 240*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-ccu"; 241*f126890aSEmmanuel Vadot reg = <0x40051000 0x1000>; 242*f126890aSEmmanuel Vadot #clock-cells = <1>; 243*f126890aSEmmanuel Vadot clocks = <&cgu BASE_APB3_CLK>, <&cgu BASE_APB1_CLK>, 244*f126890aSEmmanuel Vadot <&cgu BASE_SPIFI_CLK>, <&cgu BASE_CPU_CLK>, 245*f126890aSEmmanuel Vadot <&cgu BASE_PERIPH_CLK>, <&cgu BASE_USB0_CLK>, 246*f126890aSEmmanuel Vadot <&cgu BASE_USB1_CLK>, <&cgu BASE_SPI_CLK>; 247*f126890aSEmmanuel Vadot clock-names = "base_apb3_clk", "base_apb1_clk", 248*f126890aSEmmanuel Vadot "base_spifi_clk", "base_cpu_clk", 249*f126890aSEmmanuel Vadot "base_periph_clk", "base_usb0_clk", 250*f126890aSEmmanuel Vadot "base_usb1_clk", "base_spi_clk"; 251*f126890aSEmmanuel Vadot }; 252*f126890aSEmmanuel Vadot 253*f126890aSEmmanuel Vadot ccu2: clock-controller@40052000 { 254*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-ccu"; 255*f126890aSEmmanuel Vadot reg = <0x40052000 0x1000>; 256*f126890aSEmmanuel Vadot #clock-cells = <1>; 257*f126890aSEmmanuel Vadot clocks = <&cgu BASE_AUDIO_CLK>, <&cgu BASE_UART3_CLK>, 258*f126890aSEmmanuel Vadot <&cgu BASE_UART2_CLK>, <&cgu BASE_UART1_CLK>, 259*f126890aSEmmanuel Vadot <&cgu BASE_UART0_CLK>, <&cgu BASE_SSP1_CLK>, 260*f126890aSEmmanuel Vadot <&cgu BASE_SSP0_CLK>, <&cgu BASE_SDIO_CLK>; 261*f126890aSEmmanuel Vadot clock-names = "base_audio_clk", "base_uart3_clk", 262*f126890aSEmmanuel Vadot "base_uart2_clk", "base_uart1_clk", 263*f126890aSEmmanuel Vadot "base_uart0_clk", "base_ssp1_clk", 264*f126890aSEmmanuel Vadot "base_ssp0_clk", "base_sdio_clk"; 265*f126890aSEmmanuel Vadot }; 266*f126890aSEmmanuel Vadot 267*f126890aSEmmanuel Vadot rgu: reset-controller@40053000 { 268*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-rgu"; 269*f126890aSEmmanuel Vadot reg = <0x40053000 0x1000>; 270*f126890aSEmmanuel Vadot clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_BUS>; 271*f126890aSEmmanuel Vadot clock-names = "delay", "reg"; 272*f126890aSEmmanuel Vadot #reset-cells = <1>; 273*f126890aSEmmanuel Vadot }; 274*f126890aSEmmanuel Vadot 275*f126890aSEmmanuel Vadot watchdog@40080000 { 276*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-wwdt"; 277*f126890aSEmmanuel Vadot reg = <0x40080000 0x24>; 278*f126890aSEmmanuel Vadot interrupts = <49>; 279*f126890aSEmmanuel Vadot clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_WWDT>; 280*f126890aSEmmanuel Vadot clock-names = "wdtclk", "reg"; 281*f126890aSEmmanuel Vadot }; 282*f126890aSEmmanuel Vadot 283*f126890aSEmmanuel Vadot uart0: serial@40081000 { 284*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-uart", "ns16550a"; 285*f126890aSEmmanuel Vadot reg = <0x40081000 0x1000>; 286*f126890aSEmmanuel Vadot reg-shift = <2>; 287*f126890aSEmmanuel Vadot interrupts = <24>; 288*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>; 289*f126890aSEmmanuel Vadot clock-names = "uartclk", "reg"; 290*f126890aSEmmanuel Vadot resets = <&rgu 44>; 291*f126890aSEmmanuel Vadot dmas = <&dmamux 1 1 2 292*f126890aSEmmanuel Vadot &dmamux 2 1 2 293*f126890aSEmmanuel Vadot &dmamux 11 2 2 294*f126890aSEmmanuel Vadot &dmamux 12 2 2>; 295*f126890aSEmmanuel Vadot dma-names = "tx", "rx", "tx", "rx"; 296*f126890aSEmmanuel Vadot status = "disabled"; 297*f126890aSEmmanuel Vadot }; 298*f126890aSEmmanuel Vadot 299*f126890aSEmmanuel Vadot uart1: serial@40082000 { 300*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-uart", "ns16550a"; 301*f126890aSEmmanuel Vadot reg = <0x40082000 0x1000>; 302*f126890aSEmmanuel Vadot reg-shift = <2>; 303*f126890aSEmmanuel Vadot interrupts = <25>; 304*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>; 305*f126890aSEmmanuel Vadot clock-names = "uartclk", "reg"; 306*f126890aSEmmanuel Vadot resets = <&rgu 45>; 307*f126890aSEmmanuel Vadot dmas = <&dmamux 3 1 2 308*f126890aSEmmanuel Vadot &dmamux 4 1 2>; 309*f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 310*f126890aSEmmanuel Vadot status = "disabled"; 311*f126890aSEmmanuel Vadot }; 312*f126890aSEmmanuel Vadot 313*f126890aSEmmanuel Vadot ssp0: spi@40083000 { 314*f126890aSEmmanuel Vadot compatible = "arm,pl022", "arm,primecell"; 315*f126890aSEmmanuel Vadot reg = <0x40083000 0x1000>; 316*f126890aSEmmanuel Vadot interrupts = <22>; 317*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_APB0_SSP0>, <&ccu1 CLK_CPU_SSP0>; 318*f126890aSEmmanuel Vadot clock-names = "sspclk", "apb_pclk"; 319*f126890aSEmmanuel Vadot resets = <&rgu 50>; 320*f126890aSEmmanuel Vadot dmas = <&dmamux 9 0 2 321*f126890aSEmmanuel Vadot &dmamux 10 0 2>; 322*f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 323*f126890aSEmmanuel Vadot #address-cells = <1>; 324*f126890aSEmmanuel Vadot #size-cells = <0>; 325*f126890aSEmmanuel Vadot status = "disabled"; 326*f126890aSEmmanuel Vadot }; 327*f126890aSEmmanuel Vadot 328*f126890aSEmmanuel Vadot timer0: timer@40084000 { 329*f126890aSEmmanuel Vadot compatible = "nxp,lpc3220-timer"; 330*f126890aSEmmanuel Vadot reg = <0x40084000 0x1000>; 331*f126890aSEmmanuel Vadot interrupts = <12>; 332*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_TIMER0>; 333*f126890aSEmmanuel Vadot clock-names = "timerclk"; 334*f126890aSEmmanuel Vadot resets = <&rgu 32>; 335*f126890aSEmmanuel Vadot }; 336*f126890aSEmmanuel Vadot 337*f126890aSEmmanuel Vadot timer1: timer@40085000 { 338*f126890aSEmmanuel Vadot compatible = "nxp,lpc3220-timer"; 339*f126890aSEmmanuel Vadot reg = <0x40085000 0x1000>; 340*f126890aSEmmanuel Vadot interrupts = <13>; 341*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_TIMER1>; 342*f126890aSEmmanuel Vadot clock-names = "timerclk"; 343*f126890aSEmmanuel Vadot resets = <&rgu 33>; 344*f126890aSEmmanuel Vadot }; 345*f126890aSEmmanuel Vadot 346*f126890aSEmmanuel Vadot pinctrl: pinctrl@40086000 { 347*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-scu"; 348*f126890aSEmmanuel Vadot reg = <0x40086000 0x1000>; 349*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_SCU>; 350*f126890aSEmmanuel Vadot }; 351*f126890aSEmmanuel Vadot 352*f126890aSEmmanuel Vadot i2c0: i2c@400a1000 { 353*f126890aSEmmanuel Vadot compatible = "nxp,lpc1788-i2c"; 354*f126890aSEmmanuel Vadot reg = <0x400a1000 0x1000>; 355*f126890aSEmmanuel Vadot interrupts = <18>; 356*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB1_I2C0>; 357*f126890aSEmmanuel Vadot resets = <&rgu 48>; 358*f126890aSEmmanuel Vadot #address-cells = <1>; 359*f126890aSEmmanuel Vadot #size-cells = <0>; 360*f126890aSEmmanuel Vadot status = "disabled"; 361*f126890aSEmmanuel Vadot }; 362*f126890aSEmmanuel Vadot 363*f126890aSEmmanuel Vadot can1: can@400a4000 { 364*f126890aSEmmanuel Vadot compatible = "bosch,c_can"; 365*f126890aSEmmanuel Vadot reg = <0x400a4000 0x1000>; 366*f126890aSEmmanuel Vadot interrupts = <43>; 367*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB1_CAN1>; 368*f126890aSEmmanuel Vadot resets = <&rgu 54>; 369*f126890aSEmmanuel Vadot status = "disabled"; 370*f126890aSEmmanuel Vadot }; 371*f126890aSEmmanuel Vadot 372*f126890aSEmmanuel Vadot uart2: serial@400c1000 { 373*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-uart", "ns16550a"; 374*f126890aSEmmanuel Vadot reg = <0x400c1000 0x1000>; 375*f126890aSEmmanuel Vadot reg-shift = <2>; 376*f126890aSEmmanuel Vadot interrupts = <26>; 377*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_APB2_UART2>, <&ccu1 CLK_CPU_UART2>; 378*f126890aSEmmanuel Vadot clock-names = "uartclk", "reg"; 379*f126890aSEmmanuel Vadot resets = <&rgu 46>; 380*f126890aSEmmanuel Vadot dmas = <&dmamux 5 1 2 381*f126890aSEmmanuel Vadot &dmamux 6 1 2>; 382*f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 383*f126890aSEmmanuel Vadot status = "disabled"; 384*f126890aSEmmanuel Vadot }; 385*f126890aSEmmanuel Vadot 386*f126890aSEmmanuel Vadot uart3: serial@400c2000 { 387*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-uart", "ns16550a"; 388*f126890aSEmmanuel Vadot reg = <0x400c2000 0x1000>; 389*f126890aSEmmanuel Vadot reg-shift = <2>; 390*f126890aSEmmanuel Vadot interrupts = <27>; 391*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_APB2_UART3>, <&ccu1 CLK_CPU_UART3>; 392*f126890aSEmmanuel Vadot clock-names = "uartclk", "reg"; 393*f126890aSEmmanuel Vadot resets = <&rgu 47>; 394*f126890aSEmmanuel Vadot dmas = <&dmamux 7 1 2 395*f126890aSEmmanuel Vadot &dmamux 8 1 2 396*f126890aSEmmanuel Vadot &dmamux 13 3 2 397*f126890aSEmmanuel Vadot &dmamux 14 3 2>; 398*f126890aSEmmanuel Vadot dma-names = "tx", "rx", "rx", "tx"; 399*f126890aSEmmanuel Vadot status = "disabled"; 400*f126890aSEmmanuel Vadot }; 401*f126890aSEmmanuel Vadot 402*f126890aSEmmanuel Vadot timer2: timer@400c3000 { 403*f126890aSEmmanuel Vadot compatible = "nxp,lpc3220-timer"; 404*f126890aSEmmanuel Vadot reg = <0x400c3000 0x1000>; 405*f126890aSEmmanuel Vadot interrupts = <14>; 406*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_TIMER2>; 407*f126890aSEmmanuel Vadot clock-names = "timerclk"; 408*f126890aSEmmanuel Vadot resets = <&rgu 34>; 409*f126890aSEmmanuel Vadot }; 410*f126890aSEmmanuel Vadot 411*f126890aSEmmanuel Vadot timer3: timer@400c4000 { 412*f126890aSEmmanuel Vadot compatible = "nxp,lpc3220-timer"; 413*f126890aSEmmanuel Vadot reg = <0x400c4000 0x1000>; 414*f126890aSEmmanuel Vadot interrupts = <15>; 415*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_TIMER3>; 416*f126890aSEmmanuel Vadot clock-names = "timerclk"; 417*f126890aSEmmanuel Vadot resets = <&rgu 35>; 418*f126890aSEmmanuel Vadot }; 419*f126890aSEmmanuel Vadot 420*f126890aSEmmanuel Vadot ssp1: spi@400c5000 { 421*f126890aSEmmanuel Vadot compatible = "arm,pl022", "arm,primecell"; 422*f126890aSEmmanuel Vadot reg = <0x400c5000 0x1000>; 423*f126890aSEmmanuel Vadot interrupts = <23>; 424*f126890aSEmmanuel Vadot clocks = <&ccu2 CLK_APB2_SSP1>, <&ccu1 CLK_CPU_SSP1>; 425*f126890aSEmmanuel Vadot clock-names = "sspclk", "apb_pclk"; 426*f126890aSEmmanuel Vadot resets = <&rgu 51>; 427*f126890aSEmmanuel Vadot dmas = <&dmamux 11 2 2 428*f126890aSEmmanuel Vadot &dmamux 12 2 2 429*f126890aSEmmanuel Vadot &dmamux 3 3 2 430*f126890aSEmmanuel Vadot &dmamux 4 3 2 431*f126890aSEmmanuel Vadot &dmamux 5 2 2 432*f126890aSEmmanuel Vadot &dmamux 6 2 2 433*f126890aSEmmanuel Vadot &dmamux 13 2 2 434*f126890aSEmmanuel Vadot &dmamux 14 2 2>; 435*f126890aSEmmanuel Vadot dma-names = "rx", "tx", "tx", "rx", 436*f126890aSEmmanuel Vadot "tx", "rx", "rx", "tx"; 437*f126890aSEmmanuel Vadot #address-cells = <1>; 438*f126890aSEmmanuel Vadot #size-cells = <0>; 439*f126890aSEmmanuel Vadot status = "disabled"; 440*f126890aSEmmanuel Vadot }; 441*f126890aSEmmanuel Vadot 442*f126890aSEmmanuel Vadot i2c1: i2c@400e0000 { 443*f126890aSEmmanuel Vadot compatible = "nxp,lpc1788-i2c"; 444*f126890aSEmmanuel Vadot reg = <0x400e0000 0x1000>; 445*f126890aSEmmanuel Vadot interrupts = <19>; 446*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB3_I2C1>; 447*f126890aSEmmanuel Vadot resets = <&rgu 49>; 448*f126890aSEmmanuel Vadot #address-cells = <1>; 449*f126890aSEmmanuel Vadot #size-cells = <0>; 450*f126890aSEmmanuel Vadot status = "disabled"; 451*f126890aSEmmanuel Vadot }; 452*f126890aSEmmanuel Vadot 453*f126890aSEmmanuel Vadot dac: dac@400e1000 { 454*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-dac"; 455*f126890aSEmmanuel Vadot reg = <0x400e1000 0x1000>; 456*f126890aSEmmanuel Vadot interrupts = <0>; 457*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB3_DAC>; 458*f126890aSEmmanuel Vadot resets = <&rgu 42>; 459*f126890aSEmmanuel Vadot status = "disabled"; 460*f126890aSEmmanuel Vadot }; 461*f126890aSEmmanuel Vadot 462*f126890aSEmmanuel Vadot can0: can@400e2000 { 463*f126890aSEmmanuel Vadot compatible = "bosch,c_can"; 464*f126890aSEmmanuel Vadot reg = <0x400e2000 0x1000>; 465*f126890aSEmmanuel Vadot interrupts = <51>; 466*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB3_CAN0>; 467*f126890aSEmmanuel Vadot resets = <&rgu 55>; 468*f126890aSEmmanuel Vadot status = "disabled"; 469*f126890aSEmmanuel Vadot }; 470*f126890aSEmmanuel Vadot 471*f126890aSEmmanuel Vadot adc0: adc@400e3000 { 472*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-adc"; 473*f126890aSEmmanuel Vadot reg = <0x400e3000 0x1000>; 474*f126890aSEmmanuel Vadot interrupts = <17>; 475*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB3_ADC0>; 476*f126890aSEmmanuel Vadot resets = <&rgu 40>; 477*f126890aSEmmanuel Vadot status = "disabled"; 478*f126890aSEmmanuel Vadot }; 479*f126890aSEmmanuel Vadot 480*f126890aSEmmanuel Vadot adc1: adc@400e4000 { 481*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-adc"; 482*f126890aSEmmanuel Vadot reg = <0x400e4000 0x1000>; 483*f126890aSEmmanuel Vadot interrupts = <21>; 484*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_APB3_ADC1>; 485*f126890aSEmmanuel Vadot resets = <&rgu 41>; 486*f126890aSEmmanuel Vadot status = "disabled"; 487*f126890aSEmmanuel Vadot }; 488*f126890aSEmmanuel Vadot 489*f126890aSEmmanuel Vadot gpio: gpio@400f4000 { 490*f126890aSEmmanuel Vadot compatible = "nxp,lpc1850-gpio"; 491*f126890aSEmmanuel Vadot reg = <0x400f4000 0x4000>; 492*f126890aSEmmanuel Vadot clocks = <&ccu1 CLK_CPU_GPIO>; 493*f126890aSEmmanuel Vadot gpio-controller; 494*f126890aSEmmanuel Vadot #gpio-cells = <2>; 495*f126890aSEmmanuel Vadot gpio-ranges = <&pinctrl LPC_GPIO(0,0) LPC_PIN(0,0) 2>, 496*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,4) LPC_PIN(1,0) 1>, 497*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,8) LPC_PIN(1,1) 4>, 498*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(1,8) LPC_PIN(1,5) 2>, 499*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(1,0) LPC_PIN(1,7) 8>, 500*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,2) LPC_PIN(1,15) 2>, 501*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,12) LPC_PIN(1,17) 2>, 502*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,15) LPC_PIN(1,20) 1>, 503*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,0) LPC_PIN(2,0) 7>, 504*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,7) LPC_PIN(2,7) 1>, 505*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,7) LPC_PIN(2,8) 1>, 506*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(1,10) LPC_PIN(2,9) 1>, 507*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,14) LPC_PIN(2,10) 1>, 508*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(1,11) LPC_PIN(2,11) 3>, 509*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,8) LPC_PIN(3,1) 2>, 510*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(1,14) LPC_PIN(3,4) 2>, 511*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,6) LPC_PIN(3,6) 1>, 512*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,10) LPC_PIN(3,7) 2>, 513*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(2,0) LPC_PIN(4,0) 7>, 514*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,12) LPC_PIN(4,8) 3>, 515*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(2,9) LPC_PIN(5,0) 7>, 516*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(2,7) LPC_PIN(5,7) 1>, 517*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(3,0) LPC_PIN(6,1) 5>, 518*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(0,5) LPC_PIN(6,6) 1>, 519*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,15) LPC_PIN(6,7) 2>, 520*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(3,5) LPC_PIN(6,9) 3>, 521*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(2,8) LPC_PIN(6,12) 1>, 522*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(3,8) LPC_PIN(7,0) 8>, 523*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(4,0) LPC_PIN(8,0) 8>, 524*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(4,12) LPC_PIN(9,0) 4>, 525*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,17) LPC_PIN(9,4) 2>, 526*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(4,11) LPC_PIN(9,6) 1>, 527*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(4,8) LPC_PIN(a,1) 3>, 528*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,19) LPC_PIN(a,4) 1>, 529*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(5,20) LPC_PIN(b,0) 7>, 530*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(6,0) LPC_PIN(c,1) 14>, 531*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(6,14) LPC_PIN(d,0) 17>, 532*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(7,0) LPC_PIN(e,0) 16>, 533*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(7,16) LPC_PIN(f,1) 3>, 534*f126890aSEmmanuel Vadot <&pinctrl LPC_GPIO(7,19) LPC_PIN(f,5) 7>; 535*f126890aSEmmanuel Vadot }; 536*f126890aSEmmanuel Vadot }; 537*f126890aSEmmanuel Vadot}; 538