diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2015-12-08 08:28:27 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-12-08 08:28:27 +0100 |
commit | d10a05b410db9579efa88180d51afebd2bc3efa5 (patch) | |
tree | d6c6f93929b9997a73b56d85675f14973a056f8b /arch | |
parent | 4b1430b653d73635ffbd6ac45e39fad891b2d9e2 (diff) | |
parent | f01b562cb86a30440144e35698043baa272197e3 (diff) | |
download | barebox-d10a05b410db9579efa88180d51afebd2bc3efa5.tar.gz barebox-d10a05b410db9579efa88180d51afebd2bc3efa5.tar.xz |
Merge branch 'for-next/mtd'
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/boards/zylonite/board.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-pxa/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/include/mach/clock.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/speed-pxa3xx.c | 20 |
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); |