[PATCHv5 0/5] Support for Marvell switches with integrated CPUs

Gregory CLEMENT gregory.clement at free-electrons.com
Fri Jan 27 08:49:27 PST 2017


Hi, 
 
 On ven., janv. 27 2017, Gregory CLEMENT <gregory.clement at free-electrons.com> wrote:

> Hi all,
>  
>  On ven., janv. 27 2017, Chris Packham <chris.packham at alliedtelesis.co.nz> wrote:
>
>> The 98DX3236, 98DX3336 and 98DX4251 are a set of switch ASICs with
>> integrated CPUs. They CPU block is common within these product lines and
>> (as far as I can tell/have been told) is based on the Armada XP. There
>> are a few differences due to the fact they have to squeeze the CPU into
>> the same package as the switch.
>>
>> I've rebased this series against linux-pinctrl/devel to get access to
>> mvebu_mmio_mpp_ctrl. Everything else still applies cleanly to
>> v4.10.0-rc5.
>
> Just to let you know that I plan to apply the 3 arm patch once Chris
> will have sent the new series with the minor fixes I asked on patch 3.

I meant patch 2!

And now patch 5 too :)

Gregory


> I already applied them in the for-next branch to benefit of some build
> test coverage.
>
> Stephen,
>
> you gave your Acked-by on the first patch, but don't you plan to apply
> it on the clk branch?
>
> If you really want I can apply on mvebu but there is no build
> dependencies, so the order the patches will be merged is not important.
>
> Linus,
>
> I expect you will apply the pinctrl patch on your tree as it depend of
> code already there.
>
> Thanks,
>
> Gregory
>
>>
>> Chris Packham (4):
>>   clk: mvebu: support for 98DX3236 SoC
>>     Changes in v2:
>>     - Update devicetree binding documentation for new compatible string
>>     Changes in v3:
>>     - Add 98dx3236 support to mvebu/clk-corediv.c rather than creating a new
>>       driver.
>>     - Document mv98dx3236-corediv-clock binding
>>     Changes in v4:
>>     - None
>>     Changes in v5:
>>     - Collect ack from Rob
>>     - Remove explicit initialisation of fields to 0 in mv98dx3236_coreclks
>>     - Register dummy clock provider for marvell,mv98dx3236-cpu-clock
>>   arm: mvebu: support for SMP on 98DX3336 SoC
>>     Changes in v2:
>>     - Document new enable-method value
>>     - Correct some references from 98DX4521 to 98DX3236
>>     Changes in v3:
>>     - Simplify mv98dx3236_resume_init by using of_io_request_and_map()
>>     Changes in v4:
>>     - integrate changes into platsmp.c instead of new init call
>>     - avoid duplicated code.
>>     - fix error return
>>     - Collect ack from Rob
>>     Changes in v5:
>>     - Remove useless casts (thanks to Stephen Boyd)
>>   arm: mvebu: Add device tree for 98DX3236 SoCs
>>     Changes in v2:
>>     - Update devicetree binding documentation to reflect that 98DX3336 and
>>       984251 are supersets of 98DX3236.
>>     - disable crypto block
>>     - disable sdio for 98DX3236, enable for 98DX4251
>>     Changes in v3:
>>     - fix typo 4521 -> 4251
>>     - document prestera bindings
>>     - rework corediv-clock binding
>>     - add label to packet processor node
>>     - add new compatible string for DFX server
>>     Changes in v4:
>>     - Collect ack from Rob
>>     Changes in v5:
>>     - Fixup license text. Add labels to nodes.
>>   arm: mvebu: Add device tree for db-dxbc2 and db-xc3-24g4xg boards
>>     Changes in v5:
>>     - update license text
>>     - use node labels
>>
>> Kalyan Kinthada (1):
>>   pinctrl: mvebu: pinctrl driver for 98DX3236 SoC
>>     Changes in v2:
>>     - include sdio support for the 98DX4251
>>     Changes in v3:
>>     - None
>>     Changes in v4:
>>     - Correct some discrepencies between binding and driver.
>>     - Collect acks from Rob and Sebastian
>>     Changes in v5:
>>     - Update bindings to reflect "gpo" pins
>>     - Use mvebu_mmio_mpp_ctrl instead of armada_xp_mpp_ctrl (note this is reliant
>>       on changes queued in linux-pinctrl)
>>
>>  Documentation/devicetree/bindings/arm/cpus.txt     |   1 +
>>  .../bindings/arm/marvell/98dx3236-resume-ctrl.txt  |  16 ++
>>  .../devicetree/bindings/arm/marvell/98dx3236.txt   |  23 ++
>>  .../bindings/clock/mvebu-corediv-clock.txt         |   1 +
>>  .../devicetree/bindings/clock/mvebu-cpu-clock.txt  |   1 +
>>  .../devicetree/bindings/net/marvell,prestera.txt   |  50 ++++
>>  .../pinctrl/marvell,armada-98dx3236-pinctrl.txt    |  46 ++++
>>  arch/arm/boot/dts/armada-xp-98dx3236.dtsi          | 254 +++++++++++++++++++++
>>  arch/arm/boot/dts/armada-xp-98dx3336.dtsi          |  76 ++++++
>>  arch/arm/boot/dts/armada-xp-98dx4251.dtsi          |  90 ++++++++
>>  arch/arm/boot/dts/db-dxbc2.dts                     | 151 ++++++++++++
>>  arch/arm/boot/dts/db-xc3-24g4xg.dts                | 142 ++++++++++++
>>  arch/arm/mach-mvebu/platsmp.c                      |  86 +++++++
>>  drivers/clk/mvebu/armada-xp.c                      |  39 ++++
>>  drivers/clk/mvebu/clk-corediv.c                    |  23 ++
>>  drivers/clk/mvebu/clk-cpu.c                        |   8 +
>>  drivers/pinctrl/mvebu/pinctrl-armada-xp.c          | 156 +++++++++++++
>>  17 files changed, 1163 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/arm/marvell/98dx3236-resume-ctrl.txt
>>  create mode 100644 Documentation/devicetree/bindings/arm/marvell/98dx3236.txt
>>  create mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.txt
>>  create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt
>>  create mode 100644 arch/arm/boot/dts/armada-xp-98dx3236.dtsi
>>  create mode 100644 arch/arm/boot/dts/armada-xp-98dx3336.dtsi
>>  create mode 100644 arch/arm/boot/dts/armada-xp-98dx4251.dtsi
>>  create mode 100644 arch/arm/boot/dts/db-dxbc2.dts
>>  create mode 100644 arch/arm/boot/dts/db-xc3-24g4xg.dts
>>
>> interdiff to v4:
>>
>>  diff --git a/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt
>>  index 520562a7dc2a..c7b4e3a6b2c6 100644
>> @@ -85,7 +86,7 @@
>>           by address and length of the PMU DFS registers
>>   - #clock-cells : should be set to 1.
>>  diff --git a/drivers/clk/mvebu/armada-xp.c b/drivers/clk/mvebu/armada-xp.c
>> -index b3094315a3c0..0413bf8284e0 100644
>> +index b3094315a3c0..890a863ae0d0 100644
>>  --- a/drivers/clk/mvebu/armada-xp.c
>>  +++ b/drivers/clk/mvebu/armada-xp.c
>>   	return 250000000;
>> @@ -118,9 +119,6 @@
>>  +static const struct coreclk_soc_desc mv98dx3236_coreclks = {
>>  +	.get_tclk_freq = mv98dx3236_get_tclk_freq,
>>  +	.get_cpu_freq = mv98dx3236_get_cpu_freq,
>> -+	.get_clk_ratio = NULL,
>> -+	.ratios = NULL,
>> -+	.num_ratios = 0,
>>  +};
>>  +
>>   /*
>> @@ -200,53 +198,16 @@
>>  +CLK_OF_DECLARE(mv98dx3236_corediv_clk, "marvell,mv98dx3236-corediv-clock",
>>  +	       mv98dx3236_corediv_clk_init);
>>  diff --git a/drivers/clk/mvebu/clk-cpu.c b/drivers/clk/mvebu/clk-cpu.c
>> -index 5837eb8a212f..3b8f0e14fa01 100644
>> +index 5837eb8a212f..044892b6534d 100644
>>  --- a/drivers/clk/mvebu/clk-cpu.c
>>  +++ b/drivers/clk/mvebu/clk-cpu.c
>> - 	.set_rate = clk_cpu_set_rate,
>> - };
>> - 
>> --static void __init of_cpu_clk_setup(struct device_node *node)
>> -+/* Add parameter to allow this to support different clock operations. */
>> -+static void __init _of_cpu_clk_setup(struct device_node *node,
>> -+			const struct clk_ops *cpu_clk_ops)
>> - {
>> - 	struct cpu_clk *cpuclk;
>> - 	void __iomem *clock_complex_base = of_iomap(node, 0);
>> - 		cpuclk[cpu].hw.init = &init;
>>   
>> - 		init.name = cpuclk[cpu].clk_name;
>> --		init.ops = &cpu_ops;
>> -+		init.ops = cpu_clk_ops;
>> - 		init.flags = 0;
>> - 		init.parent_names = &cpuclk[cpu].parent_name;
>> - 		init.num_parents = 1;
>> - 	iounmap(clock_complex_base);
>> - }
>> - 
>> -+/* Use this function to call the generic setup with the correct
>> -+ * clock operation
>> -+ */
>> -+static void __init of_cpu_clk_setup(struct device_node *node)
>> -+{
>> -+	_of_cpu_clk_setup(node, &cpu_ops);
>> -+}
>> -+
>>   CLK_OF_DECLARE(armada_xp_cpu_clock, "marvell,armada-xp-cpu-clock",
>>   					 of_cpu_clk_setup);
>>  +
>> -+/* Define the clock and operations for the mv98dx3236 - it cannot perform
>> -+ * any operations.
>> -+ */
>> -+static const struct clk_ops mv98dx3236_cpu_ops = {
>> -+	.recalc_rate = NULL,
>> -+	.round_rate = NULL,
>> -+	.set_rate = NULL,
>> -+};
>> -+
>>  +static void __init of_mv98dx3236_cpu_clk_setup(struct device_node *node)
>>  +{
>> -+	_of_cpu_clk_setup(node, &mv98dx3236_cpu_ops);
>> ++	of_clk_add_provider(node, of_clk_src_simple_get, NULL);
>>  +}
>>  +
>>  +CLK_OF_DECLARE(mv98dx3236_cpu_clock, "marvell,mv98dx3236-cpu-clock",
>> @@ -285,7 +247,7 @@
>>   			    "qcom,gcc-msm8660"
>> diff --git
> a/Documentation/devicetree/bindings/arm/marvell/98dx3236-resume-ctrl.txt
> b/Documentation/devicetree/bindings/arm/marvell/98dx3236-resume-ctrl.txt
>>  new file mode 100644
>> -index 000000000000..8082ba872edd
>> +index 000000000000..26eb9d3aa630
>>  --- /dev/null
>>  +++ b/Documentation/devicetree/bindings/arm/marvell/98dx3236-resume-ctrl.txt
>>  +Resume Control
>> @@ -304,10 +266,8 @@
>>  +	compatible = "marvell,98dx3336-resume-ctrl";
>>  +	reg = <0x20980 0x10>;
>>  +};
>> -+
>> -+
>>  diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
>> -index 46c742d3bd41..59be3ca0464f 100644
>> +index 46c742d3bd41..a5b464497e1a 100644
>>  --- a/arch/arm/mach-mvebu/platsmp.c
>>  +++ b/arch/arm/mach-mvebu/platsmp.c
>>   
>> @@ -327,7 +287,7 @@
>>  +static const struct of_device_id of_mv98dx3236_resume_table[] = {
>>  +	{
>>  +		.compatible = "marvell,98dx3336-resume-ctrl",
>> -+		.data = (void *)&mv98dx3336_resume_controller,
>> ++		.data = &mv98dx3336_resume_controller,
>>  +	},
>>  +	{ /* end of list */ },
>>  +};
>> @@ -337,7 +297,7 @@
>>  +	const struct of_device_id *match;
>>  +	struct device_node *np;
>>  +	void __iomem *base;
>> -+	struct resume_controller *rc;
>> ++	const struct resume_controller *rc;
>>  +
>>  +	WARN_ON(hw_cpu != 1);
>>  +
>> @@ -347,7 +307,7 @@
>>  +		return -ENODEV;
>>  +
>>  +	base = of_io_request_and_map(np, 0, of_node_full_name(np));
>> -+	rc = (struct resume_controller *)match->data;
>> ++	rc = match->data;
>>  +	of_node_put(np);
>>  +	if (IS_ERR(base))
>>  +		return PTR_ERR(base);
>> @@ -411,15 +371,17 @@
>> diff --git
> a/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt
> b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt
>>  new file mode 100644
>> -index 000000000000..d4e6ecdfc853
>> +index 000000000000..97aef67ee769
>>  --- /dev/null
>>  +++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-98dx3236-pinctrl.txt
>>  +* Marvell 98dx3236 pinctrl driver for mpp
>> @@ -435,41 +397,41 @@
>>  +
>>  +name          pins     functions
>>  +================================================================================
>> -+mpp0          0        gpio, spi0(mosi), dev(ad8)
>> ++mpp0          0        gpo, spi0(mosi), dev(ad8)
>>  +mpp1          1        gpio, spi0(miso), dev(ad9)
>> -+mpp2          2        gpio, spi0(sck), dev(ad10)
>> ++mpp2          2        gpo, spi0(sck), dev(ad10)
>>  +mpp3          3        gpio, spi0(cs0), dev(ad11)
>>  +mpp4          4        gpio, spi0(cs1), smi(mdc), dev(cs0)
>>  +mpp5          5        gpio, pex(rsto), sd0(cmd), dev(bootcs)
>> -+mpp6          6        gpio, sd0(clk), dev(a2)
>> ++mpp6          6        gpo, sd0(clk), dev(a2)
>>  +mpp7          7        gpio, sd0(d0), dev(ale0)
>>  +mpp8          8        gpio, sd0(d1), dev(ale1)
>>  +mpp9          9        gpio, sd0(d2), dev(ready0)
>>  +mpp10         10       gpio, sd0(d3), dev(ad12)
>>  +mpp11         11       gpio, uart1(rxd), uart0(cts), dev(ad13)
>> -+mpp12         12       gpio, uart1(txd), uart0(rts), dev(ad14)
>> ++mpp12         12       gpo, uart1(txd), uart0(rts), dev(ad14)
>>  +mpp13         13       gpio, intr(out), dev(ad15)
>>  +mpp14         14       gpio, i2c0(sck)
>>  +mpp15         15       gpio, i2c0(sda)
>> -+mpp16         16       gpio, dev(oe)
>> -+mpp17         17       gpio, dev(clk)
>> ++mpp16         16       gpo, dev(oe)
>> ++mpp17         17       gpo, dev(clkout)
>>  +mpp18         18       gpio, uart1(txd)
>>  +mpp19         19       gpio, uart1(rxd), dev(rb)
>> -+mpp20         20       gpio, dev(we)
>> -+mpp21         21       gpio, dev(ad0)
>> -+mpp22         22       gpio, dev(ad1)
>> -+mpp23         23       gpio, dev(ad2)
>> -+mpp24         24       gpio, dev(ad3)
>> -+mpp25         25       gpio, dev(ad4)
>> -+mpp26         26       gpio, dev(ad5)
>> -+mpp27         27       gpio, dev(ad6)
>> -+mpp28         28       gpio, dev(ad7)
>> -+mpp29         29       gpio, dev(a0)
>> -+mpp30         30       gpio, dev(a1)
>> ++mpp20         20       gpo, dev(we0)
>> ++mpp21         21       gpo, dev(ad0)
>> ++mpp22         22       gpo, dev(ad1)
>> ++mpp23         23       gpo, dev(ad2)
>> ++mpp24         24       gpo, dev(ad3)
>> ++mpp25         25       gpo, dev(ad4)
>> ++mpp26         26       gpo, dev(ad5)
>> ++mpp27         27       gpo, dev(ad6)
>> ++mpp28         28       gpo, dev(ad7)
>> ++mpp29         29       gpo, dev(a0)
>> ++mpp30         30       gpo, dev(a1)
>>  +mpp31         31       gpio, slv_smi(mdc), smi(mdc), dev(we1)
>>  +mpp32         32       gpio, slv_smi(mdio), smi(mdio), dev(cs1)
>>  diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
>> -index e4ea71a9d985..554eeae8cd21 100644
>> +index 63e1bd506983..61cbc138703e 100644
>>  --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
>>  +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
>>   	V_MV78460	= BIT(2),
>> @@ -495,8 +457,8 @@
>>  +		 MPP_VAR_FUNCTION(0x2, "spi0", "miso",       V_98DX3236_PLUS),
>>  +		 MPP_VAR_FUNCTION(0x4, "dev", "ad9",         V_98DX3236_PLUS)),
>>  +	MPP_MODE(2,
>> -+		 MPP_VAR_FUNCTION(0x0, "gpio", NULL,         V_98DX3236_PLUS),
>> -+		 MPP_VAR_FUNCTION(0x2, "spi0", "csk",        V_98DX3236_PLUS),
>> ++		 MPP_VAR_FUNCTION(0x0, "gpo", NULL,          V_98DX3236_PLUS),
>> ++		 MPP_VAR_FUNCTION(0x2, "spi0", "sck",        V_98DX3236_PLUS),
>>  +		 MPP_VAR_FUNCTION(0x4, "dev", "ad10",        V_98DX3236_PLUS)),
>>  +	MPP_MODE(3,
>>  +		 MPP_VAR_FUNCTION(0x0, "gpio", NULL,         V_98DX3236_PLUS),
>> @@ -511,7 +473,7 @@
>>  +		 MPP_VAR_FUNCTION(0x0, "gpio", NULL,         V_98DX3236_PLUS),
>>  +		 MPP_VAR_FUNCTION(0x1, "pex", "rsto",        V_98DX3236_PLUS),
>>  +		 MPP_VAR_FUNCTION(0x2, "sd0", "cmd",         V_98DX4251),
>> -+		 MPP_VAR_FUNCTION(0x4, "dev", "bootcs0",     V_98DX3236_PLUS)),
>> ++		 MPP_VAR_FUNCTION(0x4, "dev", "bootcs",      V_98DX3236_PLUS)),
>>  +	MPP_MODE(6,
>>  +		 MPP_VAR_FUNCTION(0x0, "gpo", NULL,          V_98DX3236_PLUS),
>>  +		 MPP_VAR_FUNCTION(0x2, "sd0", "clk",         V_98DX4251),
>> @@ -563,7 +525,8 @@
>>  +		 MPP_VAR_FUNCTION(0x3, "uart1", "txd",       V_98DX3236_PLUS)),
>>  +	MPP_MODE(19,
>>  +		 MPP_VAR_FUNCTION(0x0, "gpio", NULL,         V_98DX3236_PLUS),
>> -+		 MPP_VAR_FUNCTION(0x3, "uart1", "rxd",       V_98DX3236_PLUS)),
>> ++		 MPP_VAR_FUNCTION(0x3, "uart1", "rxd",       V_98DX3236_PLUS),
>> ++		 MPP_VAR_FUNCTION(0x4, "dev", "rb",          V_98DX3236_PLUS)),
>>  +	MPP_MODE(20,
>>  +		 MPP_VAR_FUNCTION(0x0, "gpo", NULL,          V_98DX3236_PLUS),
>>  +		 MPP_VAR_FUNCTION(0x4, "dev", "we0",         V_98DX3236_PLUS)),
>> @@ -630,11 +593,11 @@
>>   };
>>   
>>  +static struct mvebu_mpp_ctrl mv98dx3236_mpp_controls[] = {
>> -+	MPP_FUNC_CTRL(0, 32, NULL, armada_xp_mpp_ctrl),
>> ++	MPP_FUNC_CTRL(0, 32, NULL, mvebu_mmio_mpp_ctrl),
>>  +};
>>  +
>>  +static struct pinctrl_gpio_range mv98dx3236_mpp_gpio_ranges[] = {
>> -+	MPP_GPIO_RANGE(0,   0,  0, 32),
>> ++	MPP_GPIO_RANGE(0, 0, 0, 32),
>>  +};
>>  +
>>   static int armada_xp_pinctrl_suspend(struct platform_device *pdev,
>> @@ -767,7 +731,7 @@
>>  +};
>>  diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
>>  new file mode 100644
>> -index 000000000000..4b7b2fe3b682
>> +index 000000000000..9461128fae24
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
>>  +/*
>> @@ -785,17 +749,17 @@
>>  + *     published by the Free Software Foundation; either version 2 of the
>>  + *     License, or (at your option) any later version.
>>  + *
>> -+ *     This file is distributed in the hope that it will be useful
>> ++ *     This file is distributed in the hope that it will be useful,
>>  + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>  + *     GNU General Public License for more details.
>>  + *
>> -+ * Or, alternatively
>> ++ * Or, alternatively,
>>  + *
>>  + *  b) Permission is hereby granted, free of charge, to any person
>>  + *     obtaining a copy of this software and associated documentation
>>  + *     files (the "Software"), to deal in the Software without
>> -+ *     restriction, including without limitation the rights to use
>> ++ *     restriction, including without limitation the rights to use,
>>  + *     copy, modify, merge, publish, distribute, sublicense, and/or
>>  + *     sell copies of the Software, and to permit persons to whom the
>>  + *     Software is furnished to do so, subject to the following
>> @@ -804,11 +768,11 @@
>>  + *     The above copyright notice and this permission notice shall be
>>  + *     included in all copies or substantial portions of the Software.
>>  + *
>> -+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
>> ++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>  + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
>>  + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>  + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
>> -+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
>> ++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>  + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>>  + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
>>  + *     OTHER DEALINGS IN THE SOFTWARE.
>> @@ -851,9 +815,9 @@
>>  +			  MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>;
>>  +
>>  +		/*
>> -+		 * 98DX3236 has 1 x1 PCIe unit Gen2.0: One unit can be
>> ++		 * 98DX3236 has 1 x1 PCIe unit Gen2.0
>>  +		 */
>> -+		pcie-controller {
>> ++		pciec: pcie-controller at 82000000 {
>>  +			compatible = "marvell,armada-xp-pcie";
>>  +			status = "disabled";
>>  +			device_type = "pci";
>> @@ -870,7 +834,7 @@
>>  +				0x81000000 0x1 0       MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO  */
>>  +				0x82000000 0x2 0       MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */>;
>>  +
>> -+			pcie at 1,0 {
>> ++			pcie1: pcie at 1,0 {
>>  +				device_type = "pci";
>>  +				assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
>>  +				reg = <0x0800 0 0 0 0>;
>> @@ -967,7 +931,7 @@
>>  +			};
>>  +		};
>>  +
>> -+		dfx-registers {
>> ++		dfxr: dfx-registers at ac000000 {
>>  +			compatible = "simple-bus";
>>  +			#address-cells = <1>;
>>  +			#size-cells = <1>;
>> @@ -987,7 +951,7 @@
>>  +			};
>>  +		};
>>  +
>> -+		switch {
>> ++		switch: switch at a8000000 {
>>  +			compatible = "simple-bus";
>>  +			#address-cells = <1>;
>>  +			#size-cells = <1>;
>> @@ -1026,7 +990,7 @@
>>  +};
>>  diff --git a/arch/arm/boot/dts/armada-xp-98dx3336.dtsi b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
>>  new file mode 100644
>> -index 000000000000..a9b0f47f8df9
>> +index 000000000000..e1580afdc260
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
>>  +/*
>> @@ -1044,17 +1008,17 @@
>>  + *     published by the Free Software Foundation; either version 2 of the
>>  + *     License, or (at your option) any later version.
>>  + *
>> -+ *     This file is distributed in the hope that it will be useful
>> ++ *     This file is distributed in the hope that it will be useful,
>>  + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>  + *     GNU General Public License for more details.
>>  + *
>> -+ * Or, alternatively
>> ++ * Or, alternatively,
>>  + *
>>  + *  b) Permission is hereby granted, free of charge, to any person
>>  + *     obtaining a copy of this software and associated documentation
>>  + *     files (the "Software"), to deal in the Software without
>> -+ *     restriction, including without limitation the rights to use
>> ++ *     restriction, including without limitation the rights to use,
>>  + *     copy, modify, merge, publish, distribute, sublicense, and/or
>>  + *     sell copies of the Software, and to permit persons to whom the
>>  + *     Software is furnished to do so, subject to the following
>> @@ -1063,16 +1027,16 @@
>>  + *     The above copyright notice and this permission notice shall be
>>  + *     included in all copies or substantial portions of the Software.
>>  + *
>> -+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
>> ++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>  + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
>>  + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>  + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
>> -+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
>> ++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>  + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>>  + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
>>  + *     OTHER DEALINGS IN THE SOFTWARE.
>>  + *
>> -+ * Contains definitions specific to the 98dx3336 SoC that are not
>> ++ * Contains definitions specific to the 98dx3236 SoC that are not
>>  + * common to all Armada XP SoCs.
>>  + */
>>  +
>> @@ -1107,7 +1071,7 @@
>>  +};
>>  diff --git a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
>>  new file mode 100644
>> -index 000000000000..446e6e65ec59
>> +index 000000000000..4b0533a4ccb7
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
>>  +/*
>> @@ -1125,17 +1089,17 @@
>>  + *     published by the Free Software Foundation; either version 2 of the
>>  + *     License, or (at your option) any later version.
>>  + *
>> -+ *     This file is distributed in the hope that it will be useful
>> ++ *     This file is distributed in the hope that it will be useful,
>>  + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>  + *     GNU General Public License for more details.
>>  + *
>> -+ * Or, alternatively
>> ++ * Or, alternatively,
>>  + *
>>  + *  b) Permission is hereby granted, free of charge, to any person
>>  + *     obtaining a copy of this software and associated documentation
>>  + *     files (the "Software"), to deal in the Software without
>> -+ *     restriction, including without limitation the rights to use
>> ++ *     restriction, including without limitation the rights to use,
>>  + *     copy, modify, merge, publish, distribute, sublicense, and/or
>>  + *     sell copies of the Software, and to permit persons to whom the
>>  + *     Software is furnished to do so, subject to the following
>> @@ -1144,11 +1108,11 @@
>>  + *     The above copyright notice and this permission notice shall be
>>  + *     included in all copies or substantial portions of the Software.
>>  + *
>> -+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
>> ++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>  + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
>>  + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>  + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
>> -+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
>> ++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>  + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>>  + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
>>  + *     OTHER DEALINGS IN THE SOFTWARE.
>> @@ -1213,15 +1177,15 @@
>>  diff --git a/arch/arm/boot/dts/db-dxbc2.dts b/arch/arm/boot/dts/db-dxbc2.dts
>>  new file mode 100644
>> -index 000000000000..f56786cea5f8
>> +index 000000000000..a8130805074e
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/db-dxbc2.dts
>>  +/*
>> @@ -1241,17 +1205,17 @@
>>  + *     published by the Free Software Foundation; either version 2 of the
>>  + *     License, or (at your option) any later version.
>>  + *
>> -+ *     This file is distributed in the hope that it will be useful
>> ++ *     This file is distributed in the hope that it will be useful,
>>  + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>  + *     GNU General Public License for more details.
>>  + *
>> -+ * Or, alternatively
>> ++ * Or, alternatively,
>>  + *
>>  + *  b) Permission is hereby granted, free of charge, to any person
>>  + *     obtaining a copy of this software and associated documentation
>>  + *     files (the "Software"), to deal in the Software without
>> -+ *     restriction, including without limitation the rights to use
>> ++ *     restriction, including without limitation the rights to use,
>>  + *     copy, modify, merge, publish, distribute, sublicense, and/or
>>  + *     sell copies of the Software, and to permit persons to whom the
>>  + *     Software is furnished to do so, subject to the following
>> @@ -1260,11 +1224,11 @@
>>  + *     The above copyright notice and this permission notice shall be
>>  + *     included in all copies or substantial portions of the Software.
>>  + *
>> -+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
>> ++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>  + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
>>  + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>  + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
>> -+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
>> ++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>  + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>>  + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
>>  + *     OTHER DEALINGS IN THE SOFTWARE.
>> @@ -1295,66 +1259,58 @@
>>  +		reg = <0 0x00000000 0 0x20000000>; /* 512 MB */
>>  +	};
>>  +
>> -+	soc {
>> -+		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
>> -+			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
>> -+			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
>> -+			  MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000
>> -+			  MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>;
>> ++};
>>  +
>> -+		devbus-bootcs {
>> -+			status = "okay";
>> ++&devbus_bootcs {
>> ++	status = "okay";
>>  +
>> -+			/* Device Bus parameters are required */
>> ++	/* Device Bus parameters are required */
>>  +
>> -+			/* Read parameters */
>> -+			devbus,bus-width    = <16>;
>> -+			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>;
>> -+		};
>> ++	/* Read parameters */
>> ++	devbus,bus-width    = <16>;
>> ++	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>;
>> ++};
>>  +
>> -+		internal-regs {
>> -+			serial at 12000 {
>> -+				status = "okay";
>> -+			};
>> -+			serial at 12100 {
>> -+				status = "okay";
>> -+			};
>> ++&i2c0 {
>> ++	clock-frequency = <100000>;
>> ++	status = "okay";
>> ++};
>>  +
>> -+			i2c at 11000 {
>> -+				clock-frequency = <100000>;
>> -+				status = "okay";
>> -+			};
>> ++&uart0 {
>> ++	status = "okay";
>> ++};
>>  +
>> -+			mvsdio at d4000 {
>> -+				pinctrl-0 = <&sdio_pins>;
>> -+				pinctrl-names = "default";
>> -+				status = "okay";
>> -+				/* No CD or WP GPIOs */
>> -+				broken-cd;
>> -+			};
>> ++&uart1 {
>> ++	status = "okay";
>> ++};
>>  +
>> -+			nand at d0000 {
>> -+				status = "okay";
>> -+				num-cs = <1>;
>> -+				marvell,nand-keep-config;
>> -+				marvell,nand-enable-arbiter;
>> -+				nand-on-flash-bbt;
>> -+				nand-ecc-strength = <4>;
>> -+				nand-ecc-step-size = <512>;
>> -+			};
>> -+		};
>> -+	};
>> ++&nand {
>> ++	status = "okay";
>> ++	num-cs = <1>;
>> ++	marvell,nand-keep-config;
>> ++	marvell,nand-enable-arbiter;
>> ++	nand-on-flash-bbt;
>> ++	nand-ecc-strength = <4>;
>> ++	nand-ecc-step-size = <512>;
>> ++};
>> ++
>> ++&sdio {
>> ++	pinctrl-0 = <&sdio_pins>;
>> ++	pinctrl-names = "default";
>> ++	status = "okay";
>> ++	/* No CD or WP GPIOs */
>> ++	broken-cd;
>>  +};
>>  +
>>  +&spi0 {
>> @@ -1385,7 +1341,7 @@
>>  +};
>>  diff --git a/arch/arm/boot/dts/db-xc3-24g4xg.dts b/arch/arm/boot/dts/db-xc3-24g4xg.dts
>>  new file mode 100644
>> -index 000000000000..5eb89ffb9a7d
>> +index 000000000000..4e07cb6ed800
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/db-xc3-24g4xg.dts
>>  +/*
>> @@ -1405,17 +1361,17 @@
>>  + *     published by the Free Software Foundation; either version 2 of the
>>  + *     License, or (at your option) any later version.
>>  + *
>> -+ *     This file is distributed in the hope that it will be useful
>> ++ *     This file is distributed in the hope that it will be useful,
>>  + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>  + *     GNU General Public License for more details.
>>  + *
>> -+ * Or, alternatively
>> ++ * Or, alternatively,
>>  + *
>>  + *  b) Permission is hereby granted, free of charge, to any person
>>  + *     obtaining a copy of this software and associated documentation
>>  + *     files (the "Software"), to deal in the Software without
>> -+ *     restriction, including without limitation the rights to use
>> ++ *     restriction, including without limitation the rights to use,
>>  + *     copy, modify, merge, publish, distribute, sublicense, and/or
>>  + *     sell copies of the Software, and to permit persons to whom the
>>  + *     Software is furnished to do so, subject to the following
>> @@ -1424,11 +1380,11 @@
>>  + *     The above copyright notice and this permission notice shall be
>>  + *     included in all copies or substantial portions of the Software.
>>  + *
>> -+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
>> ++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>  + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
>>  + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>  + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
>> -+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
>> ++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>  + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>>  + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
>>  + *     OTHER DEALINGS IN THE SOFTWARE.
>> @@ -1458,63 +1414,50 @@
>>  +		device_type = "memory";
>>  +		reg = <0 0x00000000 0 0x40000000>; /* 1 GB */
>>  +	};
>> ++};
>>  +
>> -+	soc {
>> -+		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
>> -+			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
>> -+			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
>> -+			  MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000
>> -+			  MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>;
>> -+
>> -+		devbus-bootcs {
>> -+			status = "okay";
>> ++&devbus_bootcs {
>> ++	status = "okay";
>>  +
>> -+			/* Device Bus parameters are required */
>> ++	/* Device Bus parameters are required */
>>  +
>> -+			/* Read parameters */
>> -+			devbus,bus-width    = <16>;
>> -+			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>;
>> -+		};
>> ++	/* Read parameters */
>> ++	devbus,bus-width    = <16>;
>> ++	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>;
>> ++};
>>  +
>> -+		internal-regs {
>> -+			serial at 12000 {
>> -+				status = "okay";
>> -+			};
>> -+			serial at 12100 {
>> -+				status = "okay";
>> -+			};
>> ++&uart0 {
>> ++	status = "okay";
>> ++};
>>  +
>> -+			i2c at 11000 {
>> -+				clock-frequency = <100000>;
>> -+				status = "okay";
>> -+			};
>> ++&uart1 {
>> ++	status = "okay";
>> ++};
>>  +
>> -+			mvsdio at d4000 {
>> -+				status = "disabled";
>> -+			};
>> ++&i2c0 {
>> ++	clock-frequency = <100000>;
>> ++	status = "okay";
>> ++};
>>  +
>> -+			nand at d0000 {
>> -+				status = "okay";
>> -+				num-cs = <1>;
>> -+				marvell,nand-keep-config;
>> -+				marvell,nand-enable-arbiter;
>> -+				nand-on-flash-bbt;
>> -+				nand-ecc-strength = <4>;
>> -+				nand-ecc-step-size = <512>;
>> -+			};
>> -+		};
>> -+	};
>> ++&nand {
>> ++	status = "okay";
>> ++	num-cs = <1>;
>> ++	marvell,nand-keep-config;
>> ++	marvell,nand-enable-arbiter;
>> ++	nand-on-flash-bbt;
>> ++	nand-ecc-strength = <4>;
>> ++	nand-ecc-step-size = <512>;
>>  +};
>>  +
>>  +&spi0 {
>>
>> -- 
>> 2.11.0.24.ge6920cf
>>
>
> -- 
> Gregory Clement, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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



More information about the linux-arm-kernel mailing list