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

ARM: dts: Add some initial IXP4xx device trees

This adds a device tree for the IXP4xx-based Linksys
NSLU2 and Gateworks GW2358 which encompass the Gateworks
Cambria family.

These will be the first IXP4xx device tree platforms.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

+338
+3
arch/arm/boot/dts/Makefile
··· 229 229 dtb-$(CONFIG_ARCH_INTEGRATOR) += \ 230 230 integratorap.dtb \ 231 231 integratorcp.dtb 232 + dtb-$(CONFIG_ARCH_IXP4XX) += \ 233 + intel-ixp42x-linksys-nslu2.dtb \ 234 + intel-ixp43x-gateworks-gw2358.dtb 232 235 dtb-$(CONFIG_ARCH_KEYSTONE) += \ 233 236 keystone-k2hk-evm.dtb \ 234 237 keystone-k2l-evm.dtb \
+109
arch/arm/boot/dts/intel-ixp42x-linksys-nslu2.dts
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for Linksys NSLU2 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "intel-ixp42x.dtsi" 9 + #include <dt-bindings/input/input.h> 10 + 11 + / { 12 + model = "Linksys NSLU2 (Network Storage Link for USB 2.0 Disk Drives)"; 13 + compatible = "linksys,nslu2", "intel,ixp42x"; 14 + #address-cells = <1>; 15 + #size-cells = <1>; 16 + 17 + memory@0 { 18 + /* 32 MB SDRAM */ 19 + device_type = "memory"; 20 + reg = <0x00000000 0x2000000>; 21 + }; 22 + 23 + chosen { 24 + bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait"; 25 + stdout-path = "uart0:115200n8"; 26 + }; 27 + 28 + aliases { 29 + serial0 = &uart0; 30 + }; 31 + 32 + leds { 33 + compatible = "gpio-leds"; 34 + led-status { 35 + label = "nslu2:red:status"; 36 + gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>; 37 + default-state = "on"; 38 + linux,default-trigger = "heartbeat"; 39 + }; 40 + led-ready { 41 + label = "nslu2:green:ready"; 42 + gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>; 43 + default-state = "on"; 44 + }; 45 + led-disk-1 { 46 + label = "nslu2:green:disk-1"; 47 + gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; 48 + default-state = "off"; 49 + }; 50 + led-disk-2 { 51 + label = "nslu2:green:disk-2"; 52 + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 53 + default-state = "off"; 54 + }; 55 + }; 56 + 57 + gpio_keys { 58 + compatible = "gpio-keys"; 59 + 60 + button-power { 61 + wakeup-source; 62 + linux,code = <KEY_POWER>; 63 + label = "power"; 64 + gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; 65 + }; 66 + button-reset { 67 + wakeup-source; 68 + linux,code = <KEY_ESC>; 69 + label = "reset"; 70 + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; 71 + }; 72 + }; 73 + 74 + i2c { 75 + compatible = "i2c-gpio"; 76 + sda-gpios = <&gpio0 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 77 + scl-gpios = <&gpio0 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 78 + #address-cells = <1>; 79 + #size-cells = <0>; 80 + 81 + rtc@6f { 82 + compatible = "xicor,x1205"; 83 + reg = <0x6f>; 84 + }; 85 + }; 86 + 87 + gpio-poweroff { 88 + compatible = "gpio-poweroff"; 89 + gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; 90 + timeout-ms = <5000>; 91 + }; 92 + 93 + /* The first 16MB region on the expansion bus */ 94 + flash@50000000 { 95 + compatible = "intel,ixp4xx-flash", "cfi-flash"; 96 + bank-width = <2>; 97 + /* 98 + * 8 MB of Flash in 0x20000 byte blocks 99 + * mapped in at 0x50000000 100 + */ 101 + reg = <0x50000000 0x800000>; 102 + 103 + partitions { 104 + compatible = "redboot-fis"; 105 + /* Eraseblock at 0x7e0000 */ 106 + fis-index-block = <0x3f>; 107 + }; 108 + }; 109 + };
+25
arch/arm/boot/dts/intel-ixp42x.dtsi
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for Intel XScale Network Processors 4 + * in the IXP 42x series. This series has 32 interrupts. 5 + */ 6 + #include "intel-ixp4xx.dtsi" 7 + 8 + / { 9 + soc { 10 + interrupt-controller@c8003000 { 11 + compatible = "intel,ixp42x-interrupt"; 12 + }; 13 + 14 + /* 15 + * This is the USB Device Mode (UDC) controller, which is used 16 + * to present the IXP4xx as a device on a USB bus. 17 + */ 18 + usb@c800b000 { 19 + compatible = "intel,ixp4xx-udc"; 20 + reg = <0xc800b000 0x1000>; 21 + interrupts = <12 IRQ_TYPE_LEVEL_HIGH>; 22 + status = "disabled"; 23 + }; 24 + }; 25 + };
+94
arch/arm/boot/dts/intel-ixp43x-gateworks-gw2358.dts
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for Gateworks IXP43x-based Cambria GW2358 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "intel-ixp43x.dtsi" 9 + 10 + / { 11 + model = "Gateworks Cambria GW2358"; 12 + compatible = "gateworks,gw2358", "intel,ixp43x"; 13 + #address-cells = <1>; 14 + #size-cells = <1>; 15 + 16 + memory@0 { 17 + /* 128 MB SDRAM */ 18 + device_type = "memory"; 19 + reg = <0x00000000 0x8000000>; 20 + }; 21 + 22 + chosen { 23 + bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait"; 24 + stdout-path = "uart0:115200n8"; 25 + }; 26 + 27 + aliases { 28 + serial0 = &uart0; 29 + }; 30 + 31 + leds { 32 + compatible = "gpio-leds"; 33 + led-user { 34 + label = "gw2358:green:LED"; 35 + gpios = <&pld1 0 GPIO_ACTIVE_LOW>; 36 + default-state = "on"; 37 + linux,default-trigger = "heartbeat"; 38 + }; 39 + }; 40 + 41 + 42 + i2c { 43 + compatible = "i2c-gpio"; 44 + sda-gpios = <&gpio0 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 45 + scl-gpios = <&gpio0 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 46 + #address-cells = <1>; 47 + #size-cells = <0>; 48 + 49 + hwmon@28 { 50 + compatible = "adi,ad7418"; 51 + reg = <0x28>; 52 + }; 53 + rtc: ds1672@68 { 54 + compatible = "dallas,ds1672"; 55 + reg = <0x68>; 56 + }; 57 + eeprom@51 { 58 + compatible = "atmel,24c08"; 59 + reg = <0x51>; 60 + pagesize = <16>; 61 + size = <1024>; 62 + read-only; 63 + }; 64 + pld0: pld@56 { 65 + compatible = "gateworks,pld-gpio"; 66 + reg = <0x56>; 67 + gpio-controller; 68 + #gpio-cells = <2>; 69 + }; 70 + /* This PLD just handles the LED and user button */ 71 + pld1: pld@57 { 72 + compatible = "gateworks,pld-gpio"; 73 + reg = <0x57>; 74 + gpio-controller; 75 + #gpio-cells = <2>; 76 + }; 77 + }; 78 + 79 + flash@50000000 { 80 + compatible = "intel,ixp4xx-flash", "cfi-flash"; 81 + bank-width = <2>; 82 + /* 83 + * 32 MB of Flash in 0x20000 byte blocks 84 + * mapped in at 0x50000000 85 + */ 86 + reg = <0x50000000 0x2000000>; 87 + 88 + partitions { 89 + compatible = "redboot-fis"; 90 + /* Eraseblock at 0x1fe0000 */ 91 + fis-index-block = <0xff>; 92 + }; 93 + }; 94 + };
+15
arch/arm/boot/dts/intel-ixp43x.dtsi
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for Intel XScale Network Processors 4 + * in the IXP 43x series. This series has 64 interrupts and adds a few more 5 + * peripherals over the 42x series. 6 + */ 7 + #include "intel-ixp4xx.dtsi" 8 + 9 + / { 10 + soc { 11 + interrupt-controller@c8003000 { 12 + compatible = "intel,ixp43x-interrupt"; 13 + }; 14 + }; 15 + };
+34
arch/arm/boot/dts/intel-ixp45x-ixp46x.dtsi
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for Intel XScale Network Processors 4 + * in the IXP45x and IXP46x series. This series has 64 interrupts and adds a 5 + * few more peripherals over the 42x and 43x series so this extends the 6 + * basic IXP4xx DTSI. 7 + */ 8 + #include "intel-ixp4xx.dtsi" 9 + 10 + / { 11 + soc { 12 + interrupt-controller@c8003000 { 13 + compatible = "intel,ixp43x-interrupt"; 14 + }; 15 + 16 + /* 17 + * This is the USB Device Mode (UDC) controller, which is used 18 + * to present the IXP4xx as a device on a USB bus. 19 + */ 20 + usb@c800b000 { 21 + compatible = "intel,ixp4xx-udc"; 22 + reg = <0xc800b000 0x1000>; 23 + interrupts = <12 IRQ_TYPE_LEVEL_HIGH>; 24 + status = "disabled"; 25 + }; 26 + 27 + i2c@c8011000 { 28 + compatible = "intel,ixp4xx-i2c"; 29 + reg = <0xc8011000 0x18>; 30 + interrupts = <33 IRQ_TYPE_LEVEL_HIGH>; 31 + status = "disabled"; 32 + }; 33 + }; 34 + };
+58
arch/arm/boot/dts/intel-ixp4xx.dtsi
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for Intel XScale Network Processors 4 + * in the IXP 4xx series. 5 + */ 6 + #include <dt-bindings/interrupt-controller/irq.h> 7 + #include <dt-bindings/gpio/gpio.h> 8 + 9 + / { 10 + soc { 11 + #address-cells = <1>; 12 + #size-cells = <1>; 13 + ranges; 14 + compatible = "simple-bus"; 15 + interrupt-parent = <&intcon>; 16 + 17 + uart0: serial@c8000000 { 18 + compatible = "intel,xscale-uart"; 19 + reg = <0xc8000000 0x1000>; 20 + /* 21 + * The reg-offset and reg-shift is a side effect 22 + * of running the platform in big endian mode. 23 + */ 24 + reg-offset = <3>; 25 + reg-shift = <2>; 26 + interrupts = <15 IRQ_TYPE_LEVEL_HIGH>; 27 + clock-frequency = <14745600>; 28 + no-loopback-test; 29 + }; 30 + 31 + gpio0: gpio@c8004000 { 32 + compatible = "intel,ixp4xx-gpio"; 33 + reg = <0xc8004000 0x1000>; 34 + gpio-controller; 35 + #gpio-cells = <2>; 36 + interrupt-controller; 37 + #interrupt-cells = <2>; 38 + }; 39 + 40 + intcon: interrupt-controller@c8003000 { 41 + /* 42 + * Note: no compatible string. The subvariant of the 43 + * chip needs to define what version it is. The 44 + * location of the interrupt controller is fixed in 45 + * memory across all variants. 46 + */ 47 + reg = <0xc8003000 0x100>; 48 + interrupt-controller; 49 + #interrupt-cells = <2>; 50 + }; 51 + 52 + timer@c8005000 { 53 + compatible = "intel,ixp4xx-timer"; 54 + reg = <0xc8005000 0x100>; 55 + interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; 56 + }; 57 + }; 58 + };