arm: kirkwood: Instantiate cpufreq driver
Register a platform driver structure for the cpufreq driver. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Tested-by: Adam Baker <linux@baker-net.org.uk> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
This commit is contained in:
Родитель
3207792e62
Коммит
0e2ee0c061
|
@ -501,6 +501,7 @@ config ARCH_DOVE
|
||||||
|
|
||||||
config ARCH_KIRKWOOD
|
config ARCH_KIRKWOOD
|
||||||
bool "Marvell Kirkwood"
|
bool "Marvell Kirkwood"
|
||||||
|
select ARCH_HAS_CPUFREQ
|
||||||
select ARCH_REQUIRE_GPIOLIB
|
select ARCH_REQUIRE_GPIOLIB
|
||||||
select CPU_FEROCEON
|
select CPU_FEROCEON
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
|
|
|
@ -92,6 +92,8 @@ static void __init kirkwood_dt_init(void)
|
||||||
|
|
||||||
kirkwood_l2_init();
|
kirkwood_l2_init();
|
||||||
|
|
||||||
|
kirkwood_cpufreq_init();
|
||||||
|
|
||||||
/* Setup root of clk tree */
|
/* Setup root of clk tree */
|
||||||
kirkwood_of_clk_init();
|
kirkwood_of_clk_init();
|
||||||
|
|
||||||
|
|
|
@ -603,6 +603,29 @@ void __init kirkwood_audio_init(void)
|
||||||
platform_device_register(&kirkwood_pcm_device);
|
platform_device_register(&kirkwood_pcm_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* CPU Frequency
|
||||||
|
****************************************************************************/
|
||||||
|
static struct resource kirkwood_cpufreq_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = CPU_CONTROL_PHYS,
|
||||||
|
.end = CPU_CONTROL_PHYS + 3,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device kirkwood_cpufreq_device = {
|
||||||
|
.name = "kirkwood-cpufreq",
|
||||||
|
.id = -1,
|
||||||
|
.num_resources = ARRAY_SIZE(kirkwood_cpufreq_resources),
|
||||||
|
.resource = kirkwood_cpufreq_resources,
|
||||||
|
};
|
||||||
|
|
||||||
|
void __init kirkwood_cpufreq_init(void)
|
||||||
|
{
|
||||||
|
platform_device_register(&kirkwood_cpufreq_device);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* General
|
* General
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
|
@ -51,6 +51,8 @@ void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts,
|
||||||
int (*dev_ready)(struct mtd_info *));
|
int (*dev_ready)(struct mtd_info *));
|
||||||
void kirkwood_audio_init(void);
|
void kirkwood_audio_init(void);
|
||||||
void kirkwood_cpuidle_init(void);
|
void kirkwood_cpuidle_init(void);
|
||||||
|
void kirkwood_cpufreq_init(void);
|
||||||
|
|
||||||
void kirkwood_restart(char, const char *);
|
void kirkwood_restart(char, const char *);
|
||||||
void kirkwood_clk_init(void);
|
void kirkwood_clk_init(void);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#define CPU_CONFIG_ERROR_PROP 0x00000004
|
#define CPU_CONFIG_ERROR_PROP 0x00000004
|
||||||
|
|
||||||
#define CPU_CONTROL (BRIDGE_VIRT_BASE + 0x0104)
|
#define CPU_CONTROL (BRIDGE_VIRT_BASE + 0x0104)
|
||||||
|
#define CPU_CONTROL_PHYS (BRIDGE_PHYS_BASE + 0x0104)
|
||||||
#define CPU_RESET 0x00000002
|
#define CPU_RESET 0x00000002
|
||||||
|
|
||||||
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108)
|
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108)
|
||||||
|
@ -69,6 +70,7 @@
|
||||||
#define CGC_RUNIT (1 << 7)
|
#define CGC_RUNIT (1 << 7)
|
||||||
#define CGC_XOR0 (1 << 8)
|
#define CGC_XOR0 (1 << 8)
|
||||||
#define CGC_AUDIO (1 << 9)
|
#define CGC_AUDIO (1 << 9)
|
||||||
|
#define CGC_POWERSAVE (1 << 11)
|
||||||
#define CGC_SATA0 (1 << 14)
|
#define CGC_SATA0 (1 << 14)
|
||||||
#define CGC_SATA1 (1 << 15)
|
#define CGC_SATA1 (1 << 15)
|
||||||
#define CGC_XOR1 (1 << 16)
|
#define CGC_XOR1 (1 << 16)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче