All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gregory CLEMENT <gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
	Grant Likely
	<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
	Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Ezequiel Garcia
	<ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Sebastian Hesselbarth
	<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC PATCH 1/3] arm: mvebu: add new dts file for old variant of Openblocks AX3-4
Date: Thu, 02 Jan 2014 17:17:41 +0100	[thread overview]
Message-ID: <52C59125.9050407@free-electrons.com> (raw)
In-Reply-To: <20140101214116.GY19878-u4khhh1J0LxI1Ri9qeTfzeTW4wlIGRCZ@public.gmane.org>

Hi Jason,

I have just send a new series which I hope will supersede this one.
However I will answer on some points:

On 01/01/2014 22:41, Jason Cooper wrote:
> Gregory,
> 
> Sorry, but we seem to have a fundamental mis-understanding here.  First,
> whatever we end up deciding for the compatible strings needs to be
> documented.  Which seems to have not made it into this series.
> 
> Second, I'm having trouble explaining this (in my head), so I'm adding
> the DT ml so hopefully someone there can chime in.
> 
> AFAICT, the marvell,mv78230-i2c compatible string, added in v3.12, refers
> to the IP block on the A0 revision of the SoC.  Since we have set that,

Actually in v3.12 the marvell,mv78230-i2c refer to the B0 revision as I
only worked on it on board using this revision. That's why I proposed
to introduced the marvell,mv78230-a0-i2c compatible string. My concerns was
to not break the existing behavior.

Currently with the marvell,mv78230-i2c compatible string the kernel use
offload on B0 version and hang on A0 version.

If we introduce the marvell,mv78230-a0-i2c compatible string, then the new
kernel with the same dtb will have the same behavior. People using the A0
version are aware that there is a problem (the kernel hang) so they will
be willing to switch to marvell,mv78230-a0-i2c and to change their dtb.

If we introduce the marvell,mv78230-b0-i2c compatible string, then the new
kernel with the same dtb will have different behavior. People using the A0
will have a booting kernel, but I fear that people using B0 revision won't
be aware of the regression.

Gregory


> we've discovered that the A0 revision has an errata where offloading
> doesn't work.  The B0 revision of the SoC has fixed offloading for i2c.
> 
> In my mind, this means that we should create a fix for the driver to
> disable offloading unless it can determine it's running B0 or newer.
> This is easy once we nail down the compatible strings.
> 
> The second thing we need to do is update the binding documentation so
> that the devicetree can describe the hardware accurately.  I think we
> should keep 'marvell,mv78230-i2c' as it is (the driver fix mentioned
> above will disable offloading), and add a new compatible
> string, 'marvell,mv78230-b0-i2c'.  The driver can then be updated to
> enable offloading when it sees this compatible string, or it can
> determine the SoC revision itself (via mach code).
> 
> Third, we need to be able to differentiate between the two shipped
> AX3-4 boards by openblocks.  I think this should follow the same pattern
> we decide for the i2c compatible string.  So, if we go with my proposal,
> we would have plathome,openblocks-ax3-4 and
> plathome,openblocks-ax3-4-b0.
> 
> Basically, I'm really uneasy about dropping marvell,mv78230-i2c and
> essentially re-defining it to marvell,mv78230-a0-i2c.  It feels like
> it's breaking backwards compatibility.  But I'm having trouble clearly
> describing how Gregory's proposed change exactly does break backwards
> compatibility.  Can a DT maintainer explain it more clearly than I?
> 
> thx,
> 
> Jason.
> 
> PS- Well, this ended up being a toppost.  Oops.  Sorry.
> 
> On Tue, Dec 31, 2013 at 05:44:51PM +0100, Gregory CLEMENT wrote:
>> The first variants of Openblocks AX3-4 used the revision A0 of the
>> Armada XP SoCs. These early variants have issues related to the i2c
>> controller which prevent to use the offload mechanism and lead to a
>> kernel hang during boot.
>>
>> The new dts file uses the compatible string marvell,mv78230-a0-i2c for
>> the i2c controller, thanks to this the driver disable the offload
>> mechanism and the kernel no more hangs on these boards.
>>
>> Signed-off-by: Gregory CLEMENT <gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
>> ---
>>  .../arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts |  40 +++++
>>  .../dts/armada-xp-common-openblocks-ax3-4.dtsi     | 177 +++++++++++++++++++++
>>  arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts   | 164 +------------------
>>  3 files changed, 218 insertions(+), 163 deletions(-)
>>  create mode 100644 arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts
>>  create mode 100644 arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi
>>
>> diff --git a/arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts
>> new file mode 100644
>> index 000000000000..b3ea65255c19
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts
>> @@ -0,0 +1,40 @@
>> +/*
>> + * Device Tree file for OpenBlocks AX3-4 board with A0 SoC
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Gregory CLEMENT <gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2.  This program is licensed "as is" without any
>> + * warranty of any kind, whether express or implied.
>> + */
>> +
>> +/dts-v1/;
>> +#include "armada-xp-common-openblocks-ax3-4.dtsi"
>> +
>> +/ {
>> +	model = "PlatHome OpenBlocks AX3-4 board (A0 SoC)";
>> +	compatible = "plathome,openblocks-ax3-4", "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
>> +
>> +	chosen {
>> +		bootargs = "console=ttyS0,115200 earlyprintk";
>> +	};
>> +
>> +	memory {
>> +		device_type = "memory";
>> +		reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */
>> +	};
>> +
>> +	soc {
>> +
>> +		internal-regs {
>> +			i2c@11000 {
>> +				compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
>> +			};
>> +			i2c@11100 {
>> +				compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi b/arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi
>> new file mode 100644
>> index 000000000000..0d452b07baf5
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi
>> @@ -0,0 +1,177 @@
>> +/*
>> + * Device Tree file for OpenBlocks AX3-4 board
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2.  This program is licensed "as is" without any
>> + * warranty of any kind, whether express or implied.
>> + */
>> +
>> +#include "armada-xp-mv78260.dtsi"
>> +
>> +/ {
>> +	soc {
>> +		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
>> +			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
>> +			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>;
>> +
>> +		devbus-bootcs {
>> +			status = "okay";
>> +
>> +			/* Device Bus parameters are required */
>> +
>> +			/* Read parameters */
>> +			devbus,bus-width    = <8>;
>> +			devbus,turn-off-ps  = <60000>;
>> +			devbus,badr-skew-ps = <0>;
>> +			devbus,acc-first-ps = <124000>;
>> +			devbus,acc-next-ps  = <248000>;
>> +			devbus,rd-setup-ps  = <0>;
>> +			devbus,rd-hold-ps   = <0>;
>> +
>> +			/* Write parameters */
>> +			devbus,sync-enable = <0>;
>> +			devbus,wr-high-ps  = <60000>;
>> +			devbus,wr-low-ps   = <60000>;
>> +			devbus,ale-wr-ps   = <60000>;
>> +
>> +			/* NOR 128 MiB */
>> +			nor@0 {
>> +				compatible = "cfi-flash";
>> +				reg = <0 0x8000000>;
>> +				bank-width = <2>;
>> +			};
>> +		};
>> +
>> +		pcie-controller {
>> +			status = "okay";
>> +			/* Internal mini-PCIe connector */
>> +			pcie@1,0 {
>> +				/* Port 0, Lane 0 */
>> +				status = "okay";
>> +			};
>> +		};
>> +
>> +		internal-regs {
>> +			serial@12000 {
>> +				clock-frequency = <250000000>;
>> +				status = "okay";
>> +			};
>> +			serial@12100 {
>> +				clock-frequency = <250000000>;
>> +				status = "okay";
>> +			};
>> +			pinctrl {
>> +				led_pins: led-pins-0 {
>> +					marvell,pins = "mpp49", "mpp51", "mpp53";
>> +					marvell,function = "gpio";
>> +				};
>> +			};
>> +			leds {
>> +				compatible = "gpio-leds";
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&led_pins>;
>> +
>> +				red_led {
>> +					label = "red_led";
>> +					gpios = <&gpio1 17 1>;
>> +					default-state = "off";
>> +				};
>> +
>> +				yellow_led {
>> +					label = "yellow_led";
>> +					gpios = <&gpio1 19 1>;
>> +					default-state = "off";
>> +				};
>> +
>> +				green_led {
>> +					label = "green_led";
>> +					gpios = <&gpio1 21 1>;
>> +					default-state = "off";
>> +					linux,default-trigger = "heartbeat";
>> +				};
>> +			};
>> +
>> +			gpio_keys {
>> +				compatible = "gpio-keys";
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				button@1 {
>> +					label = "Init Button";
>> +					linux,code = <116>;
>> +					gpios = <&gpio1 28 0>;
>> +				};
>> +			};
>> +
>> +			mdio {
>> +				phy0: ethernet-phy@0 {
>> +					reg = <0>;
>> +				};
>> +
>> +				phy1: ethernet-phy@1 {
>> +					reg = <1>;
>> +				};
>> +
>> +				phy2: ethernet-phy@2 {
>> +					reg = <2>;
>> +				};
>> +
>> +				phy3: ethernet-phy@3 {
>> +					reg = <3>;
>> +				};
>> +			};
>> +
>> +			ethernet@70000 {
>> +				status = "okay";
>> +				phy = <&phy0>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			ethernet@74000 {
>> +				status = "okay";
>> +				phy = <&phy1>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			ethernet@30000 {
>> +				status = "okay";
>> +				phy = <&phy2>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			ethernet@34000 {
>> +				status = "okay";
>> +				phy = <&phy3>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			i2c@11000 {
>> +				status = "okay";
>> +				clock-frequency = <400000>;
>> +			};
>> +			i2c@11100 {
>> +				status = "okay";
>> +				clock-frequency = <400000>;
>> +
>> +				s35390a: s35390a@30 {
>> +					compatible = "s35390a";
>> +					reg = <0x30>;
>> +				};
>> +			};
>> +			sata@a0000 {
>> +				nr-ports = <2>;
>> +				status = "okay";
>> +			};
>> +
>> +			/* Front side USB 0 */
>> +			usb@50000 {
>> +				status = "okay";
>> +			};
>> +
>> +			/* Front side USB 1 */
>> +			usb@51000 {
>> +				status = "okay";
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
>> index 5695afcc04bf..1983de77c3ff 100644
>> --- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
>> +++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
>> @@ -11,7 +11,7 @@
>>   */
>>  
>>  /dts-v1/;
>> -#include "armada-xp-mv78260.dtsi"
>> +#include "armada-xp-common-openblocks-ax3-4.dtsi"
>>  
>>  / {
>>  	model = "PlatHome OpenBlocks AX3-4 board";
>> @@ -25,166 +25,4 @@
>>  		device_type = "memory";
>>  		reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */
>>  	};
>> -
>> -	soc {
>> -		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
>> -			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
>> -			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>;
>> -
>> -		devbus-bootcs {
>> -			status = "okay";
>> -
>> -			/* Device Bus parameters are required */
>> -
>> -			/* Read parameters */
>> -			devbus,bus-width    = <8>;
>> -			devbus,turn-off-ps  = <60000>;
>> -			devbus,badr-skew-ps = <0>;
>> -			devbus,acc-first-ps = <124000>;
>> -			devbus,acc-next-ps  = <248000>;
>> -			devbus,rd-setup-ps  = <0>;
>> -			devbus,rd-hold-ps   = <0>;
>> -
>> -			/* Write parameters */
>> -			devbus,sync-enable = <0>;
>> -			devbus,wr-high-ps  = <60000>;
>> -			devbus,wr-low-ps   = <60000>;
>> -			devbus,ale-wr-ps   = <60000>;
>> -
>> -			/* NOR 128 MiB */
>> -			nor@0 {
>> -				compatible = "cfi-flash";
>> -				reg = <0 0x8000000>;
>> -				bank-width = <2>;
>> -			};
>> -		};
>> -
>> -		pcie-controller {
>> -			status = "okay";
>> -			/* Internal mini-PCIe connector */
>> -			pcie@1,0 {
>> -				/* Port 0, Lane 0 */
>> -				status = "okay";
>> -			};
>> -		};
>> -
>> -		internal-regs {
>> -			serial@12000 {
>> -				clock-frequency = <250000000>;
>> -				status = "okay";
>> -			};
>> -			serial@12100 {
>> -				clock-frequency = <250000000>;
>> -				status = "okay";
>> -			};
>> -			pinctrl {
>> -				led_pins: led-pins-0 {
>> -					marvell,pins = "mpp49", "mpp51", "mpp53";
>> -					marvell,function = "gpio";
>> -				};
>> -			};
>> -			leds {
>> -				compatible = "gpio-leds";
>> -				pinctrl-names = "default";
>> -				pinctrl-0 = <&led_pins>;
>> -
>> -				red_led {
>> -					label = "red_led";
>> -					gpios = <&gpio1 17 1>;
>> -					default-state = "off";
>> -				};
>> -
>> -				yellow_led {
>> -					label = "yellow_led";
>> -					gpios = <&gpio1 19 1>;
>> -					default-state = "off";
>> -				};
>> -
>> -				green_led {
>> -					label = "green_led";
>> -					gpios = <&gpio1 21 1>;
>> -					default-state = "off";
>> -					linux,default-trigger = "heartbeat";
>> -				};
>> -			};
>> -
>> -			gpio_keys {
>> -				compatible = "gpio-keys";
>> -				#address-cells = <1>;
>> -				#size-cells = <0>;
>> -
>> -				button@1 {
>> -					label = "Init Button";
>> -					linux,code = <116>;
>> -					gpios = <&gpio1 28 0>;
>> -				};
>> -			};
>> -
>> -			mdio {
>> -				phy0: ethernet-phy@0 {
>> -					reg = <0>;
>> -				};
>> -
>> -				phy1: ethernet-phy@1 {
>> -					reg = <1>;
>> -				};
>> -
>> -				phy2: ethernet-phy@2 {
>> -					reg = <2>;
>> -				};
>> -
>> -				phy3: ethernet-phy@3 {
>> -					reg = <3>;
>> -				};
>> -			};
>> -
>> -			ethernet@70000 {
>> -				status = "okay";
>> -				phy = <&phy0>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			ethernet@74000 {
>> -				status = "okay";
>> -				phy = <&phy1>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			ethernet@30000 {
>> -				status = "okay";
>> -				phy = <&phy2>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			ethernet@34000 {
>> -				status = "okay";
>> -				phy = <&phy3>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			i2c@11000 {
>> -				status = "okay";
>> -				clock-frequency = <400000>;
>> -			};
>> -			i2c@11100 {
>> -				status = "okay";
>> -				clock-frequency = <400000>;
>> -
>> -				s35390a: s35390a@30 {
>> -					compatible = "s35390a";
>> -					reg = <0x30>;
>> -				};
>> -			};
>> -			sata@a0000 {
>> -				nr-ports = <2>;
>> -				status = "okay";
>> -			};
>> -
>> -			/* Front side USB 0 */
>> -			usb@50000 {
>> -				status = "okay";
>> -			};
>> -
>> -			/* Front side USB 1 */
>> -			usb@51000 {
>> -				status = "okay";
>> -			};
>> -		};
>> -	};
>>  };
>> -- 
>> 1.8.1.2
>>


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

WARNING: multiple messages have this Message-ID (diff)
From: gregory.clement@free-electrons.com (Gregory CLEMENT)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 1/3] arm: mvebu: add new dts file for old variant of Openblocks AX3-4
Date: Thu, 02 Jan 2014 17:17:41 +0100	[thread overview]
Message-ID: <52C59125.9050407@free-electrons.com> (raw)
In-Reply-To: <20140101214116.GY19878@titan.lakedaemon.net>

Hi Jason,

I have just send a new series which I hope will supersede this one.
However I will answer on some points:

On 01/01/2014 22:41, Jason Cooper wrote:
> Gregory,
> 
> Sorry, but we seem to have a fundamental mis-understanding here.  First,
> whatever we end up deciding for the compatible strings needs to be
> documented.  Which seems to have not made it into this series.
> 
> Second, I'm having trouble explaining this (in my head), so I'm adding
> the DT ml so hopefully someone there can chime in.
> 
> AFAICT, the marvell,mv78230-i2c compatible string, added in v3.12, refers
> to the IP block on the A0 revision of the SoC.  Since we have set that,

Actually in v3.12 the marvell,mv78230-i2c refer to the B0 revision as I
only worked on it on board using this revision. That's why I proposed
to introduced the marvell,mv78230-a0-i2c compatible string. My concerns was
to not break the existing behavior.

Currently with the marvell,mv78230-i2c compatible string the kernel use
offload on B0 version and hang on A0 version.

If we introduce the marvell,mv78230-a0-i2c compatible string, then the new
kernel with the same dtb will have the same behavior. People using the A0
version are aware that there is a problem (the kernel hang) so they will
be willing to switch to marvell,mv78230-a0-i2c and to change their dtb.

If we introduce the marvell,mv78230-b0-i2c compatible string, then the new
kernel with the same dtb will have different behavior. People using the A0
will have a booting kernel, but I fear that people using B0 revision won't
be aware of the regression.

Gregory


> we've discovered that the A0 revision has an errata where offloading
> doesn't work.  The B0 revision of the SoC has fixed offloading for i2c.
> 
> In my mind, this means that we should create a fix for the driver to
> disable offloading unless it can determine it's running B0 or newer.
> This is easy once we nail down the compatible strings.
> 
> The second thing we need to do is update the binding documentation so
> that the devicetree can describe the hardware accurately.  I think we
> should keep 'marvell,mv78230-i2c' as it is (the driver fix mentioned
> above will disable offloading), and add a new compatible
> string, 'marvell,mv78230-b0-i2c'.  The driver can then be updated to
> enable offloading when it sees this compatible string, or it can
> determine the SoC revision itself (via mach code).
> 
> Third, we need to be able to differentiate between the two shipped
> AX3-4 boards by openblocks.  I think this should follow the same pattern
> we decide for the i2c compatible string.  So, if we go with my proposal,
> we would have plathome,openblocks-ax3-4 and
> plathome,openblocks-ax3-4-b0.
> 
> Basically, I'm really uneasy about dropping marvell,mv78230-i2c and
> essentially re-defining it to marvell,mv78230-a0-i2c.  It feels like
> it's breaking backwards compatibility.  But I'm having trouble clearly
> describing how Gregory's proposed change exactly does break backwards
> compatibility.  Can a DT maintainer explain it more clearly than I?
> 
> thx,
> 
> Jason.
> 
> PS- Well, this ended up being a toppost.  Oops.  Sorry.
> 
> On Tue, Dec 31, 2013 at 05:44:51PM +0100, Gregory CLEMENT wrote:
>> The first variants of Openblocks AX3-4 used the revision A0 of the
>> Armada XP SoCs. These early variants have issues related to the i2c
>> controller which prevent to use the offload mechanism and lead to a
>> kernel hang during boot.
>>
>> The new dts file uses the compatible string marvell,mv78230-a0-i2c for
>> the i2c controller, thanks to this the driver disable the offload
>> mechanism and the kernel no more hangs on these boards.
>>
>> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
>> ---
>>  .../arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts |  40 +++++
>>  .../dts/armada-xp-common-openblocks-ax3-4.dtsi     | 177 +++++++++++++++++++++
>>  arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts   | 164 +------------------
>>  3 files changed, 218 insertions(+), 163 deletions(-)
>>  create mode 100644 arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts
>>  create mode 100644 arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi
>>
>> diff --git a/arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts
>> new file mode 100644
>> index 000000000000..b3ea65255c19
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/armada-xp-a0-openblocks-ax3-4.dts
>> @@ -0,0 +1,40 @@
>> +/*
>> + * Device Tree file for OpenBlocks AX3-4 board with A0 SoC
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2.  This program is licensed "as is" without any
>> + * warranty of any kind, whether express or implied.
>> + */
>> +
>> +/dts-v1/;
>> +#include "armada-xp-common-openblocks-ax3-4.dtsi"
>> +
>> +/ {
>> +	model = "PlatHome OpenBlocks AX3-4 board (A0 SoC)";
>> +	compatible = "plathome,openblocks-ax3-4", "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
>> +
>> +	chosen {
>> +		bootargs = "console=ttyS0,115200 earlyprintk";
>> +	};
>> +
>> +	memory {
>> +		device_type = "memory";
>> +		reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */
>> +	};
>> +
>> +	soc {
>> +
>> +		internal-regs {
>> +			i2c at 11000 {
>> +				compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
>> +			};
>> +			i2c at 11100 {
>> +				compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi b/arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi
>> new file mode 100644
>> index 000000000000..0d452b07baf5
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/armada-xp-common-openblocks-ax3-4.dtsi
>> @@ -0,0 +1,177 @@
>> +/*
>> + * Device Tree file for OpenBlocks AX3-4 board
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2.  This program is licensed "as is" without any
>> + * warranty of any kind, whether express or implied.
>> + */
>> +
>> +#include "armada-xp-mv78260.dtsi"
>> +
>> +/ {
>> +	soc {
>> +		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
>> +			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
>> +			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>;
>> +
>> +		devbus-bootcs {
>> +			status = "okay";
>> +
>> +			/* Device Bus parameters are required */
>> +
>> +			/* Read parameters */
>> +			devbus,bus-width    = <8>;
>> +			devbus,turn-off-ps  = <60000>;
>> +			devbus,badr-skew-ps = <0>;
>> +			devbus,acc-first-ps = <124000>;
>> +			devbus,acc-next-ps  = <248000>;
>> +			devbus,rd-setup-ps  = <0>;
>> +			devbus,rd-hold-ps   = <0>;
>> +
>> +			/* Write parameters */
>> +			devbus,sync-enable = <0>;
>> +			devbus,wr-high-ps  = <60000>;
>> +			devbus,wr-low-ps   = <60000>;
>> +			devbus,ale-wr-ps   = <60000>;
>> +
>> +			/* NOR 128 MiB */
>> +			nor at 0 {
>> +				compatible = "cfi-flash";
>> +				reg = <0 0x8000000>;
>> +				bank-width = <2>;
>> +			};
>> +		};
>> +
>> +		pcie-controller {
>> +			status = "okay";
>> +			/* Internal mini-PCIe connector */
>> +			pcie at 1,0 {
>> +				/* Port 0, Lane 0 */
>> +				status = "okay";
>> +			};
>> +		};
>> +
>> +		internal-regs {
>> +			serial at 12000 {
>> +				clock-frequency = <250000000>;
>> +				status = "okay";
>> +			};
>> +			serial at 12100 {
>> +				clock-frequency = <250000000>;
>> +				status = "okay";
>> +			};
>> +			pinctrl {
>> +				led_pins: led-pins-0 {
>> +					marvell,pins = "mpp49", "mpp51", "mpp53";
>> +					marvell,function = "gpio";
>> +				};
>> +			};
>> +			leds {
>> +				compatible = "gpio-leds";
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&led_pins>;
>> +
>> +				red_led {
>> +					label = "red_led";
>> +					gpios = <&gpio1 17 1>;
>> +					default-state = "off";
>> +				};
>> +
>> +				yellow_led {
>> +					label = "yellow_led";
>> +					gpios = <&gpio1 19 1>;
>> +					default-state = "off";
>> +				};
>> +
>> +				green_led {
>> +					label = "green_led";
>> +					gpios = <&gpio1 21 1>;
>> +					default-state = "off";
>> +					linux,default-trigger = "heartbeat";
>> +				};
>> +			};
>> +
>> +			gpio_keys {
>> +				compatible = "gpio-keys";
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				button at 1 {
>> +					label = "Init Button";
>> +					linux,code = <116>;
>> +					gpios = <&gpio1 28 0>;
>> +				};
>> +			};
>> +
>> +			mdio {
>> +				phy0: ethernet-phy at 0 {
>> +					reg = <0>;
>> +				};
>> +
>> +				phy1: ethernet-phy at 1 {
>> +					reg = <1>;
>> +				};
>> +
>> +				phy2: ethernet-phy at 2 {
>> +					reg = <2>;
>> +				};
>> +
>> +				phy3: ethernet-phy at 3 {
>> +					reg = <3>;
>> +				};
>> +			};
>> +
>> +			ethernet at 70000 {
>> +				status = "okay";
>> +				phy = <&phy0>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			ethernet at 74000 {
>> +				status = "okay";
>> +				phy = <&phy1>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			ethernet at 30000 {
>> +				status = "okay";
>> +				phy = <&phy2>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			ethernet at 34000 {
>> +				status = "okay";
>> +				phy = <&phy3>;
>> +				phy-mode = "sgmii";
>> +			};
>> +			i2c at 11000 {
>> +				status = "okay";
>> +				clock-frequency = <400000>;
>> +			};
>> +			i2c at 11100 {
>> +				status = "okay";
>> +				clock-frequency = <400000>;
>> +
>> +				s35390a: s35390a at 30 {
>> +					compatible = "s35390a";
>> +					reg = <0x30>;
>> +				};
>> +			};
>> +			sata at a0000 {
>> +				nr-ports = <2>;
>> +				status = "okay";
>> +			};
>> +
>> +			/* Front side USB 0 */
>> +			usb at 50000 {
>> +				status = "okay";
>> +			};
>> +
>> +			/* Front side USB 1 */
>> +			usb at 51000 {
>> +				status = "okay";
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
>> index 5695afcc04bf..1983de77c3ff 100644
>> --- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
>> +++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
>> @@ -11,7 +11,7 @@
>>   */
>>  
>>  /dts-v1/;
>> -#include "armada-xp-mv78260.dtsi"
>> +#include "armada-xp-common-openblocks-ax3-4.dtsi"
>>  
>>  / {
>>  	model = "PlatHome OpenBlocks AX3-4 board";
>> @@ -25,166 +25,4 @@
>>  		device_type = "memory";
>>  		reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */
>>  	};
>> -
>> -	soc {
>> -		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
>> -			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
>> -			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>;
>> -
>> -		devbus-bootcs {
>> -			status = "okay";
>> -
>> -			/* Device Bus parameters are required */
>> -
>> -			/* Read parameters */
>> -			devbus,bus-width    = <8>;
>> -			devbus,turn-off-ps  = <60000>;
>> -			devbus,badr-skew-ps = <0>;
>> -			devbus,acc-first-ps = <124000>;
>> -			devbus,acc-next-ps  = <248000>;
>> -			devbus,rd-setup-ps  = <0>;
>> -			devbus,rd-hold-ps   = <0>;
>> -
>> -			/* Write parameters */
>> -			devbus,sync-enable = <0>;
>> -			devbus,wr-high-ps  = <60000>;
>> -			devbus,wr-low-ps   = <60000>;
>> -			devbus,ale-wr-ps   = <60000>;
>> -
>> -			/* NOR 128 MiB */
>> -			nor at 0 {
>> -				compatible = "cfi-flash";
>> -				reg = <0 0x8000000>;
>> -				bank-width = <2>;
>> -			};
>> -		};
>> -
>> -		pcie-controller {
>> -			status = "okay";
>> -			/* Internal mini-PCIe connector */
>> -			pcie at 1,0 {
>> -				/* Port 0, Lane 0 */
>> -				status = "okay";
>> -			};
>> -		};
>> -
>> -		internal-regs {
>> -			serial at 12000 {
>> -				clock-frequency = <250000000>;
>> -				status = "okay";
>> -			};
>> -			serial at 12100 {
>> -				clock-frequency = <250000000>;
>> -				status = "okay";
>> -			};
>> -			pinctrl {
>> -				led_pins: led-pins-0 {
>> -					marvell,pins = "mpp49", "mpp51", "mpp53";
>> -					marvell,function = "gpio";
>> -				};
>> -			};
>> -			leds {
>> -				compatible = "gpio-leds";
>> -				pinctrl-names = "default";
>> -				pinctrl-0 = <&led_pins>;
>> -
>> -				red_led {
>> -					label = "red_led";
>> -					gpios = <&gpio1 17 1>;
>> -					default-state = "off";
>> -				};
>> -
>> -				yellow_led {
>> -					label = "yellow_led";
>> -					gpios = <&gpio1 19 1>;
>> -					default-state = "off";
>> -				};
>> -
>> -				green_led {
>> -					label = "green_led";
>> -					gpios = <&gpio1 21 1>;
>> -					default-state = "off";
>> -					linux,default-trigger = "heartbeat";
>> -				};
>> -			};
>> -
>> -			gpio_keys {
>> -				compatible = "gpio-keys";
>> -				#address-cells = <1>;
>> -				#size-cells = <0>;
>> -
>> -				button at 1 {
>> -					label = "Init Button";
>> -					linux,code = <116>;
>> -					gpios = <&gpio1 28 0>;
>> -				};
>> -			};
>> -
>> -			mdio {
>> -				phy0: ethernet-phy at 0 {
>> -					reg = <0>;
>> -				};
>> -
>> -				phy1: ethernet-phy at 1 {
>> -					reg = <1>;
>> -				};
>> -
>> -				phy2: ethernet-phy at 2 {
>> -					reg = <2>;
>> -				};
>> -
>> -				phy3: ethernet-phy at 3 {
>> -					reg = <3>;
>> -				};
>> -			};
>> -
>> -			ethernet at 70000 {
>> -				status = "okay";
>> -				phy = <&phy0>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			ethernet at 74000 {
>> -				status = "okay";
>> -				phy = <&phy1>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			ethernet at 30000 {
>> -				status = "okay";
>> -				phy = <&phy2>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			ethernet at 34000 {
>> -				status = "okay";
>> -				phy = <&phy3>;
>> -				phy-mode = "sgmii";
>> -			};
>> -			i2c at 11000 {
>> -				status = "okay";
>> -				clock-frequency = <400000>;
>> -			};
>> -			i2c at 11100 {
>> -				status = "okay";
>> -				clock-frequency = <400000>;
>> -
>> -				s35390a: s35390a at 30 {
>> -					compatible = "s35390a";
>> -					reg = <0x30>;
>> -				};
>> -			};
>> -			sata at a0000 {
>> -				nr-ports = <2>;
>> -				status = "okay";
>> -			};
>> -
>> -			/* Front side USB 0 */
>> -			usb at 50000 {
>> -				status = "okay";
>> -			};
>> -
>> -			/* Front side USB 1 */
>> -			usb at 51000 {
>> -				status = "okay";
>> -			};
>> -		};
>> -	};
>>  };
>> -- 
>> 1.8.1.2
>>


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  parent reply	other threads:[~2014-01-02 16:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-31 16:44 [RFC PATCH 0/3] Fix i2c bus hang on A0 version of the Armada XP SoCs Gregory CLEMENT
2013-12-31 16:44 ` Gregory CLEMENT
     [not found] ` <1388508293-9141-1-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2013-12-31 16:44   ` [RFC PATCH 1/3] arm: mvebu: add new dts file for old variant of Openblocks AX3-4 Gregory CLEMENT
2013-12-31 16:44     ` Gregory CLEMENT
     [not found]     ` <1388508293-9141-2-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-01 21:41       ` Jason Cooper
2014-01-01 21:41         ` Jason Cooper
     [not found]         ` <20140101214116.GY19878-u4khhh1J0LxI1Ri9qeTfzeTW4wlIGRCZ@public.gmane.org>
2014-01-01 21:42           ` Jason Cooper
2014-01-01 21:42             ` Jason Cooper
2014-01-02 16:17           ` Gregory CLEMENT [this message]
2014-01-02 16:17             ` Gregory CLEMENT
2013-12-31 16:44   ` [RFC PATCH 2/3] i2c: mv64xxx: Fix bus hang on A0 version of the Armada XP SoCs Gregory CLEMENT
2013-12-31 16:44     ` Gregory CLEMENT
2013-12-31 16:44   ` [RFC PATCH 3/3] i2c: mv64xxx: Document the newly introduced Armada XP A0 compatible Gregory CLEMENT
2013-12-31 16:44     ` Gregory CLEMENT
     [not found]     ` <1388508293-9141-4-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-01 21:44       ` Jason Cooper
2014-01-01 21:44         ` Jason Cooper
2014-01-01 21:45       ` Jason Cooper
2014-01-01 21:45         ` Jason Cooper
     [not found]         ` <20140101214552.GB19878-u4khhh1J0LxI1Ri9qeTfzeTW4wlIGRCZ@public.gmane.org>
2014-01-02 16:34           ` Gregory CLEMENT
2014-01-02 16:34             ` Gregory CLEMENT
2014-01-01 19:28   ` [RFC PATCH 0/3] Fix i2c bus hang on A0 version of the Armada XP SoCs Andrew Lunn
2014-01-01 19:28     ` Andrew Lunn
     [not found]     ` <20140101192816.GP32537-g2DYL2Zd6BY@public.gmane.org>
2014-01-02 16:22       ` Gregory CLEMENT
2014-01-02 16:22         ` Gregory CLEMENT

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52C59125.9050407@free-electrons.com \
    --to=gregory.clement-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
    --cc=andrew-g2DYL2Zd6BY@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.