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