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

ARM: dts: ixp4xx: Add Intel IXDP425 etc reference designs

The IXDP425, IXCDP1100, KIXRP435 and IXDP465 are similar Intel reference
designs for IXP42x, IXP43x and IXP4[56]x.

This adds device trees for these so the board files can be migrated.

Cc: Deepak Saxena <dsaxena@plexity.net>
Cc: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

+313
+3
arch/arm/boot/dts/Makefile
··· 242 242 dtb-$(CONFIG_ARCH_IXP4XX) += \ 243 243 intel-ixp42x-linksys-nslu2.dtb \ 244 244 intel-ixp42x-welltech-epbx100.dtb \ 245 + intel-ixp42x-ixdp425.dtb \ 246 + intel-ixp43x-kixrp435.dtb \ 247 + intel-ixp46x-ixdp465.dtb \ 245 248 intel-ixp42x-iomega-nas100d.dtb \ 246 249 intel-ixp42x-dlink-dsm-g600.dtb \ 247 250 intel-ixp42x-gateworks-gw2348.dtb \
+72
arch/arm/boot/dts/intel-ixp42x-ixdp425.dts
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for the Intel IXDP425 also known as IXCDP1100 Control Plane 4 + * processor reference design. 5 + * 6 + * This platform has the codename "Richfield". 7 + * 8 + * This machine is based on a 533 MHz IXP425. 9 + */ 10 + 11 + /dts-v1/; 12 + 13 + #include "intel-ixp42x.dtsi" 14 + #include "intel-ixp4xx-reference-design.dtsi" 15 + #include <dt-bindings/input/input.h> 16 + 17 + / { 18 + model = "Intel IXDP425/IXCDP1100 Richfield Reference Design"; 19 + compatible = "intel,ixdp425", "intel,ixp42x"; 20 + #address-cells = <1>; 21 + #size-cells = <1>; 22 + 23 + soc { 24 + bus@c4000000 { 25 + flash@0,0 { 26 + compatible = "intel,ixp4xx-flash", "cfi-flash"; 27 + bank-width = <2>; 28 + /* Enable writes on the expansion bus */ 29 + intel,ixp4xx-eb-write-enable = <1>; 30 + /* 16 MB of Flash mapped in at CS0 */ 31 + reg = <0 0x00000000 0x1000000>; 32 + 33 + partitions { 34 + compatible = "redboot-fis"; 35 + /* Eraseblock at 0x0fe0000 */ 36 + fis-index-block = <0x7f>; 37 + }; 38 + }; 39 + }; 40 + 41 + /* EthB */ 42 + ethernet@c8009000 { 43 + status = "ok"; 44 + queue-rx = <&qmgr 3>; 45 + queue-txready = <&qmgr 20>; 46 + phy-mode = "rgmii"; 47 + phy-handle = <&phy0>; 48 + 49 + mdio { 50 + #address-cells = <1>; 51 + #size-cells = <0>; 52 + 53 + phy0: ethernet-phy@0 { 54 + reg = <0>; 55 + }; 56 + 57 + phy1: ethernet-phy@1 { 58 + reg = <1>; 59 + }; 60 + }; 61 + }; 62 + 63 + /* EthC */ 64 + ethernet@c800a000 { 65 + status = "ok"; 66 + queue-rx = <&qmgr 4>; 67 + queue-txready = <&qmgr 21>; 68 + phy-mode = "rgmii"; 69 + phy-handle = <&phy1>; 70 + }; 71 + }; 72 + };
+68
arch/arm/boot/dts/intel-ixp43x-kixrp435.dts
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for the Intel KIXRP435 Control Plane 4 + * processor reference design. 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "intel-ixp43x.dtsi" 10 + #include "intel-ixp4xx-reference-design.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + model = "Intel KIXRP435 Reference Design"; 15 + compatible = "intel,kixrp435", "intel,ixp43x"; 16 + #address-cells = <1>; 17 + #size-cells = <1>; 18 + 19 + soc { 20 + bus@c4000000 { 21 + flash@0,0 { 22 + compatible = "intel,ixp4xx-flash", "cfi-flash"; 23 + bank-width = <2>; 24 + /* Enable writes on the expansion bus */ 25 + intel,ixp4xx-eb-write-enable = <1>; 26 + /* 16 MB of Flash mapped in at CS0 */ 27 + reg = <0 0x00000000 0x1000000>; 28 + 29 + partitions { 30 + compatible = "redboot-fis"; 31 + /* Eraseblock at 0x0fe0000 */ 32 + fis-index-block = <0x7f>; 33 + }; 34 + }; 35 + }; 36 + 37 + /* CHECKME: ethernet set-up taken from Gateworks Cambria */ 38 + ethernet@c800a000 { 39 + status = "ok"; 40 + queue-rx = <&qmgr 4>; 41 + queue-txready = <&qmgr 21>; 42 + phy-mode = "rgmii"; 43 + phy-handle = <&phy1>; 44 + 45 + mdio { 46 + #address-cells = <1>; 47 + #size-cells = <0>; 48 + 49 + phy1: ethernet-phy@1 { 50 + reg = <1>; 51 + }; 52 + 53 + phy2: ethernet-phy@2 { 54 + reg = <2>; 55 + }; 56 + }; 57 + }; 58 + 59 + ethernet@c800c000 { 60 + status = "ok"; 61 + queue-rx = <&qmgr 2>; 62 + queue-txready = <&qmgr 19>; 63 + phy-mode = "rgmii"; 64 + phy-handle = <&phy2>; 65 + intel,npe-handle = <&npe 0>; 66 + }; 67 + }; 68 + };
+38
arch/arm/boot/dts/intel-ixp46x-ixdp465.dts
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree file for the Intel IXDP465 Control Plane processor reference 4 + * design, codename "BMP". 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "intel-ixp45x-ixp46x.dtsi" 10 + #include "intel-ixp4xx-reference-design.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + model = "Intel IXDP465 BMP Reference Design"; 15 + compatible = "intel,ixdp465", "intel,ixp46x"; 16 + #address-cells = <1>; 17 + #size-cells = <1>; 18 + 19 + soc { 20 + bus@c4000000 { 21 + flash@0,0 { 22 + compatible = "intel,ixp4xx-flash", "cfi-flash"; 23 + bank-width = <2>; 24 + /* Enable writes on the expansion bus */ 25 + intel,ixp4xx-eb-write-enable = <1>; 26 + /* 32 MB of Flash mapped in at CS0 and CS1 */ 27 + reg = <0 0x00000000 0x2000000>; 28 + 29 + partitions { 30 + compatible = "redboot-fis"; 31 + /* Eraseblock at 0x1fe0000 */ 32 + fis-index-block = <0xff>; 33 + }; 34 + }; 35 + }; 36 + /* TODO: configure ethernet etc */ 37 + }; 38 + };
+132
arch/arm/boot/dts/intel-ixp4xx-reference-design.dtsi
··· 1 + // SPDX-License-Identifier: ISC 2 + /* 3 + * Device Tree include file for Intel reference designs for the 4 + * XScale Network Processors in the IXP 4xx series. Common device 5 + * set-up for IXDP425, IXCDP1100, KIXRP435 and IXDP465. 6 + */ 7 + 8 + / { 9 + memory@0 { 10 + /* 11 + * The board supports up to 256 MB of memory. Here we put in 12 + * 64 MB and this may be modified by the boot loader. 13 + */ 14 + device_type = "memory"; 15 + reg = <0x00000000 0x4000000>; 16 + }; 17 + 18 + chosen { 19 + bootargs = "console=ttyS0,115200n8"; 20 + stdout-path = "uart0:115200n8"; 21 + }; 22 + 23 + aliases { 24 + serial0 = &uart0; 25 + }; 26 + 27 + i2c { 28 + compatible = "i2c-gpio"; 29 + sda-gpios = <&gpio0 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 30 + scl-gpios = <&gpio0 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 31 + #address-cells = <1>; 32 + #size-cells = <0>; 33 + 34 + eeprom@50 { 35 + /* 36 + * Philips PCF8582C-2T/03 512byte I2C EEPROM 37 + * should behave like an Atmel 24c04. 38 + */ 39 + compatible = "atmel,24c04"; 40 + reg = <0x50>; 41 + pagesize = <16>; 42 + size = <512>; 43 + read-only; 44 + }; 45 + }; 46 + 47 + soc { 48 + bus@c4000000 { 49 + /* Flash memory defined per-variant */ 50 + nand-controller@3,0 { 51 + /* Some designs have a NAND on CS3 enable it here if present */ 52 + status = "disabled"; 53 + 54 + /* 55 + * gen_nand needs to be extended and documented to get 56 + * command byte = 1 and address byte = 2 from the device 57 + * tree. 58 + */ 59 + compatible = "gen_nand"; 60 + 61 + /* Expansion bus set-up */ 62 + intel,ixp4xx-eb-t1 = <0>; 63 + intel,ixp4xx-eb-t2 = <0>; 64 + intel,ixp4xx-eb-t3 = <1>; // 1 cycle extra strobe phase 65 + intel,ixp4xx-eb-t4 = <0>; 66 + intel,ixp4xx-eb-t5 = <0>; 67 + intel,ixp4xx-eb-cycle-type = <0>; // Intel cycle type 68 + intel,ixp4xx-eb-byte-access-on-halfword = <0>; 69 + intel,ixp4xx-eb-mux-address-and-data = <0>; 70 + intel,ixp4xx-eb-ahb-split-transfers = <0>; 71 + intel,ixp4xx-eb-write-enable = <1>; 72 + intel,ixp4xx-eb-byte-access = <1>; 73 + 74 + /* 512 bytes memory window */ 75 + reg = <3 0x00000000 0x200>; 76 + nand-on-flash-bbt; 77 + nand-ecc-mode = "soft_bch"; 78 + nand-ecc-step-size = <512>; 79 + nand-ecc-strength = <4>; 80 + nce-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; /* NCE */ 81 + 82 + label = "ixp400 NAND"; 83 + 84 + partitions { 85 + compatible = "fixed-partitions"; 86 + #address-cells = <1>; 87 + #size-cells = <1>; 88 + 89 + fs@0 { 90 + label = "ixp400 NAND FS 0"; 91 + reg = <0x0 0x800000>; 92 + }; 93 + fs@800000 { 94 + label = "ixp400 NAND FS 1"; 95 + reg = <0x800000 0x0>; 96 + }; 97 + }; 98 + }; 99 + }; 100 + 101 + pci@c0000000 { 102 + status = "ok"; 103 + 104 + /* 105 + * Taken from IXDP425 PCI boardfile. 106 + * PCI slots on the BIXMB425BD base card. 107 + * We have up to 4 slots (IDSEL) with 4 swizzled IRQs. 108 + */ 109 + interrupt-map = 110 + /* IDSEL 1 */ 111 + <0x0800 0 0 1 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 11 */ 112 + <0x0800 0 0 2 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 10 */ 113 + <0x0800 0 0 3 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 9 */ 114 + <0x0800 0 0 4 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 8 */ 115 + /* IDSEL 2 */ 116 + <0x1000 0 0 1 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 10 */ 117 + <0x1000 0 0 2 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 9 */ 118 + <0x1000 0 0 3 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 8 */ 119 + <0x1000 0 0 4 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 2 is irq 11 */ 120 + /* IDSEL 3 */ 121 + <0x1800 0 0 1 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 3 is irq 9 */ 122 + <0x1800 0 0 2 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 3 is irq 8 */ 123 + <0x1800 0 0 3 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 3 is irq 11 */ 124 + <0x1800 0 0 4 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 3 is irq 10 */ 125 + /* IDSEL 4 */ 126 + <0x2000 0 0 1 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 4 is irq 8 */ 127 + <0x2000 0 0 2 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 4 is irq 11 */ 128 + <0x2000 0 0 3 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 4 is irq 10 */ 129 + <0x2000 0 0 4 &gpio0 9 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 4 is irq 9 */ 130 + }; 131 + }; 132 + };