1 1.1.1.5 skrll // SPDX-License-Identifier: GPL-2.0 2 1.1 jmcneill /* 3 1.1 jmcneill * ARM Ltd. Versatile Express 4 1.1 jmcneill * 5 1.1 jmcneill * Motherboard Express uATX 6 1.1 jmcneill * V2M-P1 7 1.1 jmcneill * 8 1.1 jmcneill * HBI-0190D 9 1.1 jmcneill * 10 1.1 jmcneill * RS1 memory map ("ARM Cortex-A Series memory map" in the board's 11 1.1 jmcneill * Technical Reference Manual) 12 1.1 jmcneill * 13 1.1 jmcneill * WARNING! The hardware described in this file is independent from the 14 1.1 jmcneill * original variant (vexpress-v2m.dtsi), but there is a strong 15 1.1 jmcneill * correspondence between the two configurations. 16 1.1 jmcneill * 17 1.1 jmcneill * TAKE CARE WHEN MAINTAINING THIS FILE TO PROPAGATE ANY RELEVANT 18 1.1 jmcneill * CHANGES TO vexpress-v2m.dtsi! 19 1.1 jmcneill */ 20 1.1.1.6 jmcneill #include <dt-bindings/interrupt-controller/arm-gic.h> 21 1.1 jmcneill 22 1.1.1.3 jmcneill / { 23 1.1.1.6 jmcneill v2m_fixed_3v3: fixed-regulator-0 { 24 1.1.1.6 jmcneill compatible = "regulator-fixed"; 25 1.1.1.6 jmcneill regulator-name = "3V3"; 26 1.1.1.6 jmcneill regulator-min-microvolt = <3300000>; 27 1.1.1.6 jmcneill regulator-max-microvolt = <3300000>; 28 1.1.1.6 jmcneill regulator-always-on; 29 1.1.1.6 jmcneill }; 30 1.1.1.6 jmcneill 31 1.1.1.6 jmcneill v2m_clk24mhz: clk24mhz { 32 1.1.1.6 jmcneill compatible = "fixed-clock"; 33 1.1.1.6 jmcneill #clock-cells = <0>; 34 1.1.1.6 jmcneill clock-frequency = <24000000>; 35 1.1.1.6 jmcneill clock-output-names = "v2m:clk24mhz"; 36 1.1.1.6 jmcneill }; 37 1.1.1.6 jmcneill 38 1.1.1.6 jmcneill v2m_refclk1mhz: refclk1mhz { 39 1.1.1.6 jmcneill compatible = "fixed-clock"; 40 1.1.1.6 jmcneill #clock-cells = <0>; 41 1.1.1.6 jmcneill clock-frequency = <1000000>; 42 1.1.1.6 jmcneill clock-output-names = "v2m:refclk1mhz"; 43 1.1.1.6 jmcneill }; 44 1.1.1.6 jmcneill 45 1.1.1.6 jmcneill v2m_refclk32khz: refclk32khz { 46 1.1.1.6 jmcneill compatible = "fixed-clock"; 47 1.1.1.6 jmcneill #clock-cells = <0>; 48 1.1.1.6 jmcneill clock-frequency = <32768>; 49 1.1.1.6 jmcneill clock-output-names = "v2m:refclk32khz"; 50 1.1.1.6 jmcneill }; 51 1.1.1.6 jmcneill 52 1.1.1.6 jmcneill leds { 53 1.1.1.6 jmcneill compatible = "gpio-leds"; 54 1.1.1.6 jmcneill 55 1.1.1.6 jmcneill led-1 { 56 1.1.1.6 jmcneill label = "v2m:green:user1"; 57 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 0 0>; 58 1.1.1.6 jmcneill linux,default-trigger = "heartbeat"; 59 1.1.1.6 jmcneill }; 60 1.1.1.6 jmcneill 61 1.1.1.6 jmcneill led-2 { 62 1.1.1.6 jmcneill label = "v2m:green:user2"; 63 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 1 0>; 64 1.1.1.6 jmcneill linux,default-trigger = "disk-activity"; 65 1.1.1.6 jmcneill }; 66 1.1.1.6 jmcneill 67 1.1.1.6 jmcneill led-3 { 68 1.1.1.6 jmcneill label = "v2m:green:user3"; 69 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 2 0>; 70 1.1.1.6 jmcneill linux,default-trigger = "cpu0"; 71 1.1.1.6 jmcneill }; 72 1.1.1.6 jmcneill 73 1.1.1.6 jmcneill led-4 { 74 1.1.1.6 jmcneill label = "v2m:green:user4"; 75 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 3 0>; 76 1.1.1.6 jmcneill linux,default-trigger = "cpu1"; 77 1.1.1.6 jmcneill }; 78 1.1.1.6 jmcneill 79 1.1.1.6 jmcneill led-5 { 80 1.1.1.6 jmcneill label = "v2m:green:user5"; 81 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 4 0>; 82 1.1.1.6 jmcneill linux,default-trigger = "cpu2"; 83 1.1.1.6 jmcneill }; 84 1.1.1.6 jmcneill 85 1.1.1.6 jmcneill led-6 { 86 1.1.1.6 jmcneill label = "v2m:green:user6"; 87 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 5 0>; 88 1.1.1.6 jmcneill linux,default-trigger = "cpu3"; 89 1.1.1.6 jmcneill }; 90 1.1.1.6 jmcneill 91 1.1.1.6 jmcneill led-7 { 92 1.1.1.6 jmcneill label = "v2m:green:user7"; 93 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 6 0>; 94 1.1.1.6 jmcneill linux,default-trigger = "cpu4"; 95 1.1.1.6 jmcneill }; 96 1.1.1.6 jmcneill 97 1.1.1.6 jmcneill led-8 { 98 1.1.1.6 jmcneill label = "v2m:green:user8"; 99 1.1.1.6 jmcneill gpios = <&v2m_led_gpios 7 0>; 100 1.1.1.6 jmcneill linux,default-trigger = "cpu5"; 101 1.1.1.6 jmcneill }; 102 1.1.1.6 jmcneill }; 103 1.1.1.6 jmcneill 104 1.1.1.6 jmcneill bus@8000000 { 105 1.1.1.6 jmcneill compatible = "simple-bus"; 106 1.1.1.6 jmcneill #address-cells = <1>; 107 1.1.1.6 jmcneill #size-cells = <1>; 108 1.1.1.6 jmcneill 109 1.1.1.6 jmcneill #interrupt-cells = <1>; 110 1.1.1.6 jmcneill interrupt-map-mask = <0 63>; 111 1.1.1.6 jmcneill interrupt-map = <0 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 112 1.1.1.6 jmcneill <0 1 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 113 1.1.1.6 jmcneill <0 2 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 114 1.1.1.6 jmcneill <0 3 &gic GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 115 1.1.1.6 jmcneill <0 4 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 116 1.1.1.6 jmcneill <0 5 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 117 1.1.1.6 jmcneill <0 6 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 118 1.1.1.6 jmcneill <0 7 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 119 1.1.1.6 jmcneill <0 8 &gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 120 1.1.1.6 jmcneill <0 9 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 121 1.1.1.6 jmcneill <0 10 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 122 1.1.1.6 jmcneill <0 11 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 123 1.1.1.6 jmcneill <0 12 &gic GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 124 1.1.1.6 jmcneill <0 13 &gic GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 125 1.1.1.6 jmcneill <0 14 &gic GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 126 1.1.1.6 jmcneill <0 15 &gic GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 127 1.1.1.6 jmcneill <0 16 &gic GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 128 1.1.1.6 jmcneill <0 17 &gic GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 129 1.1.1.6 jmcneill <0 18 &gic GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 130 1.1.1.6 jmcneill <0 19 &gic GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 131 1.1.1.6 jmcneill <0 20 &gic GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 132 1.1.1.6 jmcneill <0 21 &gic GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 133 1.1.1.6 jmcneill <0 22 &gic GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 134 1.1.1.6 jmcneill <0 23 &gic GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 135 1.1.1.6 jmcneill <0 24 &gic GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 136 1.1.1.6 jmcneill <0 25 &gic GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 137 1.1.1.6 jmcneill <0 26 &gic GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 138 1.1.1.6 jmcneill <0 27 &gic GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 139 1.1.1.6 jmcneill <0 28 &gic GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, 140 1.1.1.6 jmcneill <0 29 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 141 1.1.1.6 jmcneill <0 30 &gic GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 142 1.1.1.6 jmcneill <0 31 &gic GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 143 1.1.1.6 jmcneill <0 32 &gic GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 144 1.1.1.6 jmcneill <0 33 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 145 1.1.1.6 jmcneill <0 34 &gic GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 146 1.1.1.6 jmcneill <0 35 &gic GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 147 1.1.1.6 jmcneill <0 36 &gic GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 148 1.1.1.6 jmcneill <0 37 &gic GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 149 1.1.1.6 jmcneill <0 38 &gic GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 150 1.1.1.6 jmcneill <0 39 &gic GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 151 1.1.1.6 jmcneill <0 40 &gic GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 152 1.1.1.6 jmcneill <0 41 &gic GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 153 1.1.1.6 jmcneill <0 42 &gic GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 154 1.1.1.6 jmcneill 155 1.1.1.6 jmcneill motherboard-bus@8000000 { 156 1.1.1.3 jmcneill arm,hbi = <0x190>; 157 1.1.1.3 jmcneill arm,vexpress,site = <0>; 158 1.1.1.3 jmcneill compatible = "arm,vexpress,v2m-p1", "simple-bus"; 159 1.1.1.3 jmcneill #address-cells = <2>; /* SMB chipselect number and offset */ 160 1.1.1.3 jmcneill #size-cells = <1>; 161 1.1.1.6 jmcneill ranges = <0 0 0x08000000 0x04000000>, 162 1.1.1.6 jmcneill <1 0 0x14000000 0x04000000>, 163 1.1.1.6 jmcneill <2 0 0x18000000 0x04000000>, 164 1.1.1.6 jmcneill <3 0 0x1c000000 0x04000000>, 165 1.1.1.6 jmcneill <4 0 0x0c000000 0x04000000>, 166 1.1.1.6 jmcneill <5 0 0x10000000 0x04000000>; 167 1.1 jmcneill 168 1.1.1.6 jmcneill nor_flash: flash@0 { 169 1.1.1.3 jmcneill compatible = "arm,vexpress-flash", "cfi-flash"; 170 1.1.1.3 jmcneill reg = <0 0x00000000 0x04000000>, 171 1.1.1.3 jmcneill <4 0x00000000 0x04000000>; 172 1.1.1.3 jmcneill bank-width = <4>; 173 1.1.1.5 skrll partitions { 174 1.1.1.5 skrll compatible = "arm,arm-firmware-suite"; 175 1.1.1.5 skrll }; 176 1.1.1.3 jmcneill }; 177 1.1 jmcneill 178 1.1.1.6 jmcneill psram@100000000 { 179 1.1.1.3 jmcneill compatible = "arm,vexpress-psram", "mtd-ram"; 180 1.1.1.3 jmcneill reg = <1 0x00000000 0x02000000>; 181 1.1.1.3 jmcneill bank-width = <4>; 182 1.1.1.3 jmcneill }; 183 1.1 jmcneill 184 1.1.1.6 jmcneill ethernet@202000000 { 185 1.1.1.3 jmcneill compatible = "smsc,lan9118", "smsc,lan9115"; 186 1.1.1.3 jmcneill reg = <2 0x02000000 0x10000>; 187 1.1.1.3 jmcneill interrupts = <15>; 188 1.1.1.3 jmcneill phy-mode = "mii"; 189 1.1.1.3 jmcneill reg-io-width = <4>; 190 1.1.1.3 jmcneill smsc,irq-active-high; 191 1.1.1.3 jmcneill smsc,irq-push-pull; 192 1.1.1.3 jmcneill vdd33a-supply = <&v2m_fixed_3v3>; 193 1.1.1.3 jmcneill vddvario-supply = <&v2m_fixed_3v3>; 194 1.1.1.3 jmcneill }; 195 1.1 jmcneill 196 1.1.1.6 jmcneill usb@203000000 { 197 1.1.1.3 jmcneill compatible = "nxp,usb-isp1761"; 198 1.1.1.3 jmcneill reg = <2 0x03000000 0x20000>; 199 1.1.1.3 jmcneill interrupts = <16>; 200 1.1.1.6 jmcneill dr_mode = "peripheral"; 201 1.1.1.3 jmcneill }; 202 1.1 jmcneill 203 1.1.1.6 jmcneill iofpga-bus@300000000 { 204 1.1.1.3 jmcneill compatible = "simple-bus"; 205 1.1.1.3 jmcneill #address-cells = <1>; 206 1.1.1.3 jmcneill #size-cells = <1>; 207 1.1.1.3 jmcneill ranges = <0 3 0 0x200000>; 208 1.1 jmcneill 209 1.1.1.3 jmcneill v2m_sysreg: sysreg@10000 { 210 1.1.1.3 jmcneill compatible = "arm,vexpress-sysreg"; 211 1.1.1.3 jmcneill reg = <0x010000 0x1000>; 212 1.1.1.3 jmcneill #address-cells = <1>; 213 1.1.1.3 jmcneill #size-cells = <1>; 214 1.1.1.3 jmcneill ranges = <0 0x10000 0x1000>; 215 1.1.1.3 jmcneill 216 1.1.1.3 jmcneill v2m_led_gpios: gpio@8 { 217 1.1.1.3 jmcneill compatible = "arm,vexpress-sysreg,sys_led"; 218 1.1.1.3 jmcneill reg = <0x008 4>; 219 1.1.1.3 jmcneill gpio-controller; 220 1.1.1.3 jmcneill #gpio-cells = <2>; 221 1.1.1.3 jmcneill }; 222 1.1.1.3 jmcneill 223 1.1.1.3 jmcneill v2m_mmc_gpios: gpio@48 { 224 1.1.1.3 jmcneill compatible = "arm,vexpress-sysreg,sys_mci"; 225 1.1.1.3 jmcneill reg = <0x048 4>; 226 1.1.1.3 jmcneill gpio-controller; 227 1.1.1.3 jmcneill #gpio-cells = <2>; 228 1.1.1.3 jmcneill }; 229 1.1 jmcneill 230 1.1.1.3 jmcneill v2m_flash_gpios: gpio@4c { 231 1.1.1.3 jmcneill compatible = "arm,vexpress-sysreg,sys_flash"; 232 1.1.1.3 jmcneill reg = <0x04c 4>; 233 1.1.1.3 jmcneill gpio-controller; 234 1.1.1.3 jmcneill #gpio-cells = <2>; 235 1.1.1.3 jmcneill }; 236 1.1 jmcneill }; 237 1.1 jmcneill 238 1.1.1.3 jmcneill v2m_sysctl: sysctl@20000 { 239 1.1.1.3 jmcneill compatible = "arm,sp810", "arm,primecell"; 240 1.1.1.3 jmcneill reg = <0x020000 0x1000>; 241 1.1.1.3 jmcneill clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>; 242 1.1.1.3 jmcneill clock-names = "refclk", "timclk", "apb_pclk"; 243 1.1.1.3 jmcneill #clock-cells = <1>; 244 1.1.1.3 jmcneill clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 245 1.1.1.3 jmcneill assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; 246 1.1.1.3 jmcneill assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; 247 1.1 jmcneill }; 248 1.1 jmcneill 249 1.1.1.3 jmcneill /* PCI-E I2C bus */ 250 1.1.1.3 jmcneill v2m_i2c_pcie: i2c@30000 { 251 1.1.1.3 jmcneill compatible = "arm,versatile-i2c"; 252 1.1.1.3 jmcneill reg = <0x030000 0x1000>; 253 1.1.1.3 jmcneill 254 1.1.1.3 jmcneill #address-cells = <1>; 255 1.1.1.3 jmcneill #size-cells = <0>; 256 1.1.1.3 jmcneill 257 1.1.1.3 jmcneill pcie-switch@60 { 258 1.1.1.3 jmcneill compatible = "idt,89hpes32h8"; 259 1.1.1.3 jmcneill reg = <0x60>; 260 1.1.1.3 jmcneill }; 261 1.1.1.3 jmcneill }; 262 1.1 jmcneill 263 1.1.1.3 jmcneill aaci@40000 { 264 1.1.1.3 jmcneill compatible = "arm,pl041", "arm,primecell"; 265 1.1.1.3 jmcneill reg = <0x040000 0x1000>; 266 1.1.1.3 jmcneill interrupts = <11>; 267 1.1.1.3 jmcneill clocks = <&smbclk>; 268 1.1.1.3 jmcneill clock-names = "apb_pclk"; 269 1.1.1.3 jmcneill }; 270 1.1 jmcneill 271 1.1.1.6 jmcneill mmc@50000 { 272 1.1.1.3 jmcneill compatible = "arm,pl180", "arm,primecell"; 273 1.1.1.3 jmcneill reg = <0x050000 0x1000>; 274 1.1.1.4 jmcneill interrupts = <9>, <10>; 275 1.1.1.3 jmcneill cd-gpios = <&v2m_mmc_gpios 0 0>; 276 1.1.1.3 jmcneill wp-gpios = <&v2m_mmc_gpios 1 0>; 277 1.1.1.3 jmcneill max-frequency = <12000000>; 278 1.1.1.3 jmcneill vmmc-supply = <&v2m_fixed_3v3>; 279 1.1.1.3 jmcneill clocks = <&v2m_clk24mhz>, <&smbclk>; 280 1.1.1.3 jmcneill clock-names = "mclk", "apb_pclk"; 281 1.1.1.3 jmcneill }; 282 1.1 jmcneill 283 1.1.1.3 jmcneill kmi@60000 { 284 1.1.1.3 jmcneill compatible = "arm,pl050", "arm,primecell"; 285 1.1.1.3 jmcneill reg = <0x060000 0x1000>; 286 1.1.1.3 jmcneill interrupts = <12>; 287 1.1.1.3 jmcneill clocks = <&v2m_clk24mhz>, <&smbclk>; 288 1.1.1.3 jmcneill clock-names = "KMIREFCLK", "apb_pclk"; 289 1.1.1.3 jmcneill }; 290 1.1 jmcneill 291 1.1.1.3 jmcneill kmi@70000 { 292 1.1.1.3 jmcneill compatible = "arm,pl050", "arm,primecell"; 293 1.1.1.3 jmcneill reg = <0x070000 0x1000>; 294 1.1.1.3 jmcneill interrupts = <13>; 295 1.1.1.3 jmcneill clocks = <&v2m_clk24mhz>, <&smbclk>; 296 1.1.1.3 jmcneill clock-names = "KMIREFCLK", "apb_pclk"; 297 1.1.1.3 jmcneill }; 298 1.1 jmcneill 299 1.1.1.6 jmcneill v2m_serial0: serial@90000 { 300 1.1.1.3 jmcneill compatible = "arm,pl011", "arm,primecell"; 301 1.1.1.3 jmcneill reg = <0x090000 0x1000>; 302 1.1.1.3 jmcneill interrupts = <5>; 303 1.1.1.3 jmcneill clocks = <&v2m_oscclk2>, <&smbclk>; 304 1.1.1.3 jmcneill clock-names = "uartclk", "apb_pclk"; 305 1.1 jmcneill }; 306 1.1 jmcneill 307 1.1.1.6 jmcneill v2m_serial1: serial@a0000 { 308 1.1.1.3 jmcneill compatible = "arm,pl011", "arm,primecell"; 309 1.1.1.3 jmcneill reg = <0x0a0000 0x1000>; 310 1.1.1.3 jmcneill interrupts = <6>; 311 1.1.1.3 jmcneill clocks = <&v2m_oscclk2>, <&smbclk>; 312 1.1.1.3 jmcneill clock-names = "uartclk", "apb_pclk"; 313 1.1 jmcneill }; 314 1.1 jmcneill 315 1.1.1.6 jmcneill v2m_serial2: serial@b0000 { 316 1.1.1.3 jmcneill compatible = "arm,pl011", "arm,primecell"; 317 1.1.1.3 jmcneill reg = <0x0b0000 0x1000>; 318 1.1.1.3 jmcneill interrupts = <7>; 319 1.1.1.3 jmcneill clocks = <&v2m_oscclk2>, <&smbclk>; 320 1.1.1.3 jmcneill clock-names = "uartclk", "apb_pclk"; 321 1.1.1.3 jmcneill }; 322 1.1 jmcneill 323 1.1.1.6 jmcneill v2m_serial3: serial@c0000 { 324 1.1.1.3 jmcneill compatible = "arm,pl011", "arm,primecell"; 325 1.1.1.3 jmcneill reg = <0x0c0000 0x1000>; 326 1.1.1.3 jmcneill interrupts = <8>; 327 1.1.1.3 jmcneill clocks = <&v2m_oscclk2>, <&smbclk>; 328 1.1.1.3 jmcneill clock-names = "uartclk", "apb_pclk"; 329 1.1.1.3 jmcneill }; 330 1.1 jmcneill 331 1.1.1.6 jmcneill watchdog@f0000 { 332 1.1.1.3 jmcneill compatible = "arm,sp805", "arm,primecell"; 333 1.1.1.3 jmcneill reg = <0x0f0000 0x1000>; 334 1.1.1.3 jmcneill interrupts = <0>; 335 1.1.1.3 jmcneill clocks = <&v2m_refclk32khz>, <&smbclk>; 336 1.1.1.6 jmcneill clock-names = "wdog_clk", "apb_pclk"; 337 1.1.1.3 jmcneill }; 338 1.1 jmcneill 339 1.1.1.3 jmcneill v2m_timer01: timer@110000 { 340 1.1.1.3 jmcneill compatible = "arm,sp804", "arm,primecell"; 341 1.1.1.3 jmcneill reg = <0x110000 0x1000>; 342 1.1.1.3 jmcneill interrupts = <2>; 343 1.1.1.3 jmcneill clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&smbclk>; 344 1.1.1.3 jmcneill clock-names = "timclken1", "timclken2", "apb_pclk"; 345 1.1 jmcneill }; 346 1.1 jmcneill 347 1.1.1.3 jmcneill v2m_timer23: timer@120000 { 348 1.1.1.3 jmcneill compatible = "arm,sp804", "arm,primecell"; 349 1.1.1.3 jmcneill reg = <0x120000 0x1000>; 350 1.1.1.3 jmcneill interrupts = <3>; 351 1.1.1.3 jmcneill clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&smbclk>; 352 1.1.1.3 jmcneill clock-names = "timclken1", "timclken2", "apb_pclk"; 353 1.1.1.3 jmcneill }; 354 1.1 jmcneill 355 1.1.1.3 jmcneill /* DVI I2C bus */ 356 1.1.1.3 jmcneill v2m_i2c_dvi: i2c@160000 { 357 1.1.1.3 jmcneill compatible = "arm,versatile-i2c"; 358 1.1.1.3 jmcneill reg = <0x160000 0x1000>; 359 1.1.1.3 jmcneill #address-cells = <1>; 360 1.1.1.3 jmcneill #size-cells = <0>; 361 1.1.1.3 jmcneill 362 1.1.1.3 jmcneill dvi-transmitter@39 { 363 1.1.1.3 jmcneill compatible = "sil,sii9022-tpi", "sil,sii9022"; 364 1.1.1.3 jmcneill reg = <0x39>; 365 1.1.1.4 jmcneill 366 1.1.1.4 jmcneill ports { 367 1.1.1.4 jmcneill #address-cells = <1>; 368 1.1.1.4 jmcneill #size-cells = <0>; 369 1.1.1.4 jmcneill 370 1.1.1.4 jmcneill port@0 { 371 1.1.1.4 jmcneill reg = <0>; 372 1.1.1.4 jmcneill dvi_bridge_in: endpoint { 373 1.1.1.4 jmcneill remote-endpoint = <&clcd_pads>; 374 1.1.1.4 jmcneill }; 375 1.1.1.4 jmcneill }; 376 1.1.1.4 jmcneill }; 377 1.1 jmcneill }; 378 1.1 jmcneill 379 1.1.1.3 jmcneill dvi-transmitter@60 { 380 1.1.1.3 jmcneill compatible = "sil,sii9022-cpi", "sil,sii9022"; 381 1.1.1.3 jmcneill reg = <0x60>; 382 1.1 jmcneill }; 383 1.1 jmcneill }; 384 1.1 jmcneill 385 1.1.1.3 jmcneill rtc@170000 { 386 1.1.1.3 jmcneill compatible = "arm,pl031", "arm,primecell"; 387 1.1.1.3 jmcneill reg = <0x170000 0x1000>; 388 1.1.1.3 jmcneill interrupts = <4>; 389 1.1.1.3 jmcneill clocks = <&smbclk>; 390 1.1.1.3 jmcneill clock-names = "apb_pclk"; 391 1.1.1.3 jmcneill }; 392 1.1 jmcneill 393 1.1.1.3 jmcneill compact-flash@1a0000 { 394 1.1.1.3 jmcneill compatible = "arm,vexpress-cf", "ata-generic"; 395 1.1.1.3 jmcneill reg = <0x1a0000 0x100 396 1.1.1.3 jmcneill 0x1a0100 0xf00>; 397 1.1.1.3 jmcneill reg-shift = <2>; 398 1.1.1.3 jmcneill }; 399 1.1 jmcneill 400 1.1.1.3 jmcneill clcd@1f0000 { 401 1.1.1.3 jmcneill compatible = "arm,pl111", "arm,primecell"; 402 1.1.1.3 jmcneill reg = <0x1f0000 0x1000>; 403 1.1.1.3 jmcneill interrupt-names = "combined"; 404 1.1.1.3 jmcneill interrupts = <14>; 405 1.1.1.3 jmcneill clocks = <&v2m_oscclk1>, <&smbclk>; 406 1.1.1.3 jmcneill clock-names = "clcdclk", "apb_pclk"; 407 1.1.1.4 jmcneill /* 800x600 16bpp @36MHz works fine */ 408 1.1.1.4 jmcneill max-memory-bandwidth = <54000000>; 409 1.1.1.4 jmcneill memory-region = <&vram>; 410 1.1 jmcneill 411 1.1.1.3 jmcneill port { 412 1.1.1.4 jmcneill clcd_pads: endpoint { 413 1.1.1.4 jmcneill remote-endpoint = <&dvi_bridge_in>; 414 1.1.1.3 jmcneill arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 415 1.1.1.3 jmcneill }; 416 1.1.1.3 jmcneill }; 417 1.1.1.3 jmcneill }; 418 1.1 jmcneill 419 1.1.1.6 jmcneill mcc { 420 1.1.1.6 jmcneill compatible = "arm,vexpress,config-bus"; 421 1.1.1.6 jmcneill arm,vexpress,config-bridge = <&v2m_sysreg>; 422 1.1.1.6 jmcneill 423 1.1.1.6 jmcneill oscclk0 { 424 1.1.1.6 jmcneill /* MCC static memory clock */ 425 1.1.1.6 jmcneill compatible = "arm,vexpress-osc"; 426 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <1 0>; 427 1.1.1.6 jmcneill freq-range = <25000000 60000000>; 428 1.1.1.6 jmcneill #clock-cells = <0>; 429 1.1.1.6 jmcneill clock-output-names = "v2m:oscclk0"; 430 1.1.1.6 jmcneill }; 431 1.1 jmcneill 432 1.1.1.6 jmcneill v2m_oscclk1: oscclk1 { 433 1.1.1.6 jmcneill /* CLCD clock */ 434 1.1.1.6 jmcneill compatible = "arm,vexpress-osc"; 435 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <1 1>; 436 1.1.1.6 jmcneill freq-range = <23750000 65000000>; 437 1.1.1.6 jmcneill #clock-cells = <0>; 438 1.1.1.6 jmcneill clock-output-names = "v2m:oscclk1"; 439 1.1.1.6 jmcneill }; 440 1.1.1.3 jmcneill 441 1.1.1.6 jmcneill v2m_oscclk2: oscclk2 { 442 1.1.1.6 jmcneill /* IO FPGA peripheral clock */ 443 1.1.1.6 jmcneill compatible = "arm,vexpress-osc"; 444 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <1 2>; 445 1.1.1.6 jmcneill freq-range = <24000000 24000000>; 446 1.1.1.6 jmcneill #clock-cells = <0>; 447 1.1.1.6 jmcneill clock-output-names = "v2m:oscclk2"; 448 1.1.1.6 jmcneill }; 449 1.1.1.3 jmcneill 450 1.1.1.6 jmcneill volt-vio { 451 1.1.1.6 jmcneill /* Logic level voltage */ 452 1.1.1.6 jmcneill compatible = "arm,vexpress-volt"; 453 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <2 0>; 454 1.1.1.6 jmcneill regulator-name = "VIO"; 455 1.1.1.6 jmcneill regulator-always-on; 456 1.1.1.6 jmcneill label = "VIO"; 457 1.1.1.6 jmcneill }; 458 1.1.1.3 jmcneill 459 1.1.1.6 jmcneill temp-mcc { 460 1.1.1.6 jmcneill /* MCC internal operating temperature */ 461 1.1.1.6 jmcneill compatible = "arm,vexpress-temp"; 462 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <4 0>; 463 1.1.1.6 jmcneill label = "MCC"; 464 1.1.1.6 jmcneill }; 465 1.1.1.3 jmcneill 466 1.1.1.6 jmcneill reset { 467 1.1.1.6 jmcneill compatible = "arm,vexpress-reset"; 468 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <5 0>; 469 1.1.1.6 jmcneill }; 470 1.1.1.3 jmcneill 471 1.1.1.6 jmcneill muxfpga { 472 1.1.1.6 jmcneill compatible = "arm,vexpress-muxfpga"; 473 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <7 0>; 474 1.1.1.6 jmcneill }; 475 1.1.1.3 jmcneill 476 1.1.1.6 jmcneill shutdown { 477 1.1.1.6 jmcneill compatible = "arm,vexpress-shutdown"; 478 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <8 0>; 479 1.1.1.6 jmcneill }; 480 1.1 jmcneill 481 1.1.1.6 jmcneill reboot { 482 1.1.1.6 jmcneill compatible = "arm,vexpress-reboot"; 483 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <9 0>; 484 1.1.1.6 jmcneill }; 485 1.1.1.3 jmcneill 486 1.1.1.6 jmcneill dvimode { 487 1.1.1.6 jmcneill compatible = "arm,vexpress-dvimode"; 488 1.1.1.6 jmcneill arm,vexpress-sysreg,func = <11 0>; 489 1.1.1.6 jmcneill }; 490 1.1.1.3 jmcneill }; 491 1.1 jmcneill }; 492 1.1 jmcneill }; 493 1.1 jmcneill }; 494 1.1.1.3 jmcneill }; 495