summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-12-08 08:28:27 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-12-08 08:28:27 +0100
commitd10a05b410db9579efa88180d51afebd2bc3efa5 (patch)
treed6c6f93929b9997a73b56d85675f14973a056f8b /arch
parent4b1430b653d73635ffbd6ac45e39fad891b2d9e2 (diff)
parentf01b562cb86a30440144e35698043baa272197e3 (diff)
downloadbarebox-d10a05b410db9579efa88180d51afebd2bc3efa5.tar.gz
barebox-d10a05b410db9579efa88180d51afebd2bc3efa5.tar.xz
Merge branch 'for-next/mtd'
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/boards/zylonite/board.c7
-rw-r--r--arch/arm/mach-pxa/Kconfig2
-rw-r--r--arch/arm/mach-pxa/include/mach/clock.h1
-rw-r--r--arch/arm/mach-pxa/speed-pxa3xx.c20
5 files changed, 25 insertions, 6 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c03f7dc883..9f4d8e9587 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -152,6 +152,7 @@ config ARCH_PXA
bool "Intel/Marvell PXA based"
select GENERIC_GPIO
select HAS_POWEROFF
+ select HAVE_CLK
config ARCH_ROCKCHIP
bool "Rockchip RX3xxx"
diff --git a/arch/arm/boards/zylonite/board.c b/arch/arm/boards/zylonite/board.c
index 2caadbcecc..2ff08b7934 100644
--- a/arch/arm/boards/zylonite/board.c
+++ b/arch/arm/boards/zylonite/board.c
@@ -28,6 +28,8 @@
#include <net/smc91111.h>
#include <platform_data/mtd-nand-mrvl.h>
#include <pwm.h>
+#include <linux/clk.h>
+#include <linux/clkdev.h>
#include <linux/sizes.h>
#include <mach/devices.h>
@@ -60,11 +62,16 @@ static mfp_cfg_t pxa310_mfp_cfg[] = {
static int zylonite_devices_init(void)
{
+ struct clk *clk;
+
armlinux_set_architecture(MACH_TYPE_ZYLONITE);
pxa_add_uart((void *)0x40100000, 0);
add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL,
0x14000300, 0x100000, IORESOURCE_MEM,
&smsc91x_pdata);
+ clk = clk_get_sys("nand", NULL);
+ if (!IS_ERR(clk))
+ clkdev_add_physbase(clk, 0x43100000, NULL);
add_generic_device("mrvl_nand", DEVICE_ID_DYNAMIC, NULL,
0x43100000, 0x1000, IORESOURCE_MEM, &nand_pdata);
devfs_add_partition("nand0", SZ_1M, SZ_256K, DEVFS_PARTITION_FIXED,
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 54094f4ca0..1c0894892b 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -17,6 +17,8 @@ config ARCH_PXA2XX
config ARCH_PXA3XX
bool
select CPU_XSC3
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
config ARCH_PXA310
bool
diff --git a/arch/arm/mach-pxa/include/mach/clock.h b/arch/arm/mach-pxa/include/mach/clock.h
index 40f6223cd9..f86152f7af 100644
--- a/arch/arm/mach-pxa/include/mach/clock.h
+++ b/arch/arm/mach-pxa/include/mach/clock.h
@@ -14,7 +14,6 @@
unsigned long pxa_get_uartclk(void);
unsigned long pxa_get_mmcclk(void);
unsigned long pxa_get_lcdclk(void);
-unsigned long pxa_get_nandclk(void);
unsigned long pxa_get_pwmclk(void);
#endif /* !__MACH_CLOCK_H */
diff --git a/arch/arm/mach-pxa/speed-pxa3xx.c b/arch/arm/mach-pxa/speed-pxa3xx.c
index 6a08ea78f0..b24b7a8fc3 100644
--- a/arch/arm/mach-pxa/speed-pxa3xx.c
+++ b/arch/arm/mach-pxa/speed-pxa3xx.c
@@ -8,6 +8,9 @@
*/
#include <common.h>
+#include <init.h>
+#include <linux/clk.h>
+#include <linux/clkdev.h>
#include <mach/clock.h>
#include <mach/pxa-regs.h>
@@ -24,10 +27,17 @@ unsigned long pxa_get_pwmclk(void)
return BASE_CLK;
}
-unsigned long pxa_get_nandclk(void)
+static int pxa3xx_clock_init(void)
{
- if (cpu_is_pxa320())
- return 104000000;
- else
- return 156000000;
+ unsigned long nand_rate = (cpu_is_pxa320()) ? 104000000 : 156000000;
+ struct clk *clk;
+ int ret;
+
+ clk = clk_fixed("nand", nand_rate);
+ ret = clk_register_clkdev(clk, NULL, "nand");
+ if (ret)
+ return ret;
+
+ return 0;
}
+postcore_initcall(pxa3xx_clock_init);