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