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

ARM: dts: ixp4xx: Add Arcom Vulcan device tree

This adds a device tree for the Arcom Vulcan IXP42x board.

Cc: Marc Zyngier <maz@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

+169 -1
+2 -1
arch/arm/boot/dts/Makefile
··· 245 245 intel-ixp42x-iomega-nas100d.dtb \ 246 246 intel-ixp42x-dlink-dsm-g600.dtb \ 247 247 intel-ixp43x-gateworks-gw2358.dtb \ 248 - intel-ixp42x-netgear-wg302v2.dtb 248 + intel-ixp42x-netgear-wg302v2.dtb \ 249 + intel-ixp42x-arcom-vulcan.dtb 249 250 dtb-$(CONFIG_ARCH_KEYSTONE) += \ 250 251 keystone-k2hk-evm.dtb \ 251 252 keystone-k2l-evm.dtb \
+167
arch/arm/boot/dts/intel-ixp42x-arcom-vulcan.dts
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for the Arcom/Eurotech Vulcan board. 4 + * This board is a single board computer in the PC/104 form factor based on 5 + * IXP425, and was released around 2005. It previously had the name "Mercury". 6 + */ 7 + 8 + /dts-v1/; 9 + 10 + #include "intel-ixp42x.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + model = "Arcom/Eurotech Vulcan"; 15 + compatible = "arcom,vulcan", "intel,ixp42x"; 16 + #address-cells = <1>; 17 + #size-cells = <1>; 18 + 19 + memory@0 { 20 + device_type = "memory"; 21 + reg = <0x00000000 0x4000000>; 22 + }; 23 + 24 + chosen { 25 + /* CHECKME: using a harddrive at /dev/sda1 as rootfs by default */ 26 + bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootfstype=ext4 rootwait"; 27 + stdout-path = "uart0:115200n8"; 28 + }; 29 + 30 + aliases { 31 + serial0 = &uart0; 32 + }; 33 + 34 + onewire { 35 + compatible = "w1-gpio"; 36 + gpios = <&gpio0 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 37 + }; 38 + 39 + soc { 40 + bus@c4000000 { 41 + flash@0,0 { 42 + compatible = "intel,ixp4xx-flash", "cfi-flash"; 43 + bank-width = <2>; 44 + /* 45 + * 32 MB of Flash in 0x20000 byte blocks 46 + * mapped in at CS0 and CS1. 47 + * 48 + * The documentation mentions the existence 49 + * of a 16MB version, which we conveniently 50 + * ignore. Shout if you own one! 51 + */ 52 + reg = <0 0x00000000 0x2000000>; 53 + 54 + /* Expansion bus settings */ 55 + intel,ixp4xx-eb-t3 = <3>; 56 + intel,ixp4xx-eb-byte-access-on-halfword = <1>; 57 + intel,ixp4xx-eb-write-enable = <1>; 58 + 59 + partitions { 60 + compatible = "redboot-fis"; 61 + fis-index-block = <0x1ff>; 62 + }; 63 + }; 64 + sram@2,0 { 65 + /* 256 KB SDRAM memory at CS2 */ 66 + compatible = "shared-dma-pool"; 67 + device_type = "memory"; 68 + reg = <2 0x00000000 0x40000>; 69 + no-map; 70 + /* Expansion bus settings */ 71 + intel,ixp4xx-eb-t3 = <1>; 72 + intel,ixp4xx-eb-t4 = <2>; 73 + intel,ixp4xx-eb-ahb-split-transfers = <1>; 74 + intel,ixp4xx-eb-write-enable = <1>; 75 + intel,ixp4xx-eb-byte-access = <1>; 76 + }; 77 + serial@3,0 { 78 + /* 79 + * 8250-compatible Exar XR16L2551 2 x UART 80 + * 81 + * CHECKME: if special tweaks are needed, then fix the 82 + * operating system to handle it. 83 + */ 84 + compatible = "exar,xr16l2551", "ns8250"; 85 + reg = <3 0x00000000 0x10>; 86 + interrupt-parent = <&gpio0>; 87 + interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 88 + clock-frequency = <1843200>; 89 + /* Expansion bus settings */ 90 + intel,ixp4xx-eb-t3 = <3>; 91 + intel,ixp4xx-eb-cycle-type = <1>; /* Motorola cycles */ 92 + intel,ixp4xx-eb-write-enable = <1>; 93 + intel,ixp4xx-eb-byte-access = <1>; 94 + }; 95 + gpio1: gpio@4,0 { 96 + /* 97 + * MMIO GPIO in one byte 98 + */ 99 + compatible = "arcom,vulcan-gpio"; 100 + reg = <4 0x00000000 0x1>; 101 + /* Expansion bus settings */ 102 + intel,ixp4xx-eb-write-enable = <1>; 103 + intel,ixp4xx-eb-byte-access = <1>; 104 + }; 105 + watchdog@5,0 { 106 + compatible = "maxim,max6369"; 107 + reg = <5 0x00000000 0x1>; 108 + /* Expansion bus settings */ 109 + intel,ixp4xx-eb-write-enable = <1>; 110 + intel,ixp4xx-eb-byte-access = <1>; 111 + }; 112 + }; 113 + 114 + pci@c0000000 { 115 + status = "ok"; 116 + 117 + /* 118 + * Taken from Vulcan PCI boardfile. 119 + * 120 + * We have 2 slots (IDSEL) 1 and 2 with one dedicated interrupt 121 + * per slot. This interrupt is shared (OR:ed) by all four pins. 122 + */ 123 + interrupt-map = 124 + /* IDSEL 1 */ 125 + <0x0800 0 0 1 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 2 */ 126 + <0x0800 0 0 2 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 2 */ 127 + <0x0800 0 0 3 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 2 */ 128 + <0x0800 0 0 4 &gpio0 2 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 2 */ 129 + /* IDSEL 2 */ 130 + <0x1000 0 0 1 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 3 */ 131 + <0x1000 0 0 2 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 3 */ 132 + <0x1000 0 0 3 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 3 */ 133 + <0x1000 0 0 4 &gpio0 3 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 2 is irq 3 */ 134 + }; 135 + 136 + /* EthB */ 137 + ethernet@c8009000 { 138 + status = "ok"; 139 + queue-rx = <&qmgr 3>; 140 + queue-txready = <&qmgr 20>; 141 + phy-mode = "rgmii"; 142 + phy-handle = <&phy0>; 143 + 144 + mdio { 145 + #address-cells = <1>; 146 + #size-cells = <0>; 147 + 148 + phy0: ethernet-phy@0 { 149 + reg = <0>; 150 + }; 151 + 152 + phy1: ethernet-phy@1 { 153 + reg = <1>; 154 + }; 155 + }; 156 + }; 157 + 158 + /* EthC */ 159 + ethernet@c800a000 { 160 + status = "ok"; 161 + queue-rx = <&qmgr 4>; 162 + queue-txready = <&qmgr 21>; 163 + phy-mode = "rgmii"; 164 + phy-handle = <&phy1>; 165 + }; 166 + }; 167 + };