The process of making most kirkwood boards boot using DT is nearly
complete. We can now move these boards into mach-mvebu, freeing them
of the legacy code needed for none-DT systems. At the same time, they
can become part of ARCH_MULTI_V5.
This patchset can also be found in:
https://github.com/lunn/linux.git v3.14-rc1-mvebu-v4
Since v3:
Dropped the last patch removing DT support from mach-kirkwood. This
will help Debian until we complete moving all boards to DT and into
mach-mvebu. Also allow the DTB files to be compiled for both.
Added back the watchdog to the *_config files.
Added Tested-by's and Acked-by's
Since v2:
The L2 Cache binding has been re-written again. No more wt-override in
the binding, respect CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH
Fixed a few typos in changelogs
Added a few Cc: for maintainers outside of the ARM world.
Added Acked-by:s
Since v1:
mv88f6281gtw_ge switch really does now use DT.
The L2 Cache binding has been re-written.
kirkwood.dtsi changes have been placed into there own patch.
Added mvebu_v5_defconfig
Fixed a few typos in changelogs
Added a few Cc:s
Andrew Lunn (22):
ARM: Kirkwood: Give pm.c its own header file.
irqchip: Orion: Fix getting generic chip pointer.
ARM: Kirkwood: Convert mv88f6281gtw_ge switch setup to DT
ARM: Kirkwood: Drop printing the SoC type and revision
ARM: Kirkwood: Seperate board-dt from common and pcie code.
ARM: Kirkwood: ioremap the cpu_config register before using it.
ARM: Kirkwood: ioremap memory control register
ARM: MVEBU: Add ARCH_MULTI_V7 to SoCs
ARM: Orion: Move cache-feroceon-l2.h out of plat-orion
ARM: MM: Add DT binding for Feroceon L2 cache
ARM: Kirkwood: Instantiate L2 cache from DT.
ARM: Fix default CPU selection for ARCH_MULTI_V5
ARM: Fix MULTI_TLB for feroceon
ARM: MM Enable building Feroceon L2 cache controller with ARCH_MVEBU
ARM: Move kirkwood DT boards into mach-mvebu
ARM: MVEBU: Let kirkwood use the system controller for restart
ARM: MVEBU: Instantiate system controller in kirkwood.dtsi
drivers: Enable building of Kirkwood drivers for mach-mvebu
ARM: MVEBU: Enable mvebu-soc-id on Kirkwood
ARM: config: Add a multi_v5_defconfig
ARM: MVEBU: Simplifiy headers and make local
ARM: config: Add mvebu_v5_defconfig
.../devicetree/bindings/arm/mrvl/feroceon.txt | 16 ++
arch/arm/Kconfig | 2 +-
arch/arm/boot/dts/Makefile | 9 +-
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 62 +++++++
arch/arm/boot/dts/kirkwood.dtsi | 10 ++
arch/arm/configs/multi_v5_defconfig | 185 ++++++++++++++++++++
arch/arm/configs/mvebu_v5_defconfig | 172 +++++++++++++++++++
arch/arm/include/asm/hardware/cache-feroceon-l2.h | 13 ++
arch/arm/mach-kirkwood/Kconfig | 7 -
arch/arm/mach-kirkwood/Makefile | 4 +-
arch/arm/mach-kirkwood/board-dt.c | 108 ++++++++++--
arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c | 50 ------
arch/arm/mach-kirkwood/common.c | 3 +-
arch/arm/mach-kirkwood/common.h | 13 --
arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 2 +
arch/arm/mach-kirkwood/pm.c | 9 +-
arch/arm/mach-kirkwood/pm.h | 26 +++
arch/arm/mach-mv78xx0/common.c | 2 +-
arch/arm/mach-mvebu/Kconfig | 23 ++-
arch/arm/mach-mvebu/Makefile | 1 +
arch/arm/mach-mvebu/kirkwood-pm.c | 76 +++++++++
arch/arm/mach-mvebu/kirkwood-pm.h | 26 +++
arch/arm/mach-mvebu/kirkwood.c | 190 +++++++++++++++++++++
arch/arm/mach-mvebu/kirkwood.h | 22 +++
arch/arm/mach-mvebu/mvebu-soc-id.c | 1 +
arch/arm/mm/Kconfig | 2 +-
arch/arm/mm/cache-feroceon-l2.c | 45 ++++-
arch/arm/mm/proc-feroceon.S | 2 +-
arch/arm/mm/tlb-v4wbi.S | 3 +
.../plat-orion/include/plat/cache-feroceon-l2.h | 11 --
drivers/cpufreq/Kconfig.arm | 2 +-
drivers/cpuidle/Kconfig.arm | 2 +-
drivers/irqchip/irq-orion.c | 3 +-
drivers/leds/Kconfig | 4 +-
drivers/phy/Kconfig | 2 +-
drivers/thermal/Kconfig | 2 +-
sound/soc/kirkwood/Kconfig | 2 +-
37 files changed, 990 insertions(+), 122 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/mrvl/feroceon.txt
create mode 100644 arch/arm/configs/multi_v5_defconfig
create mode 100644 arch/arm/configs/mvebu_v5_defconfig
create mode 100644 arch/arm/include/asm/hardware/cache-feroceon-l2.h
delete mode 100644 arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c
create mode 100644 arch/arm/mach-kirkwood/pm.h
create mode 100644 arch/arm/mach-mvebu/kirkwood-pm.c
create mode 100644 arch/arm/mach-mvebu/kirkwood-pm.h
create mode 100644 arch/arm/mach-mvebu/kirkwood.c
create mode 100644 arch/arm/mach-mvebu/kirkwood.h
delete mode 100644 arch/arm/plat-orion/include/plat/cache-feroceon-l2.h
--
1.8.5.3
The pm code needs to be separated from common.h in order to split DT
and non-DT systems apart. Move the declarations into a header file of
its own and include it where needed.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Ezequiel Garcia <redacted>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted> (on kirkwood)
---
v3:
s/seperated/separated
---
arch/arm/mach-kirkwood/board-dt.c | 1 +
arch/arm/mach-kirkwood/common.c | 1 +
arch/arm/mach-kirkwood/common.h | 6 ------
arch/arm/mach-kirkwood/pm.h | 26 ++++++++++++++++++++++++++
4 files changed, 28 insertions(+), 6 deletions(-)
create mode 100644 arch/arm/mach-kirkwood/pm.h
@@ -36,6 +36,7 @@#include<plat/time.h>#include<linux/platform_data/dma-mv_xor.h>#include"common.h"+#include"pm.h"/* These can go away once Kirkwood uses the mvebu-mbus DT binding */#define KIRKWOOD_MBUS_NAND_TARGET 0x01
Enabling SPARSE_IRQ shows up a bug in the irq-orion bridge interrupt
handler. The bridge interrupt is implemented using a single generic
chip. Thus the parameter passed to irq_get_domain_generic_chip()
should always be zero.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted> (on kirkwood)
---
drivers/irqchip/irq-orion.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
The mv88f6281gtw_ge has a ethernet switch connected to the ethernet
port of the SoC. Convert the platform device instantiation to a DT
instantiation.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
Cc: florian at openwrt.org
---
v2
Remove the spurius Module.symvers
Really do describe the switch in DT.
---
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 62 ++++++++++++++++++++++++++
arch/arm/mach-kirkwood/Kconfig | 7 ---
arch/arm/mach-kirkwood/Makefile | 1 -
arch/arm/mach-kirkwood/board-dt.c | 3 --
arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c | 50 ---------------------
arch/arm/mach-kirkwood/common.h | 7 ---
6 files changed, 62 insertions(+), 68 deletions(-)
delete mode 100644 arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c
@@ -58,13 +58,6 @@ void kirkwood_cpufreq_init(void);voidkirkwood_restart(enumreboot_mode,constchar*);voidkirkwood_clk_init(void);-/* board init functions for boards not fully converted to fdt */-#ifdef CONFIG_MACH_MV88F6281GTW_GE_DT-voidmv88f6281gtw_ge_init(void);-#else-staticinlinevoidmv88f6281gtw_ge_init(void){};-#endif-/* early init functions not converted to fdt yet */char*kirkwood_id(void);voidkirkwood_l2_init(void);
This will be added back using the mach-mvebu equivalent once the move
has been made.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/mach-kirkwood/board-dt.c | 2 --
1 file changed, 2 deletions(-)
In order to be able to move DT support into mach-mvebu, the DT code
needs to be cleanly separated from common and pcie code. Import the
needed bits of these files into board-dt.c. The "common" code then
becomes purely legacy, supporting none DT boards, so reflect this in
the Makefile targets.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/mach-kirkwood/Makefile | 3 +-
arch/arm/mach-kirkwood/board-dt.c | 88 ++++++++++++++++++++++++++++++++++++++-
2 files changed, 88 insertions(+), 3 deletions(-)
@@ -21,11 +21,97 @@#include<linux/irqchip.h>#include<linux/kexec.h>#include<asm/mach/arch.h>+#include<asm/mach/map.h>#include<mach/bridge-regs.h>#include<plat/common.h>-#include"common.h"+#include<plat/cache-feroceon-l2.h>+#include<plat/pcie.h>#include"pm.h"+staticstructmap_desckirkwood_io_desc[]__initdata={+{+.virtual=(unsignedlong)KIRKWOOD_REGS_VIRT_BASE,+.pfn=__phys_to_pfn(KIRKWOOD_REGS_PHYS_BASE),+.length=KIRKWOOD_REGS_SIZE,+.type=MT_DEVICE,+},+};++staticvoid__initkirkwood_map_io(void)+{+iotable_init(kirkwood_io_desc,ARRAY_SIZE(kirkwood_io_desc));+}++staticvoid__initkirkwood_l2_init(void)+{+#ifdef CONFIG_CACHE_FEROCEON_L2+#ifdef CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH+writel(readl(L2_CONFIG_REG)|L2_WRITETHROUGH,L2_CONFIG_REG);+feroceon_l2_init(1);+#else+writel(readl(L2_CONFIG_REG)&~L2_WRITETHROUGH,L2_CONFIG_REG);+feroceon_l2_init(0);+#endif+#endif+}++staticstructresourcekirkwood_cpufreq_resources[]={+[0]={+.start=CPU_CONTROL_PHYS,+.end=CPU_CONTROL_PHYS+3,+.flags=IORESOURCE_MEM,+},+};++staticstructplatform_devicekirkwood_cpufreq_device={+.name="kirkwood-cpufreq",+.id=-1,+.num_resources=ARRAY_SIZE(kirkwood_cpufreq_resources),+.resource=kirkwood_cpufreq_resources,+};++staticvoid__initkirkwood_cpufreq_init(void)+{+platform_device_register(&kirkwood_cpufreq_device);+}++staticstructresourcekirkwood_cpuidle_resource[]={+{+.flags=IORESOURCE_MEM,+.start=DDR_OPERATION_BASE,+.end=DDR_OPERATION_BASE+3,+},+};++staticstructplatform_devicekirkwood_cpuidle={+.name="kirkwood_cpuidle",+.id=-1,+.resource=kirkwood_cpuidle_resource,+.num_resources=1,+};++staticvoid__initkirkwood_cpuidle_init(void)+{+platform_device_register(&kirkwood_cpuidle);+}++/* Temporary here since mach-mvebu has a function we can use */+staticvoidkirkwood_restart(enumreboot_modemode,constchar*cmd)+{+/*+*EnablesoftresettoassertRSTOUTn.+*/+writel(SOFT_RESET_OUT_EN,RSTOUTn_MASK);++/*+*Assertsoftreset.+*/+writel(SOFT_RESET,SYSTEM_SOFT_RESET);++while(1)+;+}+#define MV643XX_ETH_MAC_ADDR_LOW 0x0414#define MV643XX_ETH_MAC_ADDR_HIGH 0x0418
With the move to mach-mvebu and MULTI_V5, the global iomap for all
registers will be going away. So explicitly map the CPU configuration
register before using it.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
v3:
Make static __init.
Unmap the region when finished.
---
arch/arm/mach-kirkwood/board-dt.c | 22 +++++++++++++++-------
arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 1 +
2 files changed, 16 insertions(+), 7 deletions(-)
To allow removal of the global map of registers, make the pm code
ioremap the registers it needs.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Ezequiel Garcia <redacted>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 1 +
arch/arm/mach-kirkwood/pm.c | 9 ++++++---
2 files changed, 7 insertions(+), 3 deletions(-)
@@ -21,15 +21,16 @@#include"common.h"staticvoid__iomem*ddr_operation_base;+staticvoid__iomem*memory_pm_ctrl;staticvoidkirkwood_low_power(void){u32mem_pm_ctrl;-mem_pm_ctrl=readl(MEMORY_PM_CTRL);+mem_pm_ctrl=readl(memory_pm_ctrl);/* Set peripherals to low-power mode */-writel_relaxed(~0,MEMORY_PM_CTRL);+writel_relaxed(~0,memory_pm_ctrl);/* Set DDR in self-refresh */writel_relaxed(0x7,ddr_operation_base);
Prepare mach-mvebu to house both ARCH_MULTI_V7 and ARCH_MULTI_V5
systems by adding ARCH_MULTI_V7 to the existing SOCs.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/mach-mvebu/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -29,7 +29,7 @@ config MACH_ARMADA_370_XPselectCPU_PJ4BconfigMACH_ARMADA_370-bool"Marvell Armada 370 boards"+bool"Marvell Armada 370 boards"ifARCH_MULTI_V7selectARMADA_370_CLKselectMACH_ARMADA_370_XPselectPINCTRL_ARMADA_370
@@ -38,7 +38,7 @@ config MACH_ARMADA_370ontheMarvellArmada370SoCwithdevicetree.configMACH_ARMADA_XP-bool"Marvell Armada XP boards"+bool"Marvell Armada XP boards"ifARCH_MULTI_V7selectARMADA_XP_CLKselectMACH_ARMADA_370_XPselectPINCTRL_ARMADA_XP
With the gradual move to DT, kirkwood has become a lot less dependent
on plat-orion. cache-feroceon-l2.h is the last dependency. Move it out
so we can drop plat-orion when building DT only kirkwood boards.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/include/asm/hardware/cache-feroceon-l2.h | 11 +++++++++++
arch/arm/mach-kirkwood/board-dt.c | 2 +-
arch/arm/mach-kirkwood/common.c | 2 +-
arch/arm/mach-mv78xx0/common.c | 2 +-
arch/arm/mm/cache-feroceon-l2.c | 2 +-
arch/arm/plat-orion/include/plat/cache-feroceon-l2.h | 11 -----------
6 files changed, 15 insertions(+), 15 deletions(-)
create mode 100644 arch/arm/include/asm/hardware/cache-feroceon-l2.h
delete mode 100644 arch/arm/plat-orion/include/plat/cache-feroceon-l2.h
@@ -1,11 +0,0 @@-/*- * arch/arm/plat-orion/include/plat/cache-feroceon-l2.h- *- * Copyright (C) 2008 Marvell Semiconductor- *- * 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.- */--extern void __init feroceon_l2_init(int l2_wt_override);
Now that the Ferocean L2 cache has a DT binding, make use of it.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/boot/dts/kirkwood.dtsi | 5 +++++
1 file changed, 5 insertions(+)
CPU_ARM926T should be selected if no other CPU is. Put the ! in the
right place so this works.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Feroceon has the same flush operations as v4wbi, but has an additional
flag, TLB_L2CLEAN_FR. When building with MULTI_TLB this flag is placed
into cpu_tlb.tlb_flags, so there needs to be a cpu_tlb specifically
for feroceon, rather than sharing the v4wbi.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
Cc: Russell King <redacted>
---
arch/arm/mm/proc-feroceon.S | 2 +-
arch/arm/mm/tlb-v4wbi.S | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
Kirkwood, which uses the Feroceon L2 cache controller will soon be
moving into mach-mvebu. Allow the cache controller to be built in this
situation.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/mm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Move the kirkwood DT support into mach-mvebu, and make them part of
ARCH_MULTI_V5. Minimal changes have been made in order to make it
boot. Cleanup of the header files and integration with mvebu will
take place in following patches.
In order to help Debian transition between mach-kirkwood and
mach-mvebu, the DTS files are compiled for both, allowing Debian to
continue using mach-kirkwood until all remaining boards are supported
by mach-mvebu. Debian is then expected to simply swap from
mach-kirkwood to mach-mvebu and mach-kirkwood will be removed.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
v4
Remove from Kconfig:
select POWER_SUPPLY
select POWER_RESET
select POWER_RESET_GPIO
select REGULATOR
select REGULATOR_FIXED_VOLTAGE
All DTB to build for both mach-kirkwood and mach-mvebu
---
arch/arm/boot/dts/Makefile | 9 +-
arch/arm/mach-mvebu/Kconfig | 19 ++-
arch/arm/mach-mvebu/Makefile | 1 +
arch/arm/mach-mvebu/include/mach/bridge-regs.h | 85 ++++++++++
arch/arm/mach-mvebu/include/mach/kirkwood.h | 142 +++++++++++++++++
arch/arm/mach-mvebu/kirkwood-pm.c | 76 +++++++++
arch/arm/mach-mvebu/kirkwood-pm.h | 26 +++
arch/arm/mach-mvebu/kirkwood.c | 209 +++++++++++++++++++++++++
8 files changed, 563 insertions(+), 4 deletions(-)
create mode 100644 arch/arm/mach-mvebu/include/mach/bridge-regs.h
create mode 100644 arch/arm/mach-mvebu/include/mach/kirkwood.h
create mode 100644 arch/arm/mach-mvebu/kirkwood-pm.c
create mode 100644 arch/arm/mach-mvebu/kirkwood-pm.h
create mode 100644 arch/arm/mach-mvebu/kirkwood.c
@@ -1,5 +1,5 @@configARCH_MVEBU-bool"Marvell SOCs with Device Tree support"ifARCH_MULTI_V7+bool"Marvell SOCs with Device Tree support"if(ARCH_MULTI_V7||ARCH_MULTI_V5)selectARCH_SUPPORTS_BIG_ENDIANselectCLKSRC_MMIOselectCOMMON_CLK
@@ -0,0 +1,76 @@+/*+*PowerManagementdriverforMarvellKirkwoodSoCs+*+*Copyright(C)2013EzequielGarcia<ezequiel@free-electrons.com>+*Copyright(C)2010SimonGuinot<sguinot@lacie.com>+*+*Thisprogramisfreesoftware;youcanredistributeitand/ormodify+*itunderthetermsoftheGNUGeneralPublicLicense,+*version2oftheLicense.+*+*Thisprogramisdistributedinthehopethatitwillbeuseful,+*butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof+*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe+*GNUGeneralPublicLicenseformoredetails.+*/++#include<linux/kernel.h>+#include<linux/suspend.h>+#include<linux/io.h>+#include<mach/bridge-regs.h>++staticvoid__iomem*ddr_operation_base;+staticvoid__iomem*memory_pm_ctrl;++staticvoidkirkwood_low_power(void)+{+u32mem_pm_ctrl;++mem_pm_ctrl=readl(memory_pm_ctrl);++/* Set peripherals to low-power mode */+writel_relaxed(~0,memory_pm_ctrl);++/* Set DDR in self-refresh */+writel_relaxed(0x7,ddr_operation_base);++/*+*SetCPUinwait-for-interruptstate.+*ThisdisablestheCPUcoreclocks,+*thearrayclocks,andalsotheL2controller.+*/+cpu_do_idle();++writel_relaxed(mem_pm_ctrl,memory_pm_ctrl);+}++staticintkirkwood_suspend_enter(suspend_state_tstate)+{+switch(state){+casePM_SUSPEND_STANDBY:+kirkwood_low_power();+break;+default:+return-EINVAL;+}+return0;+}++staticintkirkwood_pm_valid_standby(suspend_state_tstate)+{+returnstate==PM_SUSPEND_STANDBY;+}++staticconststructplatform_suspend_opskirkwood_suspend_ops={+.enter=kirkwood_suspend_enter,+.valid=kirkwood_pm_valid_standby,+};++int__initkirkwood_pm_init(void)+{+ddr_operation_base=ioremap(DDR_OPERATION_BASE,4);+memory_pm_ctrl=ioremap(MEMORY_PM_CTRL_PHYS,4);++suspend_set_ops(&kirkwood_suspend_ops);+return0;+}
@@ -0,0 +1,209 @@+/*+*Copyright2012(C),JasonCooper<jason@lakedaemon.net>+*+*arch/arm/mach-mvebu/kirkwood.c+*+*FlattenedDeviceTreeboardinitialization+*+*ThisfileislicensedunderthetermsoftheGNUGeneralPublic+*Licenseversion2.Thisprogramislicensed"as is"withoutany+*warrantyofanykind,whetherexpressorimplied.+*/++#include<linux/clk.h>+#include<linux/kernel.h>+#include<linux/init.h>+#include<linux/of.h>+#include<linux/of_address.h>+#include<linux/of_net.h>+#include<linux/of_platform.h>+#include<linux/dma-mapping.h>+#include<linux/irqchip.h>+#include<linux/kexec.h>+#include<asm/hardware/cache-feroceon-l2.h>+#include<asm/mach/arch.h>+#include<asm/mach/map.h>+#include<mach/bridge-regs.h>+#include<plat/common.h>+#include<plat/pcie.h>+#include"kirkwood-pm.h"++staticstructresourcekirkwood_cpufreq_resources[]={+[0]={+.start=CPU_CONTROL_PHYS,+.end=CPU_CONTROL_PHYS+3,+.flags=IORESOURCE_MEM,+},+};++staticstructplatform_devicekirkwood_cpufreq_device={+.name="kirkwood-cpufreq",+.id=-1,+.num_resources=ARRAY_SIZE(kirkwood_cpufreq_resources),+.resource=kirkwood_cpufreq_resources,+};++staticvoid__initkirkwood_cpufreq_init(void)+{+platform_device_register(&kirkwood_cpufreq_device);+}++staticstructresourcekirkwood_cpuidle_resource[]={+{+.flags=IORESOURCE_MEM,+.start=DDR_OPERATION_BASE,+.end=DDR_OPERATION_BASE+3,+},+};++staticstructplatform_devicekirkwood_cpuidle={+.name="kirkwood_cpuidle",+.id=-1,+.resource=kirkwood_cpuidle_resource,+.num_resources=1,+};++staticvoid__initkirkwood_cpuidle_init(void)+{+platform_device_register(&kirkwood_cpuidle);+}++/* Temporary here since mach-mvebu has a function we can use */+staticvoidkirkwood_restart(enumreboot_modemode,constchar*cmd)+{+/*+*EnablesoftresettoassertRSTOUTn.+*/+writel(SOFT_RESET_OUT_EN,RSTOUTn_MASK);++/*+*Assertsoftreset.+*/+writel(SOFT_RESET,SYSTEM_SOFT_RESET);++while(1)+;+}++#define MV643XX_ETH_MAC_ADDR_LOW 0x0414+#define MV643XX_ETH_MAC_ADDR_HIGH 0x0418++staticvoid__initkirkwood_dt_eth_fixup(void)+{+structdevice_node*np;++/*+*TheethernetinterfacesforgettheMACaddressassignedbyu-boot+*iftheclocksareturnedoff.Usually,u-bootonkirkwoodboards+*hasnoDTsupporttoproperlysetlocal-mac-addressproperty.+*Asaworkaround,wegettheMACaddressfrommv643xx_ethregisters+*andupdatetheportdevicenodeifnovalidMACaddressisset.+*/+for_each_compatible_node(np,NULL,"marvell,kirkwood-eth-port"){+structdevice_node*pnp=of_get_parent(np);+structclk*clk;+structproperty*pmac;+void__iomem*io;+u8*macaddr;+u32reg;++if(!pnp)+continue;++/* skip disabled nodes or nodes with valid MAC address*/+if(!of_device_is_available(pnp)||of_get_mac_address(np))+gotoeth_fixup_skip;++clk=of_clk_get(pnp,0);+if(IS_ERR(clk))+gotoeth_fixup_skip;++io=of_iomap(pnp,0);+if(!io)+gotoeth_fixup_no_map;++/* ensure port clock is not gated to not hang CPU */+clk_prepare_enable(clk);++/* store MAC address register contents in local-mac-address */+pr_err(FW_INFO"%s: local-mac-address is not set\n",+np->full_name);++pmac=kzalloc(sizeof(*pmac)+6,GFP_KERNEL);+if(!pmac)+gotoeth_fixup_no_mem;++pmac->value=pmac+1;+pmac->length=6;+pmac->name=kstrdup("local-mac-address",GFP_KERNEL);+if(!pmac->name){+kfree(pmac);+gotoeth_fixup_no_mem;+}++macaddr=pmac->value;+reg=readl(io+MV643XX_ETH_MAC_ADDR_HIGH);+macaddr[0]=(reg>>24)&0xff;+macaddr[1]=(reg>>16)&0xff;+macaddr[2]=(reg>>8)&0xff;+macaddr[3]=reg&0xff;++reg=readl(io+MV643XX_ETH_MAC_ADDR_LOW);+macaddr[4]=(reg>>8)&0xff;+macaddr[5]=reg&0xff;++of_update_property(np,pmac);++eth_fixup_no_mem:+iounmap(io);+clk_disable_unprepare(clk);+eth_fixup_no_map:+clk_put(clk);+eth_fixup_skip:+of_node_put(pnp);+}+}++/*+*DisablepropagationofmbuserrorstotheCPUlocalbus,asthis+*causesmbuserrors(whichcanoccurforexampleforPCIaborts)to+*throwCPUaborts,whichwe'renotsetuptodealwith.+*/+voidkirkwood_disable_mbus_error_propagation(void)+{+void__iomem*cpu_config;++cpu_config=ioremap(CPU_CONFIG_PHYS,4);+writel(readl(cpu_config)&~CPU_CONFIG_ERROR_PROP,cpu_config);+}+++staticvoid__initkirkwood_dt_init(void)+{+kirkwood_disable_mbus_error_propagation();++BUG_ON(mvebu_mbus_dt_init());++#ifdef CONFIG_CACHE_FEROCEON_L2+feroceon_of_init();+#endif+kirkwood_cpufreq_init();+kirkwood_cpuidle_init();++kirkwood_pm_init();+kirkwood_dt_eth_fixup();++of_platform_populate(NULL,of_default_bus_match_table,NULL,NULL);+}++staticconstchar*constkirkwood_dt_board_compat[]={+"marvell,kirkwood",+NULL+};++DT_MACHINE_START(KIRKWOOD_DT,"Marvell Kirkwood (Flattened Device Tree)")+/* Maintainer: Jason Cooper <jason@lakedaemon.net> */+.init_machine=kirkwood_dt_init,+.restart=kirkwood_restart,+.dt_compat=kirkwood_dt_board_compat,+MACHINE_END
The mvebu system controller already supports restarting orion
systems. Remove all the C code which will be replaced by the system
controller.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
v2
Split the patch into two, DT goes into a new patch
---
arch/arm/mach-mvebu/kirkwood.c | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
@@ -68,23 +69,6 @@ static void __init kirkwood_cpuidle_init(void)platform_device_register(&kirkwood_cpuidle);}-/* Temporary here since mach-mvebu has a function we can use */-staticvoidkirkwood_restart(enumreboot_modemode,constchar*cmd)-{-/*-*EnablesoftresettoassertRSTOUTn.-*/-writel(SOFT_RESET_OUT_EN,RSTOUTn_MASK);--/*-*Assertsoftreset.-*/-writel(SOFT_RESET,SYSTEM_SOFT_RESET);--while(1)-;-}-#define MV643XX_ETH_MAC_ADDR_LOW 0x0414#define MV643XX_ETH_MAC_ADDR_HIGH 0x0418
Make use of the mvebu system controller, by placing a node into the
dtsi file.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/boot/dts/kirkwood.dtsi | 5 +++++
1 file changed, 5 insertions(+)
With the move of kirkwood into mach-mvebu, drivers Kconfig need
tweeking to allow the kirkwood specific drivers to be built.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mark Brown <redacted>
Acked-by: Kishon Vijay Abraham I <redacted>
Acked-by: Daniel Lezcano <redacted>
Tested-by: Jason Gunthorpe <redacted>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael J. Wysocki <redacted>
Cc: Richard Purdie <redacted>
Cc: Bryan Wu <redacted>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <redacted>
---
v2
Simplify cpufreq/Kconfig.arm
Still needs ACKs from cpufreq, led and thermal maintainers.
---
drivers/cpufreq/Kconfig.arm | 2 +-
drivers/cpuidle/Kconfig.arm | 2 +-
drivers/leds/Kconfig | 4 ++--
drivers/phy/Kconfig | 2 +-
drivers/thermal/Kconfig | 2 +-
sound/soc/kirkwood/Kconfig | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
@@ -421,7 +421,7 @@ config LEDS_MC13783configLEDS_NS2tristate"LED support for Network Space v2 GPIO LEDs"depends onLEDS_CLASS-depends onARCH_KIRKWOOD+depends onARCH_KIRKWOOD||MACH_KIRKWOODdefaultyhelpThisoptionenablesupportforthedual-GPIOLEDfoundonthe
@@ -431,7 +431,7 @@ config LEDS_NS2configLEDS_NETXBIGtristate"LED support for Big Network series LEDs"depends onLEDS_CLASS-depends onARCH_KIRKWOOD+depends onARCH_KIRKWOOD||MACH_KIRKWOODdefaultyhelpThisoptionenablesupportforLEDsfoundontheLaCie2Big
@@ -1,6 +1,6 @@configSND_KIRKWOOD_SOCtristate"SoC Audio for the Marvell Kirkwood and Dove chips"-depends onARCH_KIRKWOOD||ARCH_DOVE||COMPILE_TEST+depends onARCH_KIRKWOOD||ARCH_DOVE||MACH_KIRKWOOD||COMPILE_TESThelpSayYorMifyouwanttoaddsupportforcodecsattachedtotheKirkwoodI2Sinterface.Youwillalsoneedtoselectthe
Add the Kirkwood PCIe compatibility string to mvebu-soc-id, so that it
can get the SoC ID and revision from the PCIe endpoints.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/mach-mvebu/mvebu-soc-id.c | 1 +
1 file changed, 1 insertion(+)
To allow regression build testing of multi v5 systems, add a
multi_v5_defconfig, similar to the multi_v7_defconfig. This is based
on kirkwood_defconfig, but with a few other boards added which claim
to be MULTI_v5.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Jason Gunthorpe <redacted>
---
v4
Disable low level debug
Enable more drivers needed by Kirkwood devices.
Ensure ORION_WATCHDOG is enabled.
---
arch/arm/configs/multi_v5_defconfig | 185 ++++++++++++++++++++++++++++++++++++
1 file changed, 185 insertions(+)
create mode 100644 arch/arm/configs/multi_v5_defconfig
@@ -0,0 +1,185 @@+CONFIG_SYSVIPC=y+CONFIG_NO_HZ=y+CONFIG_HIGH_RES_TIMERS=y+CONFIG_LOG_BUF_SHIFT=19+CONFIG_PROFILING=y+CONFIG_OPROFILE=y+CONFIG_KPROBES=y+CONFIG_MODULES=y+CONFIG_MODULE_UNLOAD=y+# CONFIG_BLK_DEV_BSG is not set+# CONFIG_ARCH_MULTI_V7 is not set+CONFIG_ARCH_MVEBU=y+CONFIG_MACH_KIRKWOOD=y+CONFIG_ARCH_MXC=y+CONFIG_MACH_IMX25_DT=y+CONFIG_MACH_IMX27_DT=y+CONFIG_ARCH_U300=y+CONFIG_PCI_MVEBU=y+CONFIG_PREEMPT=y+CONFIG_AEABI=y+CONFIG_HIGHMEM=y+CONFIG_ZBOOT_ROM_TEXT=0x0+CONFIG_ZBOOT_ROM_BSS=0x0+CONFIG_ARM_APPENDED_DTB=y+CONFIG_ARM_ATAG_DTB_COMPAT=y+CONFIG_CPU_FREQ=y+CONFIG_CPU_FREQ_STAT_DETAILS=y+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y+CONFIG_CPU_IDLE=y+CONFIG_ARM_KIRKWOOD_CPUIDLE=y+CONFIG_NET=y+CONFIG_PACKET=y+CONFIG_UNIX=y+CONFIG_INET=y+CONFIG_IP_MULTICAST=y+CONFIG_IP_PNP=y+CONFIG_IP_PNP_DHCP=y+CONFIG_IP_PNP_BOOTP=y+# CONFIG_IPV6 is not set+CONFIG_NET_PKTGEN=m+CONFIG_CFG80211=y+CONFIG_MAC80211=y+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"+CONFIG_MTD=y+CONFIG_MTD_CMDLINE_PARTS=y+CONFIG_MTD_BLOCK=y+CONFIG_MTD_CFI=y+CONFIG_MTD_JEDECPROBE=y+CONFIG_MTD_CFI_ADV_OPTIONS=y+CONFIG_MTD_CFI_GEOMETRY=y+# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set+CONFIG_MTD_CFI_INTELEXT=y+CONFIG_MTD_CFI_STAA=y+CONFIG_MTD_PHYSMAP=y+CONFIG_MTD_M25P80=y+CONFIG_MTD_NAND=y+CONFIG_MTD_NAND_ORION=y+CONFIG_BLK_DEV_LOOP=y+CONFIG_EEPROM_AT24=y+# CONFIG_SCSI_PROC_FS is not set+CONFIG_BLK_DEV_SD=y+CONFIG_BLK_DEV_SR=m+CONFIG_CHR_DEV_SG=m+CONFIG_ATA=y+CONFIG_SATA_AHCI=y+CONFIG_SATA_MV=y+CONFIG_NETDEVICES=y+CONFIG_NET_DSA_MV88E6123_61_65=y+CONFIG_MV643XX_ETH=y+CONFIG_R8169=y+CONFIG_MARVELL_PHY=y+CONFIG_LIBERTAS=y+CONFIG_LIBERTAS_SDIO=y+CONFIG_INPUT_EVDEV=y+CONFIG_KEYBOARD_GPIO=y+# CONFIG_INPUT_MOUSE is not set+CONFIG_LEGACY_PTY_COUNT=16+# CONFIG_DEVKMEM is not set+CONFIG_SERIAL_8250=y+CONFIG_SERIAL_8250_CONSOLE=y+CONFIG_SERIAL_8250_RUNTIME_UARTS=2+CONFIG_SERIAL_OF_PLATFORM=y+# CONFIG_HW_RANDOM is not set+CONFIG_I2C=y+# CONFIG_I2C_COMPAT is not set+CONFIG_I2C_CHARDEV=y+CONFIG_I2C_MV64XXX=y+CONFIG_I2C_NOMADIK=y+CONFIG_SPI=y+CONFIG_SPI_ORION=y+CONFIG_GPIO_SYSFS=y+CONFIG_POWER_SUPPLY=y+CONFIG_POWER_RESET=y+CONFIG_POWER_RESET_GPIO=y+CONFIG_POWER_RESET_QNAP=y+CONFIG_SENSORS_ADT7475=y+CONFIG_SENSORS_LM63=y+CONFIG_SENSORS_LM75=y+CONFIG_SENSORS_LM85=y+CONFIG_THERMAL=y+CONFIG_KIRKWOOD_THERMAL=y+CONFIG_WATCHDOG=y+CONFIG_ORION_WATCHDOG=y+# CONFIG_ABX500_CORE is not set+CONFIG_REGULATOR=y+CONFIG_REGULATOR_FIXED_VOLTAGE=y+CONFIG_SOUND=y+CONFIG_SND=y+CONFIG_SND_SOC=y+CONFIG_SND_KIRKWOOD_SOC=y+CONFIG_HID_DRAGONRISE=y+CONFIG_HID_GYRATION=y+CONFIG_HID_TWINHAN=y+CONFIG_HID_NTRIG=y+CONFIG_HID_PANTHERLORD=y+CONFIG_HID_PETALYNX=y+CONFIG_HID_SAMSUNG=y+CONFIG_HID_SONY=y+CONFIG_HID_SUNPLUS=y+CONFIG_HID_GREENASIA=y+CONFIG_HID_SMARTJOYPLUS=y+CONFIG_HID_TOPSEED=y+CONFIG_HID_THRUSTMASTER=y+CONFIG_HID_ZEROPLUS=y+CONFIG_USB=y+CONFIG_USB_XHCI_HCD=y+CONFIG_USB_EHCI_HCD=y+CONFIG_USB_EHCI_ROOT_HUB_TT=y+CONFIG_USB_PRINTER=m+CONFIG_USB_STORAGE=y+CONFIG_USB_STORAGE_DATAFAB=y+CONFIG_USB_STORAGE_FREECOM=y+CONFIG_USB_STORAGE_SDDR09=y+CONFIG_USB_STORAGE_SDDR55=y+CONFIG_USB_STORAGE_JUMPSHOT=y+CONFIG_MMC=y+CONFIG_SDIO_UART=y+CONFIG_MMC_MVSDIO=y+CONFIG_NEW_LEDS=y+CONFIG_LEDS_CLASS=y+CONFIG_LEDS_GPIO=y+CONFIG_LEDS_TRIGGERS=y+CONFIG_LEDS_TRIGGER_TIMER=y+CONFIG_LEDS_TRIGGER_HEARTBEAT=y+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y+CONFIG_RTC_CLASS=y+CONFIG_RTC_DRV_RS5C372=y+CONFIG_RTC_DRV_PCF8563=y+CONFIG_RTC_DRV_S35390A=y+CONFIG_RTC_DRV_MV=y+CONFIG_DMADEVICES=y+CONFIG_MV_XOR=y+CONFIG_EXT2_FS=y+CONFIG_EXT3_FS=y+# CONFIG_EXT3_FS_XATTR is not set+CONFIG_EXT4_FS=y+CONFIG_ISO9660_FS=m+CONFIG_JOLIET=y+CONFIG_UDF_FS=m+CONFIG_MSDOS_FS=y+CONFIG_VFAT_FS=y+CONFIG_TMPFS=y+CONFIG_JFFS2_FS=y+CONFIG_CRAMFS=y+CONFIG_NFS_FS=y+CONFIG_ROOT_NFS=y+CONFIG_NLS_CODEPAGE_437=y+CONFIG_NLS_CODEPAGE_850=y+CONFIG_NLS_ISO8859_1=y+CONFIG_NLS_ISO8859_2=y+CONFIG_NLS_UTF8=y+CONFIG_DEBUG_INFO=y+CONFIG_DEBUG_FS=y+CONFIG_MAGIC_SYSRQ=y+CONFIG_DEBUG_KERNEL=y+# CONFIG_SCHED_DEBUG is not set+# CONFIG_DEBUG_PREEMPT is not set+# CONFIG_FTRACE is not set+CONFIG_DEBUG_USER=y+CONFIG_CRYPTO_CBC=m+CONFIG_CRYPTO_PCBC=m+# CONFIG_CRYPTO_ANSI_CPRNG is not set+CONFIG_CRYPTO_DEV_MV_CESA=y+CONFIG_CRC_CCITT=y+CONFIG_LIBCRC32C=y
kirkwood is very nearly fully DT. Remove most of the address
definitions from the header files and make it a local header file.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
v2
Squash in the patch which removed unneeded includes.
---
arch/arm/mach-mvebu/include/mach/bridge-regs.h | 85 ---------------
arch/arm/mach-mvebu/include/mach/kirkwood.h | 142 -------------------------
arch/arm/mach-mvebu/kirkwood-pm.c | 2 +-
arch/arm/mach-mvebu/kirkwood.c | 9 +-
arch/arm/mach-mvebu/kirkwood.h | 22 ++++
5 files changed, 26 insertions(+), 234 deletions(-)
delete mode 100644 arch/arm/mach-mvebu/include/mach/bridge-regs.h
delete mode 100644 arch/arm/mach-mvebu/include/mach/kirkwood.h
create mode 100644 arch/arm/mach-mvebu/kirkwood.h
Now that there is both v5 and v7 systems in mach-mvebu, the
mvebu_defconfig is not sufficient, since these systems cannot be
combined. Add a v5 defconfig which is based on kirkwood_defconfig,
but purely DT.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
v4
Disable low level debug
Enable drivers needed by boards
Ensure ORION_WATCHDOG is enabled
---
arch/arm/configs/mvebu_v5_defconfig | 172 ++++++++++++++++++++++++++++++++++++
1 file changed, 172 insertions(+)
create mode 100644 arch/arm/configs/mvebu_v5_defconfig
@@ -0,0 +1,172 @@+CONFIG_SYSVIPC=y+CONFIG_NO_HZ=y+CONFIG_HIGH_RES_TIMERS=y+CONFIG_LOG_BUF_SHIFT=19+CONFIG_PROFILING=y+CONFIG_OPROFILE=y+CONFIG_KPROBES=y+CONFIG_MODULES=y+CONFIG_MODULE_UNLOAD=y+# CONFIG_BLK_DEV_BSG is not set+# CONFIG_ARCH_MULTI_V7 is not set+CONFIG_ARCH_MVEBU=y+CONFIG_MACH_KIRKWOOD=y+# CONFIG_CPU_FEROCEON_OLD_ID is not set+CONFIG_PCI_MVEBU=y+CONFIG_PREEMPT=y+CONFIG_AEABI=y+CONFIG_HIGHMEM=y+CONFIG_ZBOOT_ROM_TEXT=0x0+CONFIG_ZBOOT_ROM_BSS=0x0+CONFIG_CPU_FREQ=y+CONFIG_CPU_FREQ_STAT_DETAILS=y+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y+CONFIG_CPU_IDLE=y+CONFIG_NET=y+CONFIG_PACKET=y+CONFIG_UNIX=y+CONFIG_INET=y+CONFIG_IP_MULTICAST=y+CONFIG_IP_PNP=y+CONFIG_IP_PNP_DHCP=y+CONFIG_IP_PNP_BOOTP=y+# CONFIG_IPV6 is not set+CONFIG_NET_PKTGEN=m+CONFIG_CFG80211=y+CONFIG_MAC80211=y+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"+CONFIG_MTD=y+CONFIG_MTD_CMDLINE_PARTS=y+CONFIG_MTD_BLOCK=y+CONFIG_MTD_CFI=y+CONFIG_MTD_JEDECPROBE=y+CONFIG_MTD_CFI_ADV_OPTIONS=y+CONFIG_MTD_CFI_GEOMETRY=y+# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set+CONFIG_MTD_CFI_INTELEXT=y+CONFIG_MTD_CFI_STAA=y+CONFIG_MTD_PHYSMAP=y+CONFIG_MTD_M25P80=y+CONFIG_MTD_NAND=y+CONFIG_MTD_NAND_ORION=y+CONFIG_BLK_DEV_LOOP=y+CONFIG_EEPROM_AT24=y+# CONFIG_SCSI_PROC_FS is not set+CONFIG_BLK_DEV_SD=y+CONFIG_BLK_DEV_SR=m+CONFIG_CHR_DEV_SG=m+CONFIG_ATA=y+CONFIG_SATA_AHCI=y+CONFIG_SATA_MV=y+CONFIG_NETDEVICES=y+CONFIG_NET_DSA_MV88E6123_61_65=y+CONFIG_MV643XX_ETH=y+CONFIG_R8169=y+CONFIG_MARVELL_PHY=y+CONFIG_LIBERTAS=y+CONFIG_LIBERTAS_SDIO=y+CONFIG_INPUT_EVDEV=y+CONFIG_KEYBOARD_GPIO=y+# CONFIG_INPUT_MOUSE is not set+CONFIG_LEGACY_PTY_COUNT=16+# CONFIG_DEVKMEM is not set+CONFIG_SERIAL_8250=y+CONFIG_SERIAL_8250_CONSOLE=y+CONFIG_SERIAL_8250_RUNTIME_UARTS=2+CONFIG_SERIAL_OF_PLATFORM=y+# CONFIG_HW_RANDOM is not set+CONFIG_I2C=y+# CONFIG_I2C_COMPAT is not set+CONFIG_I2C_CHARDEV=y+CONFIG_I2C_MV64XXX=y+CONFIG_SPI=y+CONFIG_SPI_ORION=y+CONFIG_GPIO_SYSFS=y+CONFIG_POWER_SUPPLY=y+CONFIG_POWER_RESET=y+CONFIG_POWER_RESET_GPIO=y+CONFIG_POWER_RESET_QNAP=y+CONFIG_SENSORS_ADT7475=y+CONFIG_SENSORS_LM63=y+CONFIG_SENSORS_LM75=y+CONFIG_SENSORS_LM85=y+CONFIG_THERMAL=y+CONFIG_WATCHDOG=y+CONFIG_ORION_WATCHDOG=y+CONFIG_REGULATOR=y+CONFIG_REGULATOR_FIXED_VOLTAGE=y+CONFIG_HID_DRAGONRISE=y+CONFIG_HID_GYRATION=y+CONFIG_HID_TWINHAN=y+CONFIG_HID_NTRIG=y+CONFIG_HID_PANTHERLORD=y+CONFIG_HID_PETALYNX=y+CONFIG_HID_SAMSUNG=y+CONFIG_HID_SONY=y+CONFIG_HID_SUNPLUS=y+CONFIG_HID_GREENASIA=y+CONFIG_HID_SMARTJOYPLUS=y+CONFIG_HID_TOPSEED=y+CONFIG_HID_THRUSTMASTER=y+CONFIG_HID_ZEROPLUS=y+CONFIG_USB=y+CONFIG_USB_XHCI_HCD=y+CONFIG_USB_EHCI_HCD=y+CONFIG_USB_EHCI_ROOT_HUB_TT=y+CONFIG_USB_PRINTER=m+CONFIG_USB_STORAGE=y+CONFIG_USB_STORAGE_DATAFAB=y+CONFIG_USB_STORAGE_FREECOM=y+CONFIG_USB_STORAGE_SDDR09=y+CONFIG_USB_STORAGE_SDDR55=y+CONFIG_USB_STORAGE_JUMPSHOT=y+CONFIG_MMC=y+CONFIG_SDIO_UART=y+CONFIG_MMC_MVSDIO=y+CONFIG_NEW_LEDS=y+CONFIG_LEDS_CLASS=y+CONFIG_LEDS_GPIO=y+CONFIG_LEDS_TRIGGERS=y+CONFIG_LEDS_TRIGGER_TIMER=y+CONFIG_LEDS_TRIGGER_HEARTBEAT=y+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y+CONFIG_RTC_CLASS=y+CONFIG_RTC_DRV_RS5C372=y+CONFIG_RTC_DRV_PCF8563=y+CONFIG_RTC_DRV_S35390A=y+CONFIG_RTC_DRV_MV=y+CONFIG_DMADEVICES=y+CONFIG_MV_XOR=y+CONFIG_EXT2_FS=y+CONFIG_EXT3_FS=y+# CONFIG_EXT3_FS_XATTR is not set+CONFIG_EXT4_FS=y+CONFIG_ISO9660_FS=m+CONFIG_JOLIET=y+CONFIG_UDF_FS=m+CONFIG_MSDOS_FS=y+CONFIG_VFAT_FS=y+CONFIG_TMPFS=y+CONFIG_JFFS2_FS=y+CONFIG_CRAMFS=y+CONFIG_NFS_FS=y+CONFIG_ROOT_NFS=y+CONFIG_NLS_CODEPAGE_437=y+CONFIG_NLS_CODEPAGE_850=y+CONFIG_NLS_ISO8859_1=y+CONFIG_NLS_ISO8859_2=y+CONFIG_NLS_UTF8=y+CONFIG_DEBUG_INFO=y+CONFIG_DEBUG_FS=y+CONFIG_MAGIC_SYSRQ=y+CONFIG_DEBUG_KERNEL=y+# CONFIG_SCHED_DEBUG is not set+# CONFIG_DEBUG_PREEMPT is not set+# CONFIG_FTRACE is not set+CONFIG_DEBUG_USER=y+CONFIG_CRYPTO_CBC=m+CONFIG_CRYPTO_PCBC=m+# CONFIG_CRYPTO_ANSI_CPRNG is not set+CONFIG_CRYPTO_DEV_MV_CESA=y+CONFIG_CRC_CCITT=y+CONFIG_LIBCRC32C=y
From: Jason Cooper <hidden> Date: 2014-02-22 19:46:32
On Sat, Feb 22, 2014 at 08:14:44PM +0100, Andrew Lunn wrote:
Enabling SPARSE_IRQ shows up a bug in the irq-orion bridge interrupt
handler. The bridge interrupt is implemented using a single generic
chip. Thus the parameter passed to irq_get_domain_generic_chip()
should always be zero.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted> (on kirkwood)
---
drivers/irqchip/irq-orion.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
tglx has already taken pull request containing this fix.
thx,
Jason.
From: Jason Cooper <hidden> Date: 2014-02-22 19:50:16
On Sat, Feb 22, 2014 at 08:14:45PM +0100, Andrew Lunn wrote:
The mv88f6281gtw_ge has a ethernet switch connected to the ethernet
port of the SoC. Convert the platform device instantiation to a DT
instantiation.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
Cc: florian at openwrt.org
---
v2
Remove the spurius Module.symvers
Really do describe the switch in DT.
---
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 62 ++++++++++++++++++++++++++
arch/arm/mach-kirkwood/Kconfig | 7 ---
arch/arm/mach-kirkwood/Makefile | 1 -
arch/arm/mach-kirkwood/board-dt.c | 3 --
arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c | 50 ---------------------
arch/arm/mach-kirkwood/common.h | 7 ---
6 files changed, 62 insertions(+), 68 deletions(-)
delete mode 100644 arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c
You know, I think this is the last time we'll have to tie code changes
and dts file changes together...
:)
thx,
Jason.
@@ -58,13 +58,6 @@ void kirkwood_cpufreq_init(void);voidkirkwood_restart(enumreboot_mode,constchar*);voidkirkwood_clk_init(void);-/* board init functions for boards not fully converted to fdt */-#ifdef CONFIG_MACH_MV88F6281GTW_GE_DT-voidmv88f6281gtw_ge_init(void);-#else-staticinlinevoidmv88f6281gtw_ge_init(void){};-#endif-/* early init functions not converted to fdt yet */char*kirkwood_id(void);voidkirkwood_l2_init(void);
From: Jason Cooper <hidden> Date: 2014-02-22 19:58:46
Andrew,
On Sat, Feb 22, 2014 at 08:14:54PM +0100, Andrew Lunn wrote:
CPU_ARM926T should be selected if no other CPU is. Put the ! in the
right place so this works.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
---
arch/arm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Please put this in rmk's patch tracker:
Fixes: 24e860fbfdb1c ("ARM: multiplatform: always pick one CPU type")
Cc: stable at vger.kernel.org # v3.11+
Acked-by: Jason Cooper <redacted>
thx,
Jason.
From: Jason Cooper <hidden> Date: 2014-02-22 20:03:00
On Sat, Feb 22, 2014 at 08:14:55PM +0100, Andrew Lunn wrote:
Feroceon has the same flush operations as v4wbi, but has an additional
flag, TLB_L2CLEAN_FR. When building with MULTI_TLB this flag is placed
into cpu_tlb.tlb_flags, so there needs to be a cpu_tlb specifically
for feroceon, rather than sharing the v4wbi.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
Cc: Russell King <redacted>
---
arch/arm/mm/proc-feroceon.S | 2 +-
arch/arm/mm/tlb-v4wbi.S | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
This is a bit beyond me, so I'll just ask. Does the rest of this series
have a build dependency on this patch? If not, please put it in rmk's
patch tracker.
thx,
Jason.
On Sat, Feb 22, 2014 at 02:50:16PM -0500, Jason Cooper wrote:
On Sat, Feb 22, 2014 at 08:14:45PM +0100, Andrew Lunn wrote:
quoted
The mv88f6281gtw_ge has a ethernet switch connected to the ethernet
port of the SoC. Convert the platform device instantiation to a DT
instantiation.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
Cc: florian at openwrt.org
---
v2
Remove the spurius Module.symvers
Really do describe the switch in DT.
---
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 62 ++++++++++++++++++++++++++
arch/arm/mach-kirkwood/Kconfig | 7 ---
arch/arm/mach-kirkwood/Makefile | 1 -
arch/arm/mach-kirkwood/board-dt.c | 3 --
arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c | 50 ---------------------
arch/arm/mach-kirkwood/common.h | 7 ---
6 files changed, 62 insertions(+), 68 deletions(-)
delete mode 100644 arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c
You know, I think this is the last time we'll have to tie code changes
and dts file changes together...
Humm, if we part convert T5325 and OpenRD it won't be.
Andrew
From: Jason Cooper <hidden> Date: 2014-02-22 20:23:02
On Sat, Feb 22, 2014 at 09:20:31PM +0100, Andrew Lunn wrote:
On Sat, Feb 22, 2014 at 02:50:16PM -0500, Jason Cooper wrote:
quoted
On Sat, Feb 22, 2014 at 08:14:45PM +0100, Andrew Lunn wrote:
quoted
The mv88f6281gtw_ge has a ethernet switch connected to the ethernet
port of the SoC. Convert the platform device instantiation to a DT
instantiation.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Jason Gunthorpe <redacted>
Cc: florian at openwrt.org
---
v2
Remove the spurius Module.symvers
Really do describe the switch in DT.
---
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 62 ++++++++++++++++++++++++++
arch/arm/mach-kirkwood/Kconfig | 7 ---
arch/arm/mach-kirkwood/Makefile | 1 -
arch/arm/mach-kirkwood/board-dt.c | 3 --
arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c | 50 ---------------------
arch/arm/mach-kirkwood/common.h | 7 ---
6 files changed, 62 insertions(+), 68 deletions(-)
delete mode 100644 arch/arm/mach-kirkwood/board-mv88f6281gtw_ge.c
You know, I think this is the last time we'll have to tie code changes
and dts file changes together...
Humm, if we part convert T5325 and OpenRD it won't be.
Depends on how critical we think audio and leds are to those boards...
thx,
Jason.
From: Jason Cooper <hidden> Date: 2014-02-22 22:16:19
Andrew,
I've tentatively pulled this in as detailed below. The only outlier is
an Ack from rmk on one patch.
On Sat, Feb 22, 2014 at 08:14:42PM +0100, Andrew Lunn wrote:
The process of making most kirkwood boards boot using DT is nearly
complete. We can now move these boards into mach-mvebu, freeing them
of the legacy code needed for none-DT systems. At the same time, they
can become part of ARCH_MULTI_V5.
...
Andrew Lunn (22):
ARM: Kirkwood: Give pm.c its own header file.
applied to mvebu/soc-kw
irqchip: Orion: Fix getting generic chip pointer.
in mvebu/irqchip-fixes and already taken by tglx
ARM: Kirkwood: Convert mv88f6281gtw_ge switch setup to DT
ARM: Kirkwood: Drop printing the SoC type and revision
ARM: Kirkwood: Seperate board-dt from common and pcie code.
ARM: Kirkwood: ioremap the cpu_config register before using it.
ARM: Kirkwood: ioremap memory control register
ARM: MVEBU: Add ARCH_MULTI_V7 to SoCs
ARM: Orion: Move cache-feroceon-l2.h out of plat-orion
applied to mvebu/soc-kw
ARM: MM: Add DT binding for Feroceon L2 cache
applied to mvebu/soc-kw (needs Ack from rmk)
ARM: Kirkwood: Instantiate L2 cache from DT.
applied to mvebu/dt
ARM: Fix default CPU selection for ARCH_MULTI_V5
applied to mvebu/soc-kw
ARM: Fix MULTI_TLB for feroceon
for rmk's patch tracker
ARM: MM Enable building Feroceon L2 cache controller with ARCH_MVEBU
ARM: Move kirkwood DT boards into mach-mvebu
ARM: MVEBU: Let kirkwood use the system controller for restart
applied to mvebu/soc-kw
ARM: MVEBU: Instantiate system controller in kirkwood.dtsi
applied to mvebu/dt
drivers: Enable building of Kirkwood drivers for mach-mvebu
applied to mvebu/drivers
ARM: MVEBU: Enable mvebu-soc-id on Kirkwood
applied to mvebu/soc-kw
ARM: config: Add a multi_v5_defconfig
applied to mvebu/defconfig
ARM: MVEBU: Simplifiy headers and make local
applied to mvebu/soc-kw
ARM: config: Add mvebu_v5_defconfig
applied to mvebu/defconfig
Great work Andrew!
thx,
Jason.
On 23 February 2014 00:45, Andrew Lunn [off-list ref] wrote:
With the move of kirkwood into mach-mvebu, drivers Kconfig need
tweeking to allow the kirkwood specific drivers to be built.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mark Brown <redacted>
Acked-by: Kishon Vijay Abraham I <redacted>
Acked-by: Daniel Lezcano <redacted>
Tested-by: Jason Gunthorpe <redacted>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael J. Wysocki <redacted>
Cc: Richard Purdie <redacted>
Cc: Bryan Wu <redacted>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <redacted>
---
v2
Simplify cpufreq/Kconfig.arm
Still needs ACKs from cpufreq, led and thermal maintainers.
---
drivers/cpufreq/Kconfig.arm | 2 +-
From: Jason Cooper <hidden> Date: 2014-02-24 17:32:35
On Mon, Feb 24, 2014 at 11:07:35AM +0530, Viresh Kumar wrote:
On 23 February 2014 00:45, Andrew Lunn [off-list ref] wrote:
quoted
With the move of kirkwood into mach-mvebu, drivers Kconfig need
tweeking to allow the kirkwood specific drivers to be built.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mark Brown <redacted>
Acked-by: Kishon Vijay Abraham I <redacted>
Acked-by: Daniel Lezcano <redacted>
Tested-by: Jason Gunthorpe <redacted>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael J. Wysocki <redacted>
Cc: Richard Purdie <redacted>
Cc: Bryan Wu <redacted>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <redacted>
---
v2
Simplify cpufreq/Kconfig.arm
Still needs ACKs from cpufreq, led and thermal maintainers.
---
drivers/cpufreq/Kconfig.arm | 2 +-
On Sat, Feb 22, 2014 at 11:15 AM, Andrew Lunn [off-list ref] wrote:
quoted hunk
With the move of kirkwood into mach-mvebu, drivers Kconfig need
tweeking to allow the kirkwood specific drivers to be built.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mark Brown <redacted>
Acked-by: Kishon Vijay Abraham I <redacted>
Acked-by: Daniel Lezcano <redacted>
Tested-by: Jason Gunthorpe <redacted>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael J. Wysocki <redacted>
Cc: Richard Purdie <redacted>
Cc: Bryan Wu <redacted>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <redacted>
---
v2
Simplify cpufreq/Kconfig.arm
Still needs ACKs from cpufreq, led and thermal maintainers.
---
drivers/cpufreq/Kconfig.arm | 2 +-
drivers/cpuidle/Kconfig.arm | 2 +-
drivers/leds/Kconfig | 4 ++--
drivers/phy/Kconfig | 2 +-
drivers/thermal/Kconfig | 2 +-
sound/soc/kirkwood/Kconfig | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
@@ -421,7 +421,7 @@ config LEDS_MC13783configLEDS_NS2tristate"LED support for Network Space v2 GPIO LEDs"depends onLEDS_CLASS-depends onARCH_KIRKWOOD+depends onARCH_KIRKWOOD||MACH_KIRKWOODdefaultyhelpThisoptionenablesupportforthedual-GPIOLEDfoundonthe
@@ -431,7 +431,7 @@ config LEDS_NS2configLEDS_NETXBIGtristate"LED support for Big Network series LEDs"depends onLEDS_CLASS-depends onARCH_KIRKWOOD+depends onARCH_KIRKWOOD||MACH_KIRKWOODdefaultyhelpThisoptionenablesupportforLEDsfoundontheLaCie2Big
@@ -1,6 +1,6 @@configSND_KIRKWOOD_SOCtristate"SoC Audio for the Marvell Kirkwood and Dove chips"-depends onARCH_KIRKWOOD||ARCH_DOVE||COMPILE_TEST+depends onARCH_KIRKWOOD||ARCH_DOVE||MACH_KIRKWOOD||COMPILE_TESThelpSayYorMifyouwanttoaddsupportforcodecsattachedtotheKirkwoodI2Sinterface.Youwillalsoneedtoselectthe--