1f126890aSEmmanuel Vadot/* 2f126890aSEmmanuel Vadot * Copyright 2015 Linaro Ltd 3f126890aSEmmanuel Vadot * 4f126890aSEmmanuel Vadot * Permission is hereby granted, free of charge, to any person obtaining a copy 5f126890aSEmmanuel Vadot * of this software and associated documentation files (the "Software"), to deal 6f126890aSEmmanuel Vadot * in the Software without restriction, including without limitation the rights 7f126890aSEmmanuel Vadot * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8f126890aSEmmanuel Vadot * copies of the Software, and to permit persons to whom the Software is 9f126890aSEmmanuel Vadot * furnished to do so, subject to the following conditions: 10f126890aSEmmanuel Vadot * 11f126890aSEmmanuel Vadot * The above copyright notice and this permission notice shall be included in 12f126890aSEmmanuel Vadot * all copies or substantial portions of the Software. 13f126890aSEmmanuel Vadot * 14f126890aSEmmanuel Vadot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15f126890aSEmmanuel Vadot * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16f126890aSEmmanuel Vadot * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17f126890aSEmmanuel Vadot * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18f126890aSEmmanuel Vadot * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19f126890aSEmmanuel Vadot * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20f126890aSEmmanuel Vadot * THE SOFTWARE. 21f126890aSEmmanuel Vadot */ 22f126890aSEmmanuel Vadot 23f126890aSEmmanuel Vadot/dts-v1/; 24f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 25f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 26f126890aSEmmanuel Vadot 27f126890aSEmmanuel Vadot/ { 28f126890aSEmmanuel Vadot #address-cells = <1>; 29f126890aSEmmanuel Vadot #size-cells = <1>; 30f126890aSEmmanuel Vadot model = "ARM RealView PB11MPcore"; 31f126890aSEmmanuel Vadot compatible = "arm,realview-pb11mp"; 32f126890aSEmmanuel Vadot 33f126890aSEmmanuel Vadot chosen { }; 34f126890aSEmmanuel Vadot 35f126890aSEmmanuel Vadot aliases { 36f126890aSEmmanuel Vadot serial0 = &pb11mp_serial0; 37f126890aSEmmanuel Vadot serial1 = &pb11mp_serial1; 38f126890aSEmmanuel Vadot serial2 = &pb11mp_serial2; 39f126890aSEmmanuel Vadot serial3 = &pb11mp_serial3; 40f126890aSEmmanuel Vadot }; 41f126890aSEmmanuel Vadot 42f126890aSEmmanuel Vadot memory { 43f126890aSEmmanuel Vadot device_type = "memory"; 44f126890aSEmmanuel Vadot /* 45f126890aSEmmanuel Vadot * The PB11MPCore has 512 MiB memory @ 0x70000000 46f126890aSEmmanuel Vadot * and the first 256 are also remapped @ 0x00000000 47f126890aSEmmanuel Vadot */ 48f126890aSEmmanuel Vadot reg = <0x70000000 0x20000000>; 49f126890aSEmmanuel Vadot }; 50f126890aSEmmanuel Vadot 51f126890aSEmmanuel Vadot cpus { 52f126890aSEmmanuel Vadot #address-cells = <1>; 53f126890aSEmmanuel Vadot #size-cells = <0>; 54f126890aSEmmanuel Vadot enable-method = "arm,realview-smp"; 55f126890aSEmmanuel Vadot 56f126890aSEmmanuel Vadot MP11_0: cpu@0 { 57f126890aSEmmanuel Vadot device_type = "cpu"; 58f126890aSEmmanuel Vadot compatible = "arm,arm11mpcore"; 59f126890aSEmmanuel Vadot reg = <0>; 60f126890aSEmmanuel Vadot next-level-cache = <&L2>; 61f126890aSEmmanuel Vadot }; 62f126890aSEmmanuel Vadot 63f126890aSEmmanuel Vadot MP11_1: cpu@1 { 64f126890aSEmmanuel Vadot device_type = "cpu"; 65f126890aSEmmanuel Vadot compatible = "arm,arm11mpcore"; 66f126890aSEmmanuel Vadot reg = <1>; 67f126890aSEmmanuel Vadot next-level-cache = <&L2>; 68f126890aSEmmanuel Vadot }; 69f126890aSEmmanuel Vadot 70f126890aSEmmanuel Vadot MP11_2: cpu@2 { 71f126890aSEmmanuel Vadot device_type = "cpu"; 72f126890aSEmmanuel Vadot compatible = "arm,arm11mpcore"; 73f126890aSEmmanuel Vadot reg = <2>; 74f126890aSEmmanuel Vadot next-level-cache = <&L2>; 75f126890aSEmmanuel Vadot }; 76f126890aSEmmanuel Vadot 77f126890aSEmmanuel Vadot MP11_3: cpu@3 { 78f126890aSEmmanuel Vadot device_type = "cpu"; 79f126890aSEmmanuel Vadot compatible = "arm,arm11mpcore"; 80f126890aSEmmanuel Vadot reg = <3>; 81f126890aSEmmanuel Vadot next-level-cache = <&L2>; 82f126890aSEmmanuel Vadot }; 83f126890aSEmmanuel Vadot }; 84f126890aSEmmanuel Vadot 85f126890aSEmmanuel Vadot /* Primary TestChip GIC synthesized with the CPU */ 86f126890aSEmmanuel Vadot intc_tc11mp: interrupt-controller@1f000100 { 87f126890aSEmmanuel Vadot compatible = "arm,tc11mp-gic"; 88f126890aSEmmanuel Vadot #interrupt-cells = <3>; 89f126890aSEmmanuel Vadot #address-cells = <1>; 90f126890aSEmmanuel Vadot interrupt-controller; 91f126890aSEmmanuel Vadot reg = <0x1f001000 0x1000>, 92f126890aSEmmanuel Vadot <0x1f000100 0x100>; 93f126890aSEmmanuel Vadot }; 94f126890aSEmmanuel Vadot 95*b2d2a78aSEmmanuel Vadot L2: cache-controller@1f002000 { 96f126890aSEmmanuel Vadot compatible = "arm,l220-cache"; 97f126890aSEmmanuel Vadot reg = <0x1f002000 0x1000>; 98f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 99f126890aSEmmanuel Vadot interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>, 100f126890aSEmmanuel Vadot <0 30 IRQ_TYPE_LEVEL_HIGH>, 101f126890aSEmmanuel Vadot <0 31 IRQ_TYPE_LEVEL_HIGH>; 102f126890aSEmmanuel Vadot cache-unified; 103f126890aSEmmanuel Vadot cache-level = <2>; 104f126890aSEmmanuel Vadot /* 105f126890aSEmmanuel Vadot * Override default cache size, sets and 106f126890aSEmmanuel Vadot * associativity as these may be erroneously set 107f126890aSEmmanuel Vadot * up by boot loader(s), probably for safety 108f126890aSEmmanuel Vadot * since th outer sync operation can cause the 109f126890aSEmmanuel Vadot * cache to hang unless disabled. 110f126890aSEmmanuel Vadot */ 111f126890aSEmmanuel Vadot cache-size = <1048576>; // 1MB 112f126890aSEmmanuel Vadot cache-sets = <4096>; 113f126890aSEmmanuel Vadot cache-line-size = <32>; 114f126890aSEmmanuel Vadot arm,shared-override; 115f126890aSEmmanuel Vadot arm,parity-enable; 116f126890aSEmmanuel Vadot arm,outer-sync-disable; 117f126890aSEmmanuel Vadot }; 118f126890aSEmmanuel Vadot 119f126890aSEmmanuel Vadot scu@1f000000 { 120f126890aSEmmanuel Vadot compatible = "arm,arm11mp-scu"; 121f126890aSEmmanuel Vadot reg = <0x1f000000 0x100>; 122f126890aSEmmanuel Vadot }; 123f126890aSEmmanuel Vadot 124f126890aSEmmanuel Vadot timer@1f000600 { 125f126890aSEmmanuel Vadot compatible = "arm,arm11mp-twd-timer"; 126f126890aSEmmanuel Vadot reg = <0x1f000600 0x20>; 127f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 128f126890aSEmmanuel Vadot interrupts = <1 13 0xf04>; 129f126890aSEmmanuel Vadot }; 130f126890aSEmmanuel Vadot 131f126890aSEmmanuel Vadot watchdog@1f000620 { 132f126890aSEmmanuel Vadot compatible = "arm,arm11mp-twd-wdt"; 133f126890aSEmmanuel Vadot reg = <0x1f000620 0x20>; 134f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 135f126890aSEmmanuel Vadot interrupts = <1 14 0xf04>; 136f126890aSEmmanuel Vadot }; 137f126890aSEmmanuel Vadot 138f126890aSEmmanuel Vadot /* PMU with one IRQ line per core */ 139f126890aSEmmanuel Vadot pmu { 140f126890aSEmmanuel Vadot compatible = "arm,arm11mpcore-pmu"; 141f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 142f126890aSEmmanuel Vadot interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH>, 143f126890aSEmmanuel Vadot <0 18 IRQ_TYPE_LEVEL_HIGH>, 144f126890aSEmmanuel Vadot <0 19 IRQ_TYPE_LEVEL_HIGH>, 145f126890aSEmmanuel Vadot <0 20 IRQ_TYPE_LEVEL_HIGH>; 146f126890aSEmmanuel Vadot interrupt-affinity = <&MP11_0>, <&MP11_1>, <&MP11_2>, <&MP11_3>; 147f126890aSEmmanuel Vadot }; 148f126890aSEmmanuel Vadot 149f126890aSEmmanuel Vadot /* The voltage to the MMC card is hardwired at 3.3V */ 150f126890aSEmmanuel Vadot vmmc: regulator-vmmc { 151f126890aSEmmanuel Vadot compatible = "regulator-fixed"; 152f126890aSEmmanuel Vadot regulator-name = "vmmc"; 153f126890aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 154f126890aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 155f126890aSEmmanuel Vadot regulator-boot-on; 156f126890aSEmmanuel Vadot }; 157f126890aSEmmanuel Vadot 158f126890aSEmmanuel Vadot veth: regulator-veth { 159f126890aSEmmanuel Vadot compatible = "regulator-fixed"; 160f126890aSEmmanuel Vadot regulator-name = "veth"; 161f126890aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 162f126890aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 163f126890aSEmmanuel Vadot regulator-boot-on; 164f126890aSEmmanuel Vadot }; 165f126890aSEmmanuel Vadot 1660e8011faSEmmanuel Vadot xtal24mhz: mclk: kmiclk: sspclk: uartclk: wdogclk: clock-24000000 { 167f126890aSEmmanuel Vadot #clock-cells = <0>; 168f126890aSEmmanuel Vadot compatible = "fixed-clock"; 169f126890aSEmmanuel Vadot clock-frequency = <24000000>; 170f126890aSEmmanuel Vadot }; 171f126890aSEmmanuel Vadot 1720e8011faSEmmanuel Vadot refclk32khz: clock-32768 { 173f126890aSEmmanuel Vadot compatible = "fixed-clock"; 174f126890aSEmmanuel Vadot #clock-cells = <0>; 175f126890aSEmmanuel Vadot clock-frequency = <32768>; 176f126890aSEmmanuel Vadot }; 177f126890aSEmmanuel Vadot 1780e8011faSEmmanuel Vadot timclk: clock-1000000 { 179f126890aSEmmanuel Vadot #clock-cells = <0>; 180f126890aSEmmanuel Vadot compatible = "fixed-factor-clock"; 181f126890aSEmmanuel Vadot clock-div = <24>; 182f126890aSEmmanuel Vadot clock-mult = <1>; 183f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 184f126890aSEmmanuel Vadot }; 185f126890aSEmmanuel Vadot 186f126890aSEmmanuel Vadot /* FIXME: this actually hangs off the PLL clocks */ 1870e8011faSEmmanuel Vadot pclk: clock-pclk { 188f126890aSEmmanuel Vadot #clock-cells = <0>; 189f126890aSEmmanuel Vadot compatible = "fixed-clock"; 190f126890aSEmmanuel Vadot clock-frequency = <0>; 191f126890aSEmmanuel Vadot }; 192f126890aSEmmanuel Vadot 193f126890aSEmmanuel Vadot flash0@40000000 { 194f126890aSEmmanuel Vadot /* 2 * 32MiB NOR Flash memory */ 195f126890aSEmmanuel Vadot compatible = "arm,versatile-flash", "cfi-flash"; 196f126890aSEmmanuel Vadot reg = <0x40000000 0x04000000>; 197f126890aSEmmanuel Vadot bank-width = <4>; 198f126890aSEmmanuel Vadot partitions { 199f126890aSEmmanuel Vadot compatible = "arm,arm-firmware-suite"; 200f126890aSEmmanuel Vadot }; 201f126890aSEmmanuel Vadot }; 202f126890aSEmmanuel Vadot 203f126890aSEmmanuel Vadot flash1@44000000 { 204f126890aSEmmanuel Vadot // 2 * 32MiB NOR Flash memory 205f126890aSEmmanuel Vadot compatible = "arm,versatile-flash", "cfi-flash"; 206f126890aSEmmanuel Vadot reg = <0x44000000 0x04000000>; 207f126890aSEmmanuel Vadot bank-width = <4>; 208f126890aSEmmanuel Vadot partitions { 209f126890aSEmmanuel Vadot compatible = "arm,arm-firmware-suite"; 210f126890aSEmmanuel Vadot }; 211f126890aSEmmanuel Vadot }; 212f126890aSEmmanuel Vadot 213f126890aSEmmanuel Vadot bridge { 214f126890aSEmmanuel Vadot compatible = "ti,ths8134a", "ti,ths8134"; 215f126890aSEmmanuel Vadot #address-cells = <1>; 216f126890aSEmmanuel Vadot #size-cells = <0>; 217f126890aSEmmanuel Vadot 218f126890aSEmmanuel Vadot ports { 219f126890aSEmmanuel Vadot #address-cells = <1>; 220f126890aSEmmanuel Vadot #size-cells = <0>; 221f126890aSEmmanuel Vadot 222f126890aSEmmanuel Vadot port@0 { 223f126890aSEmmanuel Vadot reg = <0>; 224f126890aSEmmanuel Vadot 225f126890aSEmmanuel Vadot vga_bridge_in: endpoint { 226f126890aSEmmanuel Vadot remote-endpoint = <&clcd_pads>; 227f126890aSEmmanuel Vadot }; 228f126890aSEmmanuel Vadot }; 229f126890aSEmmanuel Vadot 230f126890aSEmmanuel Vadot port@1 { 231f126890aSEmmanuel Vadot reg = <1>; 232f126890aSEmmanuel Vadot 233f126890aSEmmanuel Vadot vga_bridge_out: endpoint { 234f126890aSEmmanuel Vadot remote-endpoint = <&vga_con_in>; 235f126890aSEmmanuel Vadot }; 236f126890aSEmmanuel Vadot }; 237f126890aSEmmanuel Vadot }; 238f126890aSEmmanuel Vadot }; 239f126890aSEmmanuel Vadot 240f126890aSEmmanuel Vadot vga { 241f126890aSEmmanuel Vadot /* 242f126890aSEmmanuel Vadot * This DDC I2C is connected directly to the DVI portions 243f126890aSEmmanuel Vadot * of the connector, so it's not really working when the 244f126890aSEmmanuel Vadot * monitor is connected to the VGA connector. 245f126890aSEmmanuel Vadot */ 246f126890aSEmmanuel Vadot compatible = "vga-connector"; 247f126890aSEmmanuel Vadot ddc-i2c-bus = <&i2c1>; 248f126890aSEmmanuel Vadot 249f126890aSEmmanuel Vadot port { 250f126890aSEmmanuel Vadot vga_con_in: endpoint { 251f126890aSEmmanuel Vadot remote-endpoint = <&vga_bridge_out>; 252f126890aSEmmanuel Vadot }; 253f126890aSEmmanuel Vadot }; 254f126890aSEmmanuel Vadot }; 255f126890aSEmmanuel Vadot 256f126890aSEmmanuel Vadot soc { 257f126890aSEmmanuel Vadot #address-cells = <1>; 258f126890aSEmmanuel Vadot #size-cells = <1>; 259f126890aSEmmanuel Vadot compatible = "arm,realview-pb11mp-soc", "simple-bus"; 260f126890aSEmmanuel Vadot regmap = <&pb11mp_syscon>; 261f126890aSEmmanuel Vadot ranges; 262f126890aSEmmanuel Vadot 263f126890aSEmmanuel Vadot pb11mp_syscon: syscon@10000000 { 264f126890aSEmmanuel Vadot compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd"; 265f126890aSEmmanuel Vadot reg = <0x10000000 0x1000>; 266f126890aSEmmanuel Vadot ranges = <0x0 0x10000000 0x1000>; 267f126890aSEmmanuel Vadot #address-cells = <1>; 268f126890aSEmmanuel Vadot #size-cells = <1>; 269f126890aSEmmanuel Vadot 270f126890aSEmmanuel Vadot led@8,0 { 271f126890aSEmmanuel Vadot compatible = "register-bit-led"; 272f126890aSEmmanuel Vadot reg = <0x08 0x04>; 273f126890aSEmmanuel Vadot offset = <0x08>; 274f126890aSEmmanuel Vadot mask = <0x01>; 275f126890aSEmmanuel Vadot label = "versatile:0"; 276f126890aSEmmanuel Vadot linux,default-trigger = "heartbeat"; 277f126890aSEmmanuel Vadot default-state = "on"; 278f126890aSEmmanuel Vadot }; 279f126890aSEmmanuel Vadot led@8,1 { 280f126890aSEmmanuel Vadot compatible = "register-bit-led"; 281f126890aSEmmanuel Vadot reg = <0x08 0x04>; 282f126890aSEmmanuel Vadot offset = <0x08>; 283f126890aSEmmanuel Vadot mask = <0x02>; 284f126890aSEmmanuel Vadot label = "versatile:1"; 285f126890aSEmmanuel Vadot linux,default-trigger = "mmc0"; 286f126890aSEmmanuel Vadot default-state = "off"; 287f126890aSEmmanuel Vadot }; 288f126890aSEmmanuel Vadot led@8,2 { 289f126890aSEmmanuel Vadot compatible = "register-bit-led"; 290f126890aSEmmanuel Vadot reg = <0x08 0x04>; 291f126890aSEmmanuel Vadot offset = <0x08>; 292f126890aSEmmanuel Vadot mask = <0x04>; 293f126890aSEmmanuel Vadot label = "versatile:2"; 294f126890aSEmmanuel Vadot linux,default-trigger = "cpu0"; 295f126890aSEmmanuel Vadot default-state = "off"; 296f126890aSEmmanuel Vadot }; 297f126890aSEmmanuel Vadot led@8,3 { 298f126890aSEmmanuel Vadot compatible = "register-bit-led"; 299f126890aSEmmanuel Vadot reg = <0x08 0x04>; 300f126890aSEmmanuel Vadot offset = <0x08>; 301f126890aSEmmanuel Vadot mask = <0x08>; 302f126890aSEmmanuel Vadot label = "versatile:3"; 303f126890aSEmmanuel Vadot linux,default-trigger = "cpu1"; 304f126890aSEmmanuel Vadot default-state = "off"; 305f126890aSEmmanuel Vadot }; 306f126890aSEmmanuel Vadot led@8,4 { 307f126890aSEmmanuel Vadot compatible = "register-bit-led"; 308f126890aSEmmanuel Vadot reg = <0x08 0x04>; 309f126890aSEmmanuel Vadot offset = <0x08>; 310f126890aSEmmanuel Vadot mask = <0x10>; 311f126890aSEmmanuel Vadot label = "versatile:4"; 312f126890aSEmmanuel Vadot linux,default-trigger = "cpu2"; 313f126890aSEmmanuel Vadot default-state = "off"; 314f126890aSEmmanuel Vadot }; 315f126890aSEmmanuel Vadot led@8,5 { 316f126890aSEmmanuel Vadot compatible = "register-bit-led"; 317f126890aSEmmanuel Vadot reg = <0x08 0x04>; 318f126890aSEmmanuel Vadot offset = <0x08>; 319f126890aSEmmanuel Vadot mask = <0x20>; 320f126890aSEmmanuel Vadot label = "versatile:5"; 321f126890aSEmmanuel Vadot linux,default-trigger = "cpu3"; 322f126890aSEmmanuel Vadot default-state = "off"; 323f126890aSEmmanuel Vadot }; 324f126890aSEmmanuel Vadot led@8,6 { 325f126890aSEmmanuel Vadot compatible = "register-bit-led"; 326f126890aSEmmanuel Vadot reg = <0x08 0x04>; 327f126890aSEmmanuel Vadot offset = <0x08>; 328f126890aSEmmanuel Vadot mask = <0x40>; 329f126890aSEmmanuel Vadot label = "versatile:6"; 330f126890aSEmmanuel Vadot default-state = "off"; 331f126890aSEmmanuel Vadot }; 332f126890aSEmmanuel Vadot led@8,7 { 333f126890aSEmmanuel Vadot compatible = "register-bit-led"; 334f126890aSEmmanuel Vadot reg = <0x08 0x04>; 335f126890aSEmmanuel Vadot offset = <0x08>; 336f126890aSEmmanuel Vadot mask = <0x80>; 337f126890aSEmmanuel Vadot label = "versatile:7"; 338f126890aSEmmanuel Vadot default-state = "off"; 339f126890aSEmmanuel Vadot }; 340f126890aSEmmanuel Vadot 341f126890aSEmmanuel Vadot oscclk0: clock-controller@c { 342f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 343f126890aSEmmanuel Vadot reg = <0x0c 0x04>; 344f126890aSEmmanuel Vadot #clock-cells = <0>; 345f126890aSEmmanuel Vadot lock-offset = <0x20>; 346f126890aSEmmanuel Vadot vco-offset = <0x0C>; 347f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 348f126890aSEmmanuel Vadot }; 349f126890aSEmmanuel Vadot oscclk1: clock-controller@10 { 350f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 351f126890aSEmmanuel Vadot reg = <0x10 0x04>; 352f126890aSEmmanuel Vadot #clock-cells = <0>; 353f126890aSEmmanuel Vadot lock-offset = <0x20>; 354f126890aSEmmanuel Vadot vco-offset = <0x10>; 355f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 356f126890aSEmmanuel Vadot }; 357f126890aSEmmanuel Vadot oscclk2: clock-controller@14 { 358f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 359f126890aSEmmanuel Vadot reg = <0x14 0x04>; 360f126890aSEmmanuel Vadot #clock-cells = <0>; 361f126890aSEmmanuel Vadot lock-offset = <0x20>; 362f126890aSEmmanuel Vadot vco-offset = <0x14>; 363f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 364f126890aSEmmanuel Vadot }; 365f126890aSEmmanuel Vadot oscclk3: clock-controller@18 { 366f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 367f126890aSEmmanuel Vadot reg = <0x18 0x04>; 368f126890aSEmmanuel Vadot #clock-cells = <0>; 369f126890aSEmmanuel Vadot lock-offset = <0x20>; 370f126890aSEmmanuel Vadot vco-offset = <0x18>; 371f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 372f126890aSEmmanuel Vadot }; 373f126890aSEmmanuel Vadot oscclk4: clock-controller@1c { 374f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 375f126890aSEmmanuel Vadot reg = <0x1c 0x04>; 376f126890aSEmmanuel Vadot #clock-cells = <0>; 377f126890aSEmmanuel Vadot lock-offset = <0x20>; 378f126890aSEmmanuel Vadot vco-offset = <0x1c>; 379f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 380f126890aSEmmanuel Vadot }; 381f126890aSEmmanuel Vadot oscclk5: clock-controller@d4 { 382f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 383f126890aSEmmanuel Vadot reg = <0xd4 0x04>; 384f126890aSEmmanuel Vadot #clock-cells = <0>; 385f126890aSEmmanuel Vadot lock-offset = <0x20>; 386f126890aSEmmanuel Vadot vco-offset = <0xd4>; 387f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 388f126890aSEmmanuel Vadot }; 389f126890aSEmmanuel Vadot oscclk6: clock-controller@d8 { 390f126890aSEmmanuel Vadot compatible = "arm,syscon-icst307"; 391f126890aSEmmanuel Vadot reg = <0xd8 0x04>; 392f126890aSEmmanuel Vadot #clock-cells = <0>; 393f126890aSEmmanuel Vadot lock-offset = <0x20>; 394f126890aSEmmanuel Vadot vco-offset = <0xd8>; 395f126890aSEmmanuel Vadot clocks = <&xtal24mhz>; 396f126890aSEmmanuel Vadot }; 397f126890aSEmmanuel Vadot }; 398f126890aSEmmanuel Vadot 399f126890aSEmmanuel Vadot sp810_syscon: sysctl@10001000 { 400f126890aSEmmanuel Vadot compatible = "arm,sp810", "arm,primecell"; 401f126890aSEmmanuel Vadot reg = <0x10001000 0x1000>; 402f126890aSEmmanuel Vadot clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>; 403f126890aSEmmanuel Vadot clock-names = "refclk", "timclk", "apb_pclk"; 404f126890aSEmmanuel Vadot #clock-cells = <1>; 405f126890aSEmmanuel Vadot clock-output-names = "timerclk0", 406f126890aSEmmanuel Vadot "timerclk1", 407f126890aSEmmanuel Vadot "timerclk2", 408f126890aSEmmanuel Vadot "timerclk3"; 409f126890aSEmmanuel Vadot assigned-clocks = <&sp810_syscon 0>, 410f126890aSEmmanuel Vadot <&sp810_syscon 1>, 411f126890aSEmmanuel Vadot <&sp810_syscon 2>, 412f126890aSEmmanuel Vadot <&sp810_syscon 3>; 413f126890aSEmmanuel Vadot assigned-clock-parents = <&timclk>, 414f126890aSEmmanuel Vadot <&timclk>, 415f126890aSEmmanuel Vadot <&timclk>, 416f126890aSEmmanuel Vadot <&timclk>; 417f126890aSEmmanuel Vadot }; 418f126890aSEmmanuel Vadot 419f126890aSEmmanuel Vadot i2c0: i2c@10002000 { 420f126890aSEmmanuel Vadot #address-cells = <1>; 421f126890aSEmmanuel Vadot #size-cells = <0>; 422f126890aSEmmanuel Vadot compatible = "arm,versatile-i2c"; 423f126890aSEmmanuel Vadot reg = <0x10002000 0x1000>; 424f126890aSEmmanuel Vadot 425f126890aSEmmanuel Vadot rtc@68 { 426f126890aSEmmanuel Vadot compatible = "dallas,ds1338"; 427f126890aSEmmanuel Vadot reg = <0x68>; 428f126890aSEmmanuel Vadot }; 429f126890aSEmmanuel Vadot }; 430f126890aSEmmanuel Vadot 431f126890aSEmmanuel Vadot aaci: aaci@10004000 { 432f126890aSEmmanuel Vadot compatible = "arm,pl041", "arm,primecell"; 433f126890aSEmmanuel Vadot reg = <0x10004000 0x1000>; 434f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 435f126890aSEmmanuel Vadot interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>; 436f126890aSEmmanuel Vadot clocks = <&pclk>; 437f126890aSEmmanuel Vadot clock-names = "apb_pclk"; 438f126890aSEmmanuel Vadot }; 439f126890aSEmmanuel Vadot 440f126890aSEmmanuel Vadot mci: mmcsd@10005000 { 441f126890aSEmmanuel Vadot compatible = "arm,pl18x", "arm,primecell"; 442f126890aSEmmanuel Vadot reg = <0x10005000 0x1000>; 443f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 444f126890aSEmmanuel Vadot interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>, 445f126890aSEmmanuel Vadot <0 15 IRQ_TYPE_LEVEL_HIGH>; 446f126890aSEmmanuel Vadot /* Due to frequent FIFO overruns, use just 500 kHz */ 447f126890aSEmmanuel Vadot max-frequency = <500000>; 448f126890aSEmmanuel Vadot bus-width = <4>; 449f126890aSEmmanuel Vadot cap-sd-highspeed; 450f126890aSEmmanuel Vadot cap-mmc-highspeed; 451f126890aSEmmanuel Vadot clocks = <&mclk>, <&pclk>; 452f126890aSEmmanuel Vadot clock-names = "mclk", "apb_pclk"; 453f126890aSEmmanuel Vadot vmmc-supply = <&vmmc>; 454f126890aSEmmanuel Vadot cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; 455f126890aSEmmanuel Vadot wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; 456f126890aSEmmanuel Vadot }; 457f126890aSEmmanuel Vadot 458f126890aSEmmanuel Vadot kmi0: kmi@10006000 { 459f126890aSEmmanuel Vadot compatible = "arm,pl050", "arm,primecell"; 460f126890aSEmmanuel Vadot reg = <0x10006000 0x1000>; 461f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 462f126890aSEmmanuel Vadot interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; 463f126890aSEmmanuel Vadot clocks = <&kmiclk>, <&pclk>; 464f126890aSEmmanuel Vadot clock-names = "KMIREFCLK", "apb_pclk"; 465f126890aSEmmanuel Vadot }; 466f126890aSEmmanuel Vadot 467f126890aSEmmanuel Vadot kmi1: kmi@10007000 { 468f126890aSEmmanuel Vadot compatible = "arm,pl050", "arm,primecell"; 469f126890aSEmmanuel Vadot reg = <0x10007000 0x1000>; 470f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 471f126890aSEmmanuel Vadot interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>; 472f126890aSEmmanuel Vadot clocks = <&kmiclk>, <&pclk>; 473f126890aSEmmanuel Vadot clock-names = "KMIREFCLK", "apb_pclk"; 474f126890aSEmmanuel Vadot }; 475f126890aSEmmanuel Vadot 476f126890aSEmmanuel Vadot pb11mp_serial0: serial@10009000 { 477f126890aSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 478f126890aSEmmanuel Vadot reg = <0x10009000 0x1000>; 479f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 480f126890aSEmmanuel Vadot interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>; 481f126890aSEmmanuel Vadot clocks = <&uartclk>, <&pclk>; 482f126890aSEmmanuel Vadot clock-names = "uartclk", "apb_pclk"; 483f126890aSEmmanuel Vadot }; 484f126890aSEmmanuel Vadot 485f126890aSEmmanuel Vadot pb11mp_serial1: serial@1000a000 { 486f126890aSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 487f126890aSEmmanuel Vadot reg = <0x1000a000 0x1000>; 488f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 489f126890aSEmmanuel Vadot interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>; 490f126890aSEmmanuel Vadot clocks = <&uartclk>, <&pclk>; 491f126890aSEmmanuel Vadot clock-names = "uartclk", "apb_pclk"; 492f126890aSEmmanuel Vadot }; 493f126890aSEmmanuel Vadot 494f126890aSEmmanuel Vadot pb11mp_serial2: serial@1000b000 { 495f126890aSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 496f126890aSEmmanuel Vadot reg = <0x1000b000 0x1000>; 497f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 498f126890aSEmmanuel Vadot interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; 499f126890aSEmmanuel Vadot clocks = <&uartclk>, <&pclk>; 500f126890aSEmmanuel Vadot clock-names = "uartclk", "apb_pclk"; 501f126890aSEmmanuel Vadot }; 502f126890aSEmmanuel Vadot 503f126890aSEmmanuel Vadot pb11mp_serial3: serial@1000c000 { 504f126890aSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 505f126890aSEmmanuel Vadot reg = <0x1000c000 0x1000>; 506f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 507f126890aSEmmanuel Vadot interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>; 508f126890aSEmmanuel Vadot clocks = <&uartclk>, <&pclk>; 509f126890aSEmmanuel Vadot clock-names = "uartclk", "apb_pclk"; 510f126890aSEmmanuel Vadot }; 511f126890aSEmmanuel Vadot 512f126890aSEmmanuel Vadot spi@1000d000 { 513f126890aSEmmanuel Vadot compatible = "arm,pl022", "arm,primecell"; 514f126890aSEmmanuel Vadot reg = <0x1000d000 0x1000>; 515f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 516f126890aSEmmanuel Vadot interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>; 517f126890aSEmmanuel Vadot clocks = <&sspclk>, <&pclk>; 518f126890aSEmmanuel Vadot clock-names = "sspclk", "apb_pclk"; 519f126890aSEmmanuel Vadot }; 520f126890aSEmmanuel Vadot 521f126890aSEmmanuel Vadot watchdog@1000f000 { 522f126890aSEmmanuel Vadot compatible = "arm,sp805", "arm,primecell"; 523f126890aSEmmanuel Vadot reg = <0x1000f000 0x1000>; 524f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 525f126890aSEmmanuel Vadot interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>; 526f126890aSEmmanuel Vadot clocks = <&wdogclk>, <&pclk>; 527f126890aSEmmanuel Vadot clock-names = "wdog_clk", "apb_pclk"; 528f126890aSEmmanuel Vadot status = "disabled"; 529f126890aSEmmanuel Vadot }; 530f126890aSEmmanuel Vadot 531f126890aSEmmanuel Vadot watchdog@10010000 { 532f126890aSEmmanuel Vadot compatible = "arm,sp805", "arm,primecell"; 533f126890aSEmmanuel Vadot reg = <0x10010000 0x1000>; 534f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 535f126890aSEmmanuel Vadot interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>; 536f126890aSEmmanuel Vadot clocks = <&wdogclk>, <&pclk>; 537f126890aSEmmanuel Vadot clock-names = "wdog_clk", "apb_pclk"; 538f126890aSEmmanuel Vadot }; 539f126890aSEmmanuel Vadot 540f126890aSEmmanuel Vadot timer01: timer@10011000 { 541f126890aSEmmanuel Vadot compatible = "arm,sp804", "arm,primecell"; 542f126890aSEmmanuel Vadot reg = <0x10011000 0x1000>; 543f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 544f126890aSEmmanuel Vadot interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH>; 545f126890aSEmmanuel Vadot arm,sp804-has-irq = <1>; 546f126890aSEmmanuel Vadot clocks = <&sp810_syscon 0>, 547f126890aSEmmanuel Vadot <&sp810_syscon 1>, 548f126890aSEmmanuel Vadot <&pclk>; 549f126890aSEmmanuel Vadot clock-names = "timer0clk", 550f126890aSEmmanuel Vadot "timer1clk", 551f126890aSEmmanuel Vadot "apb_pclk"; 552f126890aSEmmanuel Vadot }; 553f126890aSEmmanuel Vadot 554f126890aSEmmanuel Vadot timer23: timer@10012000 { 555f126890aSEmmanuel Vadot compatible = "arm,sp804", "arm,primecell"; 556f126890aSEmmanuel Vadot reg = <0x10012000 0x1000>; 557f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 558f126890aSEmmanuel Vadot interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>; 559f126890aSEmmanuel Vadot arm,sp804-has-irq = <1>; 560f126890aSEmmanuel Vadot clocks = <&sp810_syscon 2>, 561f126890aSEmmanuel Vadot <&sp810_syscon 3>, 562f126890aSEmmanuel Vadot <&pclk>; 563f126890aSEmmanuel Vadot clock-names = "timer0clk", 564f126890aSEmmanuel Vadot "timer1clk", 565f126890aSEmmanuel Vadot "apb_pclk"; 566f126890aSEmmanuel Vadot }; 567f126890aSEmmanuel Vadot 568f126890aSEmmanuel Vadot gpio0: gpio@10013000 { 569f126890aSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 570f126890aSEmmanuel Vadot reg = <0x10013000 0x1000>; 571f126890aSEmmanuel Vadot gpio-controller; 572f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 573f126890aSEmmanuel Vadot interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; 574f126890aSEmmanuel Vadot #gpio-cells = <2>; 575f126890aSEmmanuel Vadot interrupt-controller; 576f126890aSEmmanuel Vadot #interrupt-cells = <2>; 577f126890aSEmmanuel Vadot clocks = <&pclk>; 578f126890aSEmmanuel Vadot clock-names = "apb_pclk"; 579f126890aSEmmanuel Vadot }; 580f126890aSEmmanuel Vadot 581f126890aSEmmanuel Vadot gpio1: gpio@10014000 { 582f126890aSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 583f126890aSEmmanuel Vadot reg = <0x10014000 0x1000>; 584f126890aSEmmanuel Vadot gpio-controller; 585f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 586f126890aSEmmanuel Vadot interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; 587f126890aSEmmanuel Vadot #gpio-cells = <2>; 588f126890aSEmmanuel Vadot interrupt-controller; 589f126890aSEmmanuel Vadot #interrupt-cells = <2>; 590f126890aSEmmanuel Vadot clocks = <&pclk>; 591f126890aSEmmanuel Vadot clock-names = "apb_pclk"; 592f126890aSEmmanuel Vadot }; 593f126890aSEmmanuel Vadot 594f126890aSEmmanuel Vadot gpio2: gpio@10015000 { 595f126890aSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 596f126890aSEmmanuel Vadot reg = <0x10015000 0x1000>; 597f126890aSEmmanuel Vadot gpio-controller; 598f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 599f126890aSEmmanuel Vadot interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>; 600f126890aSEmmanuel Vadot #gpio-cells = <2>; 601f126890aSEmmanuel Vadot interrupt-controller; 602f126890aSEmmanuel Vadot #interrupt-cells = <2>; 603f126890aSEmmanuel Vadot clocks = <&pclk>; 604f126890aSEmmanuel Vadot clock-names = "apb_pclk"; 605f126890aSEmmanuel Vadot }; 606f126890aSEmmanuel Vadot 607f126890aSEmmanuel Vadot i2c1: i2c@10016000 { 608f126890aSEmmanuel Vadot #address-cells = <1>; 609f126890aSEmmanuel Vadot #size-cells = <0>; 610f126890aSEmmanuel Vadot compatible = "arm,versatile-i2c"; 611f126890aSEmmanuel Vadot reg = <0x10016000 0x1000>; 612f126890aSEmmanuel Vadot }; 613f126890aSEmmanuel Vadot 614f126890aSEmmanuel Vadot rtc: rtc@10017000 { 615f126890aSEmmanuel Vadot compatible = "arm,pl031", "arm,primecell"; 616f126890aSEmmanuel Vadot reg = <0x10017000 0x1000>; 617f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 618f126890aSEmmanuel Vadot interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; 619f126890aSEmmanuel Vadot clocks = <&pclk>; 620f126890aSEmmanuel Vadot clock-names = "apb_pclk"; 621f126890aSEmmanuel Vadot }; 622f126890aSEmmanuel Vadot 623f126890aSEmmanuel Vadot timer45: timer@10018000 { 624f126890aSEmmanuel Vadot compatible = "arm,sp804", "arm,primecell"; 625f126890aSEmmanuel Vadot reg = <0x10018000 0x1000>; 626f126890aSEmmanuel Vadot clocks = <&timclk>, <&timclk>, <&pclk>; 627f126890aSEmmanuel Vadot clock-names = "timer0clk", "timer1clk", "apb_pclk"; 628f126890aSEmmanuel Vadot status = "disabled"; 629f126890aSEmmanuel Vadot }; 630f126890aSEmmanuel Vadot 631f126890aSEmmanuel Vadot timer67: timer@10019000 { 632f126890aSEmmanuel Vadot compatible = "arm,sp804", "arm,primecell"; 633f126890aSEmmanuel Vadot reg = <0x10019000 0x1000>; 634f126890aSEmmanuel Vadot clocks = <&timclk>, <&timclk>, <&pclk>; 635f126890aSEmmanuel Vadot clock-names = "timer0clk", "timer1clk", "apb_pclk"; 636f126890aSEmmanuel Vadot status = "disabled"; 637f126890aSEmmanuel Vadot }; 638f126890aSEmmanuel Vadot 639f126890aSEmmanuel Vadot 640f126890aSEmmanuel Vadot clcd@10020000 { 641f126890aSEmmanuel Vadot compatible = "arm,pl111", "arm,primecell"; 642f126890aSEmmanuel Vadot reg = <0x10020000 0x1000>; 643f126890aSEmmanuel Vadot interrupt-parent = <&intc_pb11mp>; 644f126890aSEmmanuel Vadot interrupt-names = "combined"; 645f126890aSEmmanuel Vadot interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; 646f126890aSEmmanuel Vadot clocks = <&oscclk4>, <&pclk>; 647f126890aSEmmanuel Vadot clock-names = "clcdclk", "apb_pclk"; 648f126890aSEmmanuel Vadot /* 1024x768 16bpp @65MHz works fine */ 649f126890aSEmmanuel Vadot max-memory-bandwidth = <95000000>; 650f126890aSEmmanuel Vadot 651f126890aSEmmanuel Vadot port { 652f126890aSEmmanuel Vadot clcd_pads: endpoint { 653f126890aSEmmanuel Vadot remote-endpoint = <&vga_bridge_in>; 654f126890aSEmmanuel Vadot arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 655f126890aSEmmanuel Vadot }; 656f126890aSEmmanuel Vadot }; 657f126890aSEmmanuel Vadot }; 658f126890aSEmmanuel Vadot 659f126890aSEmmanuel Vadot /* 660f126890aSEmmanuel Vadot * This GIC on the Platform Baseboard is cascaded off the 661f126890aSEmmanuel Vadot * TestChip GIC 662f126890aSEmmanuel Vadot */ 663f126890aSEmmanuel Vadot intc_pb11mp: interrupt-controller@1e000000 { 664f126890aSEmmanuel Vadot compatible = "arm,arm11mp-gic"; 665f126890aSEmmanuel Vadot #interrupt-cells = <3>; 666f126890aSEmmanuel Vadot #address-cells = <1>; 667f126890aSEmmanuel Vadot interrupt-controller; 668f126890aSEmmanuel Vadot reg = <0x1e001000 0x1000>, 669f126890aSEmmanuel Vadot <0x1e000000 0x100>; 670f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 671f126890aSEmmanuel Vadot interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>; 672f126890aSEmmanuel Vadot }; 673f126890aSEmmanuel Vadot 674f126890aSEmmanuel Vadot /* SMSC 9118 ethernet with PHY and EEPROM */ 675f126890aSEmmanuel Vadot ethernet@4e000000 { 676f126890aSEmmanuel Vadot compatible = "smsc,lan9118", "smsc,lan9115"; 677f126890aSEmmanuel Vadot reg = <0x4e000000 0x10000>; 678f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 679f126890aSEmmanuel Vadot interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; 680f126890aSEmmanuel Vadot phy-mode = "mii"; 681f126890aSEmmanuel Vadot reg-io-width = <4>; 682f126890aSEmmanuel Vadot smsc,irq-active-high; 683f126890aSEmmanuel Vadot smsc,irq-push-pull; 684f126890aSEmmanuel Vadot vdd33a-supply = <&veth>; 685f126890aSEmmanuel Vadot vddvario-supply = <&veth>; 686f126890aSEmmanuel Vadot }; 687f126890aSEmmanuel Vadot 688f126890aSEmmanuel Vadot usb@4f000000 { 689f126890aSEmmanuel Vadot compatible = "nxp,usb-isp1761"; 690f126890aSEmmanuel Vadot reg = <0x4f000000 0x20000>; 691f126890aSEmmanuel Vadot interrupt-parent = <&intc_tc11mp>; 692f126890aSEmmanuel Vadot interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>; 693f126890aSEmmanuel Vadot dr_mode = "peripheral"; 694f126890aSEmmanuel Vadot }; 695f126890aSEmmanuel Vadot }; 696f126890aSEmmanuel Vadot}; 697