ARM: dts: armada388-clearfog: fix SPI flash #size-cells
PATCH 1/1 ARM: dts: armada388-clearfog: fix SPI flash #size-cells
The SPI flash #size-cells is specified in the binding documentation to have value 1, but we were setting it to zero. This wasn't causing any problem as we do not list any partitions, but it's worth specifying correctly if we're going to specify it at all.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/armada-388-clearfog.dts +1 -1
@@ -437,7 +437,7 @@ spi-flash at 0 { #address-cells = <1>; - #size-cells = <0>; + #size-cells = <1>; compatible = "w25q32", "jedec,spi-nor"; reg = <0>; /* Chip select 0 */ spi-max-frequency = <3000000>;
Signature · 1 line
2.7.4
cover ARM: dts: armada388: Introduce Clearfog Base DT
This patch series, based upon the previously submitted fix for the SPI flash, reworks the Clearfog DT files to add support for the SolidRun Clearfog Base platform.
The conventional model is now known as the "Clearfog Pro" module, which has the DSA switch and two PCIe sockets. The base model is a smaller board without the DSA switch, replacing it with a second copper gigabit port, and only one PCIe socket.
We retain the original DT file (named armada-388-clearfog.dtb) for compatibility with existing installations - not only the filename, but also the board name exposed in userspace.
arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/armada-388-clearfog-base.dts | 94 ++++++ arch/arm/boot/dts/armada-388-clearfog-pro.dts | 55 ++++ arch/arm/boot/dts/armada-388-clearfog.dts | 364 ++++----------------- arch/arm/boot/dts/armada-388-clearfog.dtsi | 310 ++++++++++++++++++ .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 21 ++ 6 files changed, 548 insertions(+), 298 deletions(-) create mode 100644 arch/arm/boot/dts/armada-388-clearfog-base.dts create mode 100644 arch/arm/boot/dts/armada-388-clearfog-pro.dts create mode 100644 arch/arm/boot/dts/armada-388-clearfog.dtsi
PATCH 1/9 ARM: dts: armada388-clearfog: move SPI flash into microsom
The optional SPI flash is fitted to the microsom, not the clearfog board, so it should be specified in the microsom DTS include file.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 14 ++------------ arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 12 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dts +2 -12
@@ -423,9 +423,8 @@ &spi1 { /* - * We don't seem to have the W25Q32 on the - * A1 Rev 2.0 boards, so disable SPI. - * CS0: W25Q32 (doesn't appear to be present) + * Add SPI CS pins for clearfog: + * CS0: W25Q32 (not populated on uSOM) * CS1: * CS2: mikrobus */
@@ -434,13 +433,4 @@ &mikro_spi_pins>; pinctrl-names = "default"; status = "okay"; - - spi-flash at 0 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "w25q32", "jedec,spi-nor"; - reg = <0>; /* Chip select 0 */ - spi-max-frequency = <3000000>; - status = "disabled"; - }; };
arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi +14 -0
@@ -126,3 +126,17 @@ }; }; + +&spi1 { + /* The microsom has an optional W25Q32 on board, connected to CS0 */ + pinctrl-0 = <&spi1_pins>; + + w25q32: spi-flash at 0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "w25q32", "jedec,spi-nor"; + reg = <0>; /* Chip select 0 */ + spi-max-frequency = <3000000>; + status = "disabled"; + }; +};
Signature · 1 line
2.7.4
PATCH 2/9 ARM: dts: armada388-clearfog: move sdhci pinctrl node to microsom
In reply to Russell KingMove the SDHCI pinctrl node to the microsom file - the microsom can have optional eMMC support which uses these same pinctrl settings, so it is sensible to have these here.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 8 +------- arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 7 +++++++ 2 files changed, 8 insertions(+), 7 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dts +1 -7
@@ -257,12 +257,6 @@ marvell,pins = "mpp20"; marvell,function = "gpio"; }; - clearfog_sdhci_pins: clearfog-sdhci-pins { - marvell,pins = "mpp21", "mpp28", - "mpp37", "mpp38", - "mpp39", "mpp40"; - marvell,function = "sd0"; - }; clearfog_spi1_cs_pins: spi1-cs-pins { marvell,pins = "mpp55"; marvell,function = "spi1";
@@ -300,7 +294,7 @@ bus-width = <4>; cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; no-1-8-v; - pinctrl-0 = <&clearfog_sdhci_pins + pinctrl-0 = <µsom_sdhci_pins &clearfog_sdhci_cd_pins>; pinctrl-names = "default"; status = "okay";
arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi +7 -0
@@ -99,6 +99,13 @@ marvell,pins = "mpp45"; marvell,function = "ref"; }; + /* Optional eMMC */ + microsom_sdhci_pins: microsom-sdhci-pins { + marvell,pins = "mpp21", "mpp28", + "mpp37", "mpp38", + "mpp39", "mpp40"; + marvell,function = "sd0"; + }; }; rtc at a3800 {
Signature · 1 line
2.7.4
PATCH 3/9 ARM: dts: armada388-clearfog: split clearfog DTS file
In reply to Russell KingThere are two versions of the clearfog - a base and a pro model. The base model has an additional PHY on eth1, replacing the DSA switch on the pro model. MPP assignments are slightly different. The base model also omits the second PCIe, and footprint for a PIC microcontroller.
In order to cater for these differences, move all the existing clearfog support to a dtsi file before starting to modify it, to make the following changes more clear.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 378 +------------------------ arch/arm/boot/dts/armada-388-clearfog.dtsi | 425 +++++++++++++++++++++++++++++ 2 files changed, 427 insertions(+), 376 deletions(-) create mode 100644 arch/arm/boot/dts/armada-388-clearfog.dtsi
arch/arm/boot/dts/armada-388-clearfog.dts +2 -376
@@ -1,5 +1,5 @@ /* - * Device Tree file for SolidRun Clearfog revision A1 rev 2.0 (88F6828) + * Device Tree file for SolidRun Clearfog Pro revision A1 rev 2.0 (88F6828) * * Copyright (C) 2015 Russell King *
@@ -47,384 +47,10 @@ */ /dts-v1/; -#include "armada-388.dtsi" -#include "armada-38x-solidrun-microsom.dtsi" +#include "armada-388-clearfog.dtsi" / { model = "SolidRun Clearfog A1"; compatible = "solidrun,clearfog-a1", "marvell,armada388", "marvell,armada385", "marvell,armada380"; - - aliases { - /* So that mvebu u-boot can update the MAC addresses */ - ethernet1 = ð0; - ethernet2 = ð1; - ethernet3 = ð2; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - reg_3p3v: regulator-3p3v { - compatible = "regulator-fixed"; - regulator-name = "3P3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - }; - - soc { - internal-regs { - ethernet at 30000 { - phy-mode = "sgmii"; - buffer-manager = <&bm>; - bm,pool-long = <2>; - bm,pool-short = <1>; - status = "okay"; - - fixed-link { - speed = <1000>; - full-duplex; - }; - }; - - ethernet at 34000 { - phy-mode = "sgmii"; - buffer-manager = <&bm>; - bm,pool-long = <3>; - bm,pool-short = <1>; - status = "okay"; - - fixed-link { - speed = <1000>; - full-duplex; - }; - }; - - i2c at 11000 { - /* Is there anything on this? */ - clock-frequency = <100000>; - pinctrl-0 = <&i2c0_pins>; - pinctrl-names = "default"; - status = "okay"; - - /* - * PCA9655 GPIO expander, up to 1MHz clock. - * 0-CON3 CLKREQ# - * 1-CON3 PERST# - * 2-CON2 PERST# - * 3-CON3 W_DISABLE - * 4-CON2 CLKREQ# - * 5-USB3 overcurrent - * 6-USB3 power - * 7-CON2 W_DISABLE - * 8-JP4 P1 - * 9-JP4 P4 - * 10-JP4 P5 - * 11-m.2 DEVSLP - * 12-SFP_LOS - * 13-SFP_TX_FAULT - * 14-SFP_TX_DISABLE - * 15-SFP_MOD_DEF0 - */ - expander0: gpio-expander at 20 { - /* - * This is how it should be: - * compatible = "onnn,pca9655", - * "nxp,pca9555"; - * but you can't do this because of - * the way I2C works. - */ - compatible = "nxp,pca9555"; - gpio-controller; - #gpio-cells = <2>; - reg = <0x20>; - - pcie1_0_clkreq { - gpio-hog; - gpios = <0 GPIO_ACTIVE_LOW>; - input; - line-name = "pcie1.0-clkreq"; - }; - pcie1_0_w_disable { - gpio-hog; - gpios = <3 GPIO_ACTIVE_LOW>; - output-low; - line-name = "pcie1.0-w-disable"; - }; - pcie2_0_clkreq { - gpio-hog; - gpios = <4 GPIO_ACTIVE_LOW>; - input; - line-name = "pcie2.0-clkreq"; - }; - pcie2_0_w_disable { - gpio-hog; - gpios = <7 GPIO_ACTIVE_LOW>; - output-low; - line-name = "pcie2.0-w-disable"; - }; - usb3_ilimit { - gpio-hog; - gpios = <5 GPIO_ACTIVE_LOW>; - input; - line-name = "usb3-current-limit"; - }; - usb3_power { - gpio-hog; - gpios = <6 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb3-power"; - }; - m2_devslp { - gpio-hog; - gpios = <11 GPIO_ACTIVE_HIGH>; - output-low; - line-name = "m.2 devslp"; - }; - sfp_los { - /* SFP loss of signal */ - gpio-hog; - gpios = <12 GPIO_ACTIVE_HIGH>; - input; - line-name = "sfp-los"; - }; - sfp_tx_fault { - /* SFP laser fault */ - gpio-hog; - gpios = <13 GPIO_ACTIVE_HIGH>; - input; - line-name = "sfp-tx-fault"; - }; - sfp_tx_disable { - /* SFP transmit disable */ - gpio-hog; - gpios = <14 GPIO_ACTIVE_HIGH>; - output-low; - line-name = "sfp-tx-disable"; - }; - sfp_mod_def0 { - /* SFP module present */ - gpio-hog; - gpios = <15 GPIO_ACTIVE_LOW>; - input; - line-name = "sfp-mod-def0"; - }; - }; - - /* The MCP3021 is 100kHz clock only */ - mikrobus_adc: mcp3021 at 4c { - compatible = "microchip,mcp3021"; - reg = <0x4c>; - }; - - /* Also something at 0x64 */ - }; - - i2c at 11100 { - /* - * Routed to SFP, mikrobus, and PCIe. - * SFP limits this to 100kHz, and requires - * an AT24C01A/02/04 with address pins tied - * low, which takes addresses 0x50 and 0x51. - * Mikrobus doesn't specify beyond an I2C - * bus being present. - * PCIe uses ARP to assign addresses, or - * 0x63-0x64. - */ - clock-frequency = <100000>; - pinctrl-0 = <&clearfog_i2c1_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - - pinctrl at 18000 { - clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins { - marvell,pins = "mpp46"; - marvell,function = "ref"; - }; - clearfog_dsa0_pins: clearfog-dsa0-pins { - marvell,pins = "mpp23", "mpp41"; - marvell,function = "gpio"; - }; - clearfog_i2c1_pins: i2c1-pins { - /* SFP, PCIe, mSATA, mikrobus */ - marvell,pins = "mpp26", "mpp27"; - marvell,function = "i2c1"; - }; - clearfog_sdhci_cd_pins: clearfog-sdhci-cd-pins { - marvell,pins = "mpp20"; - marvell,function = "gpio"; - }; - clearfog_spi1_cs_pins: spi1-cs-pins { - marvell,pins = "mpp55"; - marvell,function = "spi1"; - }; - mikro_pins: mikro-pins { - /* int: mpp22 rst: mpp29 */ - marvell,pins = "mpp22", "mpp29"; - marvell,function = "gpio"; - }; - mikro_spi_pins: mikro-spi-pins { - marvell,pins = "mpp43"; - marvell,function = "spi1"; - }; - mikro_uart_pins: mikro-uart-pins { - marvell,pins = "mpp24", "mpp25"; - marvell,function = "ua1"; - }; - rear_button_pins: rear-button-pins { - marvell,pins = "mpp34"; - marvell,function = "gpio"; - }; - }; - - sata at a8000 { - /* pinctrl? */ - status = "okay"; - }; - - sata at e0000 { - /* pinctrl? */ - status = "okay"; - }; - - sdhci at d8000 { - bus-width = <4>; - cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; - no-1-8-v; - pinctrl-0 = <µsom_sdhci_pins - &clearfog_sdhci_cd_pins>; - pinctrl-names = "default"; - status = "okay"; - vmmc = <®_3p3v>; - wp-inverted; - }; - - serial at 12100 { - /* mikrobus uart */ - pinctrl-0 = <&mikro_uart_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - - usb at 58000 { - /* CON3, nearest power. */ - status = "okay"; - }; - - usb3 at f0000 { - /* CON2, nearest CPU, USB2 only. */ - status = "okay"; - }; - - usb3 at f8000 { - /* CON7 */ - status = "okay"; - }; - }; - - pcie-controller { - status = "okay"; - /* - * The two PCIe units are accessible through - * the mini-PCIe connectors on the board. - */ - pcie at 2,0 { - /* Port 1, Lane 0. CON3, nearest power. */ - reset-gpios = <&expander0 1 GPIO_ACTIVE_LOW>; - status = "okay"; - }; - pcie at 3,0 { - /* Port 2, Lane 0. CON2, nearest CPU. */ - reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>; - status = "okay"; - }; - }; - }; - - dsa at 0 { - compatible = "marvell,dsa"; - dsa,ethernet = <ð1>; - dsa,mii-bus = <&mdio>; - pinctrl-0 = <&clearfog_dsa0_clk_pins &clearfog_dsa0_pins>; - pinctrl-names = "default"; - #address-cells = <2>; - #size-cells = <0>; - - switch at 0 { - #address-cells = <1>; - #size-cells = <0>; - reg = <4 0>; - - port at 0 { - reg = <0>; - label = "lan5"; - }; - - port at 1 { - reg = <1>; - label = "lan4"; - }; - - port at 2 { - reg = <2>; - label = "lan3"; - }; - - port at 3 { - reg = <3>; - label = "lan2"; - }; - - port at 4 { - reg = <4>; - label = "lan1"; - }; - - port at 5 { - reg = <5>; - label = "cpu"; - }; - - port at 6 { - /* 88E1512 external phy */ - reg = <6>; - label = "lan6"; - fixed-link { - speed = <1000>; - full-duplex; - }; - }; - }; - }; - - gpio-keys { - compatible = "gpio-keys"; - pinctrl-0 = <&rear_button_pins>; - pinctrl-names = "default"; - - button_0 { - /* The rear SW3 button */ - label = "Rear Button"; - gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; - linux,can-disable; - linux,code = <BTN_0>; - }; - }; -}; - -&spi1 { - /* - * Add SPI CS pins for clearfog: - * CS0: W25Q32 (not populated on uSOM) - * CS1: - * CS2: mikrobus - */ - pinctrl-0 = <&spi1_pins - &clearfog_spi1_cs_pins - &mikro_spi_pins>; - pinctrl-names = "default"; - status = "okay"; };
arch/arm/boot/dts/armada-388-clearfog.dtsi new file +425 -0
425 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 4/9 ARM: dts: armada388-clearfog: move DSA switch
In reply to Russell KingMove the DSA switch configuration to the clearfog .dts file as this is only present on the pro models.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 75 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/armada-388-clearfog.dtsi | 69 --------------------------- 2 files changed, 75 insertions(+), 69 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dts +75 -0
@@ -53,4 +53,79 @@ model = "SolidRun Clearfog A1"; compatible = "solidrun,clearfog-a1", "marvell,armada388", "marvell,armada385", "marvell,armada380"; + + dsa at 0 { + compatible = "marvell,dsa"; + dsa,ethernet = <ð1>; + dsa,mii-bus = <&mdio>; + pinctrl-0 = <&clearfog_dsa0_clk_pins &clearfog_dsa0_pins>; + pinctrl-names = "default"; + #address-cells = <2>; + #size-cells = <0>; + + switch at 0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <4 0>; + + port at 0 { + reg = <0>; + label = "lan5"; + }; + + port at 1 { + reg = <1>; + label = "lan4"; + }; + + port at 2 { + reg = <2>; + label = "lan3"; + }; + + port at 3 { + reg = <3>; + label = "lan2"; + }; + + port at 4 { + reg = <4>; + label = "lan1"; + }; + + port at 5 { + reg = <5>; + label = "cpu"; + }; + + port at 6 { + /* 88E1512 external phy */ + reg = <6>; + label = "lan6"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; + }; +}; + +ð1 { + /* ethernet at 30000 */ + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +&pinctrl { + clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins { + marvell,pins = "mpp46"; + marvell,function = "ref"; + }; + clearfog_dsa0_pins: clearfog-dsa0-pins { + marvell,pins = "mpp23", "mpp41"; + marvell,function = "gpio"; + }; };
arch/arm/boot/dts/armada-388-clearfog.dtsi +0 -69
87 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 5/9 ARM: dts: armada388-clearfog: move second PCIe port
In reply to Russell KingMove the second PCIe port to the clearfog .dts file as this is only present on the pro models.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 51 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/armada-388-clearfog.dtsi | 28 ++-------------- 2 files changed, 54 insertions(+), 25 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dts +51 -0
@@ -54,6 +54,23 @@ compatible = "solidrun,clearfog-a1", "marvell,armada388", "marvell,armada385", "marvell,armada380"; + soc { + internal-regs { + usb3 at f0000 { + /* CON2, nearest CPU, USB2 only. */ + status = "okay"; + }; + }; + + pcie-controller { + pcie at 3,0 { + /* Port 2, Lane 0. CON2, nearest CPU. */ + reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>; + status = "okay"; + }; + }; + }; + dsa at 0 { compatible = "marvell,dsa"; dsa,ethernet = <ð1>;
@@ -119,6 +136,40 @@ }; }; +&expander0 { + /* + * PCA9655 GPIO expander: + * 0-CON3 CLKREQ# + * 1-CON3 PERST# + * 2-CON2 PERST# + * 3-CON3 W_DISABLE + * 4-CON2 CLKREQ# + * 5-USB3 overcurrent + * 6-USB3 power + * 7-CON2 W_DISABLE + * 8-JP4 P1 + * 9-JP4 P4 + * 10-JP4 P5 + * 11-m.2 DEVSLP + * 12-SFP_LOS + * 13-SFP_TX_FAULT + * 14-SFP_TX_DISABLE + * 15-SFP_MOD_DEF0 + */ + pcie2_0_clkreq { + gpio-hog; + gpios = <4 GPIO_ACTIVE_LOW>; + input; + line-name = "pcie2.0-clkreq"; + }; + pcie2_0_w_disable { + gpio-hog; + gpios = <7 GPIO_ACTIVE_LOW>; + output-low; + line-name = "pcie2.0-w-disable"; + }; +}; + &pinctrl { clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins { marvell,pins = "mpp46";
arch/arm/boot/dts/armada-388-clearfog.dtsi +3 -25
@@ -103,12 +103,12 @@ * PCA9655 GPIO expander, up to 1MHz clock. * 0-CON3 CLKREQ# * 1-CON3 PERST# - * 2-CON2 PERST# + * 2- * 3-CON3 W_DISABLE - * 4-CON2 CLKREQ# + * 4- * 5-USB3 overcurrent * 6-USB3 power - * 7-CON2 W_DISABLE + * 7- * 8-JP4 P1 * 9-JP4 P4 * 10-JP4 P5
@@ -143,18 +143,6 @@ output-low; line-name = "pcie1.0-w-disable"; }; - pcie2_0_clkreq { - gpio-hog; - gpios = <4 GPIO_ACTIVE_LOW>; - input; - line-name = "pcie2.0-clkreq"; - }; - pcie2_0_w_disable { - gpio-hog; - gpios = <7 GPIO_ACTIVE_LOW>; - output-low; - line-name = "pcie2.0-w-disable"; - }; usb3_ilimit { gpio-hog; gpios = <5 GPIO_ACTIVE_LOW>;
@@ -296,11 +284,6 @@ status = "okay"; }; - usb3 at f0000 { - /* CON2, nearest CPU, USB2 only. */ - status = "okay"; - }; - usb3 at f8000 { /* CON7 */ status = "okay";
@@ -318,11 +301,6 @@ reset-gpios = <&expander0 1 GPIO_ACTIVE_LOW>; status = "okay"; }; - pcie at 3,0 { - /* Port 2, Lane 0. CON2, nearest CPU. */ - reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>; - status = "okay"; - }; }; };
Signature · 1 line
2.7.4
PATCH 6/9 ARM: dts: armada388-clearfog: move SPI CS1
In reply to Russell KingMove the SPI CS1 configuration to the clearfog .dts file as this is only present on pro models.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 14 ++++++++++++++ arch/arm/boot/dts/armada-388-clearfog.dtsi | 10 ++-------- 2 files changed, 16 insertions(+), 8 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dts +14 -0
@@ -179,4 +179,18 @@ marvell,pins = "mpp23", "mpp41"; marvell,function = "gpio"; }; + clearfog_spi1_cs_pins: spi1-cs-pins { + marvell,pins = "mpp55"; + marvell,function = "spi1"; + }; +}; + +&spi1 { + /* + * Add SPI CS pins for clearfog: + * CS0: W25Q32 (not populated on uSOM) + * CS1: + * CS2: mikrobus + */ + pinctrl-0 = <&spi1_pins &clearfog_spi1_cs_pins &mikro_spi_pins>; };
arch/arm/boot/dts/armada-388-clearfog.dtsi +2 -8
@@ -227,10 +227,6 @@ marvell,pins = "mpp20"; marvell,function = "gpio"; }; - clearfog_spi1_cs_pins: spi1-cs-pins { - marvell,pins = "mpp55"; - marvell,function = "spi1"; - }; mikro_pins: mikro-pins { /* int: mpp22 rst: mpp29 */ marvell,pins = "mpp22", "mpp29";
@@ -323,12 +319,10 @@ /* * Add SPI CS pins for clearfog: * CS0: W25Q32 (not populated on uSOM) - * CS1: + * CS1: PIC microcontroller (Pro models) * CS2: mikrobus */ - pinctrl-0 = <&spi1_pins - &clearfog_spi1_cs_pins - &mikro_spi_pins>; + pinctrl-0 = <&spi1_pins &mikro_spi_pins>; pinctrl-names = "default"; status = "okay"; };
Signature · 1 line
2.7.4
PATCH 7/9 ARM: dts: armada388-clearfog: move rear button
In reply to Russell KingMove the rear button support into the clearfog pro support file.
--- arch/arm/boot/dts/armada-388-clearfog.dts | 18 ++++++++++++++++++ arch/arm/boot/dts/armada-388-clearfog.dtsi | 18 ------------------ 2 files changed, 18 insertions(+), 18 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dts +18 -0
@@ -126,6 +126,20 @@ }; }; }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&rear_button_pins>; + pinctrl-names = "default"; + + button_0 { + /* The rear SW3 button */ + label = "Rear Button"; + gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; + linux,can-disable; + linux,code = <BTN_0>; + }; + }; }; ð1 {
@@ -183,6 +197,10 @@ marvell,pins = "mpp55"; marvell,function = "spi1"; }; + rear_button_pins: rear-button-pins { + marvell,pins = "mpp34"; + marvell,function = "gpio"; + }; }; &spi1 {
arch/arm/boot/dts/armada-388-clearfog.dtsi +0 -18
@@ -240,10 +240,6 @@ marvell,pins = "mpp24", "mpp25"; marvell,function = "ua1"; }; - rear_button_pins: rear-button-pins { - marvell,pins = "mpp34"; - marvell,function = "gpio"; - }; }; sata at a8000 {
@@ -299,20 +295,6 @@ }; }; }; - - gpio-keys { - compatible = "gpio-keys"; - pinctrl-0 = <&rear_button_pins>; - pinctrl-names = "default"; - - button_0 { - /* The rear SW3 button */ - label = "Rear Button"; - gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; - linux,can-disable; - linux,code = <BTN_0>; - }; - }; }; &spi1 {
Signature · 1 line
2.7.4
PATCH 8/9 ARM: dts: armada388-clearfog: add base model DTS file
In reply to Russell KingAdd the DTS file to describe the clearfog base model.
--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/armada-388-clearfog-base.dts | 94 ++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 arch/arm/boot/dts/armada-388-clearfog-base.dts
arch/arm/boot/dts/Makefile +1 -0
@@ -921,6 +921,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \ armada-385-linksys-caiman.dtb \ armada-385-linksys-cobra.dtb \ armada-388-clearfog.dtb \ + armada-388-clearfog-base.dtb \ armada-388-db.dtb \ armada-388-gp.dtb \ armada-388-rd.dtb
arch/arm/boot/dts/armada-388-clearfog-base.dts new file +94 -0
94 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 9/9 ARM: dts: armada388-clearfog: add pro model DTS file
In reply to Russell KingAdd the DTS file to describe the clearfog pro model - we update the platform name and compatible string compared to the original version. The original version remains for compatibility for the time being as the name of the file has become established, and the machine name and/or compatible may be used by userspace.
--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/armada-388-clearfog-pro.dts | 55 +++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 arch/arm/boot/dts/armada-388-clearfog-pro.dts
arch/arm/boot/dts/Makefile +1 -0
@@ -922,6 +922,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \ armada-385-linksys-cobra.dtb \ armada-388-clearfog.dtb \ armada-388-clearfog-base.dtb \ + armada-388-clearfog-pro.dtb \ armada-388-db.dtb \ armada-388-gp.dtb \ armada-388-rd.dtb
arch/arm/boot/dts/armada-388-clearfog-pro.dts new file +55 -0
55 lines not on this page · raw message
Signature · 1 line
2.7.4
cover ARM: dts: armada388: rework clearfog's .dtsi references
This patch series, based upon the previous series adding Clearfog Base support, reworks the clearfog .dtsi file to reference nodes by label rather than by path.
Not everything is moved - just those which had labels at the time the patches were created.
arch/arm/boot/dts/armada-388-clearfog-base.dts | 15 + arch/arm/boot/dts/armada-388-clearfog.dtsi | 353 ++++++++++----------- .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 113 ++++--- 3 files changed, 245 insertions(+), 236 deletions(-)
PATCH 1/5 ARM: dts: armada388-clearfog: add phy reset gpio-hog
--- arch/arm/boot/dts/armada-388-clearfog-base.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
arch/arm/boot/dts/armada-388-clearfog-base.dts +15 -0
@@ -74,7 +74,17 @@ phy = <&phy1>; }; +&gpio0 { + phy1_reset { + gpio-hog; + gpios = <19 GPIO_ACTIVE_LOW>; + output-low; + line-name = "phy1-reset"; + }; +}; + &mdio { + pinctrl-0 = <&mdio_pins µsom_phy_clk_pins &clearfog_phy_pins>; phy1: ethernet-phy at 1 { /* * Annoyingly, the marvell phy driver configures the LED
@@ -87,6 +97,11 @@ }; &pinctrl { + /* phy1 reset */ + clearfog_phy_pins: clearfog-phy-pins { + marvell,pins = "mpp19"; + marvell,function = "gpio"; + }; rear_button_pins: rear-button-pins { marvell,pins = "mpp44"; marvell,function = "gpio";
Signature · 1 line
2.7.4
PATCH 1/5 ARM: dts: armada388-clearfog: add phy reset gpio-hog
Hi Russell,
On lun., janv. 02 2017, Russell King <[email protected]> wrote:
It would be nice to have some word here about this patch. Especially why we need it now. I guess it is for being less dependent on the initialization done by the bootloader but maybe you have other reasons.
Thanks,
Gregory
Quoted 42 lines
Signed-off-by Russell King <[email protected]>--- arch/arm/boot/dts/armada-388-clearfog-base.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+)arch/arm/boot/dts/armada-388-clearfog-base.dts +15
-0@@ -74,7 +74,17 @@ phy = <&phy1>; }; +&gpio0 { + phy1_reset { + gpio-hog; + gpios = <19 GPIO_ACTIVE_LOW>; + output-low; + line-name = "phy1-reset"; + }; +}; + &mdio { + pinctrl-0 = <&mdio_pins µsom_phy_clk_pins &clearfog_phy_pins>; phy1: ethernet-phy at 1 { /* * Annoyingly, the marvell phy driver configures the LED@@ -87,6 +97,11 @@ }; &pinctrl { + /* phy1 reset */ + clearfog_phy_pins: clearfog-phy-pins { + marvell,pins = "mpp19"; + marvell,function = "gpio"; + }; rear_button_pins: rear-button-pins { marvell,pins = "mpp44"; marvell,function = "gpio";Signature · 1 line
2.7.4
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/5 ARM: dts: armada388-clearfog: add phy reset gpio-hog
Quoted 8 lines · Gregory CLEMENT
Hi Russell,
On lun., janv. 02 2017, Russell King <[email protected]> wrote:
It would be nice to have some word here about this patch. Especially why we need it now. I guess it is for being less dependent on the initialization done by the bootloader but maybe you have other reasons.
I'm not sure I follow. This is adding it to the new platform, not the old one. I guess I should've rolled this into the patch creating the clearfog-base dts file, and this question wouldn't have come up.
Quoted 53 lines
Thanks,
Gregory
Quoted 42 lines
Signed-off-by Russell King <[email protected]>--- arch/arm/boot/dts/armada-388-clearfog-base.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+)arch/arm/boot/dts/armada-388-clearfog-base.dts +15
-0@@ -74,7 +74,17 @@ phy = <&phy1>; }; +&gpio0 { + phy1_reset { + gpio-hog; + gpios = <19 GPIO_ACTIVE_LOW>; + output-low; + line-name = "phy1-reset"; + }; +}; + &mdio { + pinctrl-0 = <&mdio_pins µsom_phy_clk_pins &clearfog_phy_pins>; phy1: ethernet-phy at 1 { /* * Annoyingly, the marvell phy driver configures the LED@@ -87,6 +97,11 @@ }; &pinctrl { + /* phy1 reset */ + clearfog_phy_pins: clearfog-phy-pins { + marvell,pins = "mpp19"; + marvell,function = "gpio"; + }; rear_button_pins: rear-button-pins { marvell,pins = "mpp44"; marvell,function = "gpio";Signature · 1 line
2.7.4Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
PATCH 1/5 ARM: dts: armada388-clearfog: add phy reset gpio-hog
Hi Russell King,
Quoted 6 lines · Russell King - ARM Linux
Quoted 5 lines · Gregory CLEMENT
Hi Russell,
On lun., janv. 02 2017, Russell King <[email protected]> wrote:
Quoted 8 lines
Quoted 3 lines
It would be nice to have some word here about this patch. Especially why we need it now. I guess it is for being less dependent on the initialization done by the bootloader but maybe you have other reasons.
I'm not sure I follow. This is adding it to the new platform, not the old one. I guess I should've rolled this into the patch creating the clearfog-base dts file, and this question wouldn't have come up.
Indeed I missed the fact that it was on the new board as all the other patches were related to the common part.
Do you agree that I squash this patch into the "ARM: dts:
armada388-clearfog: add base model DTS file" patch?
Thanks,
Gregory
Quoted 59 lines
Quoted 49 lines
Quoted 43 lines
Signed-off-by Russell King <[email protected]>--- arch/arm/boot/dts/armada-388-clearfog-base.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+)arch/arm/boot/dts/armada-388-clearfog-base.dts +15
-0@@ -74,7 +74,17 @@ phy = <&phy1>; }; +&gpio0 { + phy1_reset { + gpio-hog; + gpios = <19 GPIO_ACTIVE_LOW>; + output-low; + line-name = "phy1-reset"; + }; +}; + &mdio { + pinctrl-0 = <&mdio_pins µsom_phy_clk_pins &clearfog_phy_pins>; phy1: ethernet-phy at 1 { /* * Annoyingly, the marvell phy driver configures the LED@@ -87,6 +97,11 @@ }; &pinctrl { + /* phy1 reset */ + clearfog_phy_pins: clearfog-phy-pins { + marvell,pins = "mpp19"; + marvell,function = "gpio"; + }; rear_button_pins: rear-button-pins { marvell,pins = "mpp44"; marvell,function = "gpio";Signature · 1 line
2.7.4Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.comSignature · 8 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/5 ARM: dts: armada388-clearfog: add phy reset gpio-hog
Quoted 19 lines · Gregory CLEMENT
Hi Russell King,
Quoted 6 lines · Russell King - ARM Linux
Quoted 5 lines · Gregory CLEMENT
Hi Russell,
On lun., janv. 02 2017, Russell King <[email protected]> wrote:
Quoted 8 lines
Quoted 3 lines
It would be nice to have some word here about this patch. Especially why we need it now. I guess it is for being less dependent on the initialization done by the bootloader but maybe you have other reasons.
I'm not sure I follow. This is adding it to the new platform, not the old one. I guess I should've rolled this into the patch creating the clearfog-base dts file, and this question wouldn't have come up.
Quoted 5 lines
Indeed I missed the fact that it was on the new board as all the other patches were related to the common part.
Do you agree that I squash this patch into the "ARM: dts:
armada388-clearfog: add base model DTS file" patch?
Yep, thanks.
Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
PATCH 1/5 ARM: dts: armada388-clearfog: add phy reset gpio-hog
Hi Russell King,
Quoted 20 lines · Russell King - ARM Linux
Quoted 19 lines · Gregory CLEMENT
Hi Russell King,
Quoted 14 lines · Russell King - ARM Linux
Quoted 8 lines · Gregory CLEMENT
Hi Russell,
On lun., janv. 02 2017, Russell King <[email protected]> wrote:
It would be nice to have some word here about this patch. Especially why we need it now. I guess it is for being less dependent on the initialization done by the bootloader but maybe you have other reasons.
I'm not sure I follow. This is adding it to the new platform, not the old one. I guess I should've rolled this into the patch creating the clearfog-base dts file, and this question wouldn't have come up.
Quoted 7 lines
Quoted 5 lines
Indeed I missed the fact that it was on the new board as all the other patches were related to the common part.
Do you agree that I squash this patch into the "ARM: dts:
armada388-clearfog: add base model DTS file" patch?Yep, thanks.
It's done and it is also part of mvebu/for-next now.
Gregory
Quoted 5 lines
Signature · 4 lines
-- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/5 ARM: dts: armada388-clearfog: move device specific pinctrl nodes
In reply to Russell KingMove the device specific pinctrl nodes over to use the label form to reference the pin mux controller, rather than replicating the device node path.
--- arch/arm/boot/dts/armada-388-clearfog.dtsi | 50 +++++++++++----------- .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 27 ++++++------ 2 files changed, 38 insertions(+), 39 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dtsi +25 -25
@@ -217,31 +217,6 @@ status = "okay"; }; - pinctrl at 18000 { - clearfog_i2c1_pins: i2c1-pins { - /* SFP, PCIe, mSATA, mikrobus */ - marvell,pins = "mpp26", "mpp27"; - marvell,function = "i2c1"; - }; - clearfog_sdhci_cd_pins: clearfog-sdhci-cd-pins { - marvell,pins = "mpp20"; - marvell,function = "gpio"; - }; - mikro_pins: mikro-pins { - /* int: mpp22 rst: mpp29 */ - marvell,pins = "mpp22", "mpp29"; - marvell,function = "gpio"; - }; - mikro_spi_pins: mikro-spi-pins { - marvell,pins = "mpp43"; - marvell,function = "spi1"; - }; - mikro_uart_pins: mikro-uart-pins { - marvell,pins = "mpp24", "mpp25"; - marvell,function = "ua1"; - }; - }; - sata at a8000 { /* pinctrl? */ status = "okay";
@@ -297,6 +272,31 @@ }; }; +&pinctrl { + clearfog_i2c1_pins: i2c1-pins { + /* SFP, PCIe, mSATA, mikrobus */ + marvell,pins = "mpp26", "mpp27"; + marvell,function = "i2c1"; + }; + clearfog_sdhci_cd_pins: clearfog-sdhci-cd-pins { + marvell,pins = "mpp20"; + marvell,function = "gpio"; + }; + mikro_pins: mikro-pins { + /* int: mpp22 rst: mpp29 */ + marvell,pins = "mpp22", "mpp29"; + marvell,function = "gpio"; + }; + mikro_spi_pins: mikro-spi-pins { + marvell,pins = "mpp43"; + marvell,function = "spi1"; + }; + mikro_uart_pins: mikro-uart-pins { + marvell,pins = "mpp24", "mpp25"; + marvell,function = "ua1"; + }; +}; + &spi1 { /* * Add SPI CS pins for clearfog:
arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi +13 -14
@@ -94,20 +94,6 @@ }; }; - pinctrl at 18000 { - microsom_phy_clk_pins: microsom-phy-clk-pins { - marvell,pins = "mpp45"; - marvell,function = "ref"; - }; - /* Optional eMMC */ - microsom_sdhci_pins: microsom-sdhci-pins { - marvell,pins = "mpp21", "mpp28", - "mpp37", "mpp38", - "mpp39", "mpp40"; - marvell,function = "sd0"; - }; - }; - rtc at a3800 { /* * If the rtc doesn't work, run "date reset"
@@ -134,6 +120,19 @@ }; }; +&pinctrl { + microsom_phy_clk_pins: microsom-phy-clk-pins { + marvell,pins = "mpp45"; + marvell,function = "ref"; + }; + /* Optional eMMC */ + microsom_sdhci_pins: microsom-sdhci-pins { + marvell,pins = "mpp21", "mpp28", "mpp37", + "mpp38", "mpp39", "mpp40"; + marvell,function = "sd0"; + }; +}; + &spi1 { /* The microsom has an optional W25Q32 on board, connected to CS0 */ pinctrl-0 = <&spi1_pins>;
Signature · 1 line
2.7.4
PATCH 3/5 ARM: dts: armada388-clearfog: move I2C nodes
In reply to Russell KingMove the I2C nodes over to use the label form to reference the I2C controllers, rather than replicating the device node path.
--- arch/arm/boot/dts/armada-388-clearfog.dtsi | 245 ++++++++++++++--------------- 1 file changed, 120 insertions(+), 125 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dtsi +120 -125
@@ -92,131 +92,6 @@ }; }; - i2c at 11000 { - /* Is there anything on this? */ - clock-frequency = <100000>; - pinctrl-0 = <&i2c0_pins>; - pinctrl-names = "default"; - status = "okay"; - - /* - * PCA9655 GPIO expander, up to 1MHz clock. - * 0-CON3 CLKREQ# - * 1-CON3 PERST# - * 2- - * 3-CON3 W_DISABLE - * 4- - * 5-USB3 overcurrent - * 6-USB3 power - * 7- - * 8-JP4 P1 - * 9-JP4 P4 - * 10-JP4 P5 - * 11-m.2 DEVSLP - * 12-SFP_LOS - * 13-SFP_TX_FAULT - * 14-SFP_TX_DISABLE - * 15-SFP_MOD_DEF0 - */ - expander0: gpio-expander at 20 { - /* - * This is how it should be: - * compatible = "onnn,pca9655", - * "nxp,pca9555"; - * but you can't do this because of - * the way I2C works. - */ - compatible = "nxp,pca9555"; - gpio-controller; - #gpio-cells = <2>; - reg = <0x20>; - - pcie1_0_clkreq { - gpio-hog; - gpios = <0 GPIO_ACTIVE_LOW>; - input; - line-name = "pcie1.0-clkreq"; - }; - pcie1_0_w_disable { - gpio-hog; - gpios = <3 GPIO_ACTIVE_LOW>; - output-low; - line-name = "pcie1.0-w-disable"; - }; - usb3_ilimit { - gpio-hog; - gpios = <5 GPIO_ACTIVE_LOW>; - input; - line-name = "usb3-current-limit"; - }; - usb3_power { - gpio-hog; - gpios = <6 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb3-power"; - }; - m2_devslp { - gpio-hog; - gpios = <11 GPIO_ACTIVE_HIGH>; - output-low; - line-name = "m.2 devslp"; - }; - sfp_los { - /* SFP loss of signal */ - gpio-hog; - gpios = <12 GPIO_ACTIVE_HIGH>; - input; - line-name = "sfp-los"; - }; - sfp_tx_fault { - /* SFP laser fault */ - gpio-hog; - gpios = <13 GPIO_ACTIVE_HIGH>; - input; - line-name = "sfp-tx-fault"; - }; - sfp_tx_disable { - /* SFP transmit disable */ - gpio-hog; - gpios = <14 GPIO_ACTIVE_HIGH>; - output-low; - line-name = "sfp-tx-disable"; - }; - sfp_mod_def0 { - /* SFP module present */ - gpio-hog; - gpios = <15 GPIO_ACTIVE_LOW>; - input; - line-name = "sfp-mod-def0"; - }; - }; - - /* The MCP3021 is 100kHz clock only */ - mikrobus_adc: mcp3021 at 4c { - compatible = "microchip,mcp3021"; - reg = <0x4c>; - }; - - /* Also something at 0x64 */ - }; - - i2c at 11100 { - /* - * Routed to SFP, mikrobus, and PCIe. - * SFP limits this to 100kHz, and requires - * an AT24C01A/02/04 with address pins tied - * low, which takes addresses 0x50 and 0x51. - * Mikrobus doesn't specify beyond an I2C - * bus being present. - * PCIe uses ARP to assign addresses, or - * 0x63-0x64. - */ - clock-frequency = <100000>; - pinctrl-0 = <&clearfog_i2c1_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - sata at a8000 { /* pinctrl? */ status = "okay";
@@ -272,6 +147,126 @@ }; }; +&i2c0 { + /* Is there anything on this? */ + clock-frequency = <100000>; + pinctrl-0 = <&i2c0_pins>; + pinctrl-names = "default"; + status = "okay"; + + /* + * PCA9655 GPIO expander, up to 1MHz clock. + * 0-CON3 CLKREQ# + * 1-CON3 PERST# + * 2- + * 3-CON3 W_DISABLE + * 4- + * 5-USB3 overcurrent + * 6-USB3 power + * 7- + * 8-JP4 P1 + * 9-JP4 P4 + * 10-JP4 P5 + * 11-m.2 DEVSLP + * 12-SFP_LOS + * 13-SFP_TX_FAULT + * 14-SFP_TX_DISABLE + * 15-SFP_MOD_DEF0 + */ + expander0: gpio-expander at 20 { + /* + * This is how it should be: + * compatible = "onnn,pca9655", "nxp,pca9555"; + * but you can't do this because of the way I2C works. + */ + compatible = "nxp,pca9555"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x20>; + + pcie1_0_clkreq { + gpio-hog; + gpios = <0 GPIO_ACTIVE_LOW>; + input; + line-name = "pcie1.0-clkreq"; + }; + pcie1_0_w_disable { + gpio-hog; + gpios = <3 GPIO_ACTIVE_LOW>; + output-low; + line-name = "pcie1.0-w-disable"; + }; + usb3_ilimit { + gpio-hog; + gpios = <5 GPIO_ACTIVE_LOW>; + input; + line-name = "usb3-current-limit"; + }; + usb3_power { + gpio-hog; + gpios = <6 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "usb3-power"; + }; + m2_devslp { + gpio-hog; + gpios = <11 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "m.2 devslp"; + }; + sfp_los { + /* SFP loss of signal */ + gpio-hog; + gpios = <12 GPIO_ACTIVE_HIGH>; + input; + line-name = "sfp-los"; + }; + sfp_tx_fault { + /* SFP laser fault */ + gpio-hog; + gpios = <13 GPIO_ACTIVE_HIGH>; + input; + line-name = "sfp-tx-fault"; + }; + sfp_tx_disable { + /* SFP transmit disable */ + gpio-hog; + gpios = <14 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "sfp-tx-disable"; + }; + sfp_mod_def0 { + /* SFP module present */ + gpio-hog; + gpios = <15 GPIO_ACTIVE_LOW>; + input; + line-name = "sfp-mod-def0"; + }; + }; + + /* The MCP3021 is 100kHz clock only */ + mikrobus_adc: mcp3021 at 4c { + compatible = "microchip,mcp3021"; + reg = <0x4c>; + }; + + /* Also something at 0x64 */ +}; + +&i2c1 { + /* + * Routed to SFP, mikrobus, and PCIe. + * SFP limits this to 100kHz, and requires an AT24C01A/02/04 with + * address pins tied low, which takes addresses 0x50 and 0x51. + * Mikrobus doesn't specify beyond an I2C bus being present. + * PCIe uses ARP to assign addresses, or 0x63-0x64. + */ + clock-frequency = <100000>; + pinctrl-0 = <&clearfog_i2c1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &pinctrl { clearfog_i2c1_pins: i2c1-pins { /* SFP, PCIe, mSATA, mikrobus */
Signature · 1 line
2.7.4
PATCH 4/5 ARM: dts: armada388-clearfog: move ethernet related nodes
In reply to Russell KingMove the ethernet, buffer manager, and mdio nodes over to use label form to reference the devices rather than replicating the device path.
--- arch/arm/boot/dts/armada-388-clearfog.dtsi | 44 +++++++------ .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 76 +++++++++++----------- 2 files changed, 60 insertions(+), 60 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dtsi +23 -21
@@ -71,27 +71,6 @@ soc { internal-regs { - ethernet at 30000 { - phy-mode = "sgmii"; - buffer-manager = <&bm>; - bm,pool-long = <2>; - bm,pool-short = <1>; - status = "okay"; - }; - - ethernet at 34000 { - phy-mode = "sgmii"; - buffer-manager = <&bm>; - bm,pool-long = <3>; - bm,pool-short = <1>; - status = "okay"; - - fixed-link { - speed = <1000>; - full-duplex; - }; - }; - sata at a8000 { /* pinctrl? */ status = "okay";
@@ -147,6 +126,29 @@ }; }; +ð1 { + /* ethernet at 30000 */ + bm,pool-long = <2>; + bm,pool-short = <1>; + buffer-manager = <&bm>; + phy-mode = "sgmii"; + status = "okay"; +}; + +ð2 { + /* ethernet at 34000 */ + bm,pool-long = <3>; + bm,pool-short = <1>; + buffer-manager = <&bm>; + phy-mode = "sgmii"; + status = "okay"; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + &i2c0 { /* Is there anything on this? */ clock-frequency = <100000>;
arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi +37 -39
91 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 5/5 ARM: dts: armada388-clearfog: move uart nodes
In reply to Russell KingMove the uart nodes over to use the label form to reference the serial devices, rather than replicating the device node path.
--- arch/arm/boot/dts/armada-388-clearfog.dtsi | 14 +++++++------- arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-)
arch/arm/boot/dts/armada-388-clearfog.dtsi +7 -7
@@ -93,13 +93,6 @@ wp-inverted; }; - serial at 12100 { - /* mikrobus uart */ - pinctrl-0 = <&mikro_uart_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - usb at 58000 { /* CON3, nearest power. */ status = "okay";
@@ -305,3 +298,10 @@ pinctrl-names = "default"; status = "okay"; }; + +&uart1 { + /* mikrobus uart */ + pinctrl-0 = <&mikro_uart_pins>; + pinctrl-names = "default"; + status = "okay"; +};
arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi +6 -6
@@ -69,12 +69,6 @@ */ status = "okay"; }; - - serial at 12000 { - pinctrl-0 = <&uart0_pins>; - pinctrl-names = "default"; - status = "okay"; - }; }; }; };
@@ -144,3 +138,9 @@ status = "disabled"; }; }; + +&uart0 { + pinctrl-0 = <&uart0_pins>; + pinctrl-names = "default"; + status = "okay"; +};
Signature · 1 line
2.7.4
cover ARM: dts: armada388: rework clearfog's .dtsi references
In reply to Russell KingHi Russell,
Quoted 6 lines · Russell King
This patch series, based upon the previous series adding Clearfog Base support, reworks the clearfog .dtsi file to reference nodes by label rather than by path.
Not everything is moved - just those which had labels at the time the patches were created.
All the series is applied on mvebu/dt, however I would like to have a commit log for the first patch before pushing it to arm-soc.
Thanks,
Gregory
Quoted 5 lines
arch/arm/boot/dts/armada-388-clearfog-base.dts | 15 + arch/arm/boot/dts/armada-388-clearfog.dtsi | 353 ++++++++++----------- .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 113 ++++--- 3 files changed, 245 insertions(+), 236 deletions(-)
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
cover ARM: dts: armada388: Introduce Clearfog Base DT
In reply to Russell KingHi Russell,
Quoted 4 lines · Russell King
This patch series, based upon the previously submitted fix for the SPI flash, reworks the Clearfog DT files to add support for the SolidRun Clearfog Base platform.
Quoted 8 lines
The conventional model is now known as the "Clearfog Pro" module, which has the DSA switch and two PCIe sockets. The base model is a smaller board without the DSA switch, replacing it with a second copper gigabit port, and only one PCIe socket.
We retain the original DT file (named armada-388-clearfog.dtb) for compatibility with existing installations - not only the filename, but also the board name exposed in userspace.
All the series applied on mvebu/dt.
I amended the last two patches because the license text was mangled as spotted by Alexandre Belloni, so I fixed it while applying the patches.
Thanks,
Gregory
Quoted 13 lines
arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/armada-388-clearfog-base.dts | 94 ++++++ arch/arm/boot/dts/armada-388-clearfog-pro.dts | 55 ++++ arch/arm/boot/dts/armada-388-clearfog.dts | 364 ++++----------------- arch/arm/boot/dts/armada-388-clearfog.dtsi | 310 ++++++++++++++++++ .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 21 ++ 6 files changed, 548 insertions(+), 298 deletions(-) create mode 100644 arch/arm/boot/dts/armada-388-clearfog-base.dts create mode 100644 arch/arm/boot/dts/armada-388-clearfog-pro.dts create mode 100644 arch/arm/boot/dts/armada-388-clearfog.dtsi
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 ARM: dts: armada388-clearfog: fix SPI flash #size-cells
In reply to Russell KingHi Russell,
Quoted 6 lines · Russell King
The SPI flash #size-cells is specified in the binding documentation to have value 1, but we were setting it to zero. This wasn't causing any problem as we do not list any partitions, but it's worth specifying correctly if we're going to specify it at all.
Signed-off-by Russell King <[email protected]>
Applied on mvebu/dt
Thanks,
Gregory
Quoted 20 lines
--- arch/arm/boot/dts/armada-388-clearfog.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/boot/dts/armada-388-clearfog.dts +1
-1@@ -437,7 +437,7 @@ spi-flash at 0 { #address-cells = <1>; - #size-cells = <0>; + #size-cells = <1>; compatible = "w25q32", "jedec,spi-nor"; reg = <0>; /* Chip select 0 */ spi-max-frequency = <3000000>;Signature · 1 line
2.7.4
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com