mirror of https://gitee.com/openkylin/linux.git
Merge branch 'for_rmk_17' of git://git.mnementh.co.uk/linux-2.6-im
This commit is contained in:
commit
1a1dc50442
|
@ -125,3 +125,28 @@ void clks_register(struct clk *clks, size_t num)
|
||||||
list_add(&clks[i].node, &clocks);
|
list_add(&clks[i].node, &clocks);
|
||||||
mutex_unlock(&clocks_mutex);
|
mutex_unlock(&clocks_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int clk_add_alias(char *alias, struct device *alias_dev, char *id,
|
||||||
|
struct device *dev)
|
||||||
|
{
|
||||||
|
struct clk *r = clk_lookup(dev, id);
|
||||||
|
struct clk *new;
|
||||||
|
|
||||||
|
if (!r)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
new = kzalloc(sizeof(struct clk), GFP_KERNEL);
|
||||||
|
|
||||||
|
if (!new)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
new->name = alias;
|
||||||
|
new->dev = alias_dev;
|
||||||
|
new->other = r;
|
||||||
|
|
||||||
|
mutex_lock(&clocks_mutex);
|
||||||
|
list_add(&new->node, &clocks);
|
||||||
|
mutex_unlock(&clocks_mutex);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include <linux/list.h>
|
||||||
|
|
||||||
struct clk;
|
struct clk;
|
||||||
|
|
||||||
struct clkops {
|
struct clkops {
|
||||||
|
@ -86,3 +88,6 @@ extern void clk_pxa3xx_cken_disable(struct clk *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void clks_register(struct clk *clks, size_t num);
|
void clks_register(struct clk *clks, size_t num);
|
||||||
|
int clk_add_alias(char *alias, struct device *alias_dev, char *id,
|
||||||
|
struct device *dev);
|
||||||
|
|
||||||
|
|
|
@ -10,15 +10,75 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/kernel.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
#include <mach/hardware.h>
|
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
|
|
||||||
|
#include <mach/mfp-pxa25x.h>
|
||||||
|
#include <mach/hardware.h>
|
||||||
|
|
||||||
#include "generic.h"
|
#include "generic.h"
|
||||||
|
|
||||||
|
static unsigned long e740_pin_config[] __initdata = {
|
||||||
|
/* Chip selects */
|
||||||
|
GPIO15_nCS_1, /* CS1 - Flash */
|
||||||
|
GPIO79_nCS_3, /* CS3 - IMAGEON */
|
||||||
|
GPIO80_nCS_4, /* CS4 - TMIO */
|
||||||
|
|
||||||
|
/* Clocks */
|
||||||
|
GPIO12_32KHz,
|
||||||
|
|
||||||
|
/* BTUART */
|
||||||
|
GPIO42_BTUART_RXD,
|
||||||
|
GPIO43_BTUART_TXD,
|
||||||
|
GPIO44_BTUART_CTS,
|
||||||
|
GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
|
||||||
|
|
||||||
|
/* PC Card */
|
||||||
|
GPIO8_GPIO, /* CD0 */
|
||||||
|
GPIO44_GPIO, /* CD1 */
|
||||||
|
GPIO11_GPIO, /* IRQ0 */
|
||||||
|
GPIO6_GPIO, /* IRQ1 */
|
||||||
|
GPIO27_GPIO, /* RST0 */
|
||||||
|
GPIO24_GPIO, /* RST1 */
|
||||||
|
GPIO20_GPIO, /* PWR0 */
|
||||||
|
GPIO23_GPIO, /* PWR1 */
|
||||||
|
GPIO48_nPOE,
|
||||||
|
GPIO49_nPWE,
|
||||||
|
GPIO50_nPIOR,
|
||||||
|
GPIO51_nPIOW,
|
||||||
|
GPIO52_nPCE_1,
|
||||||
|
GPIO53_nPCE_2,
|
||||||
|
GPIO54_nPSKTSEL,
|
||||||
|
GPIO55_nPREG,
|
||||||
|
GPIO56_nPWAIT,
|
||||||
|
GPIO57_nIOIS16,
|
||||||
|
|
||||||
|
/* wakeup */
|
||||||
|
GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
static unsigned long e400_pin_config[] __initdata = {
|
||||||
|
/* Chip selects */
|
||||||
|
GPIO15_nCS_1, /* CS1 - Flash */
|
||||||
|
GPIO80_nCS_4, /* CS4 - TMIO */
|
||||||
|
|
||||||
|
/* Clocks */
|
||||||
|
GPIO12_32KHz,
|
||||||
|
|
||||||
|
/* BTUART */
|
||||||
|
GPIO42_BTUART_RXD,
|
||||||
|
GPIO43_BTUART_TXD,
|
||||||
|
GPIO44_BTUART_CTS,
|
||||||
|
GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
|
||||||
|
|
||||||
|
/* wakeup */
|
||||||
|
GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
|
||||||
|
};
|
||||||
|
|
||||||
/* Only e800 has 128MB RAM */
|
/* Only e800 has 128MB RAM */
|
||||||
static void __init eseries_fixup(struct machine_desc *desc,
|
static void __init eseries_fixup(struct machine_desc *desc,
|
||||||
struct tag *tags, char **cmdline, struct meminfo *mi)
|
struct tag *tags, char **cmdline, struct meminfo *mi)
|
||||||
|
@ -32,6 +92,16 @@ static void __init eseries_fixup(struct machine_desc *desc,
|
||||||
mi->bank[0].size = (64*1024*1024);
|
mi->bank[0].size = (64*1024*1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __init e740_init(void)
|
||||||
|
{
|
||||||
|
pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init e400_init(void)
|
||||||
|
{
|
||||||
|
pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
|
||||||
|
}
|
||||||
|
|
||||||
/* e-series machine definitions */
|
/* e-series machine definitions */
|
||||||
|
|
||||||
#ifdef CONFIG_MACH_E330
|
#ifdef CONFIG_MACH_E330
|
||||||
|
@ -69,6 +139,7 @@ MACHINE_START(E740, "Toshiba e740")
|
||||||
.map_io = pxa_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = pxa25x_init_irq,
|
.init_irq = pxa25x_init_irq,
|
||||||
.fixup = eseries_fixup,
|
.fixup = eseries_fixup,
|
||||||
|
.init_machine = e740_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
#endif
|
#endif
|
||||||
|
@ -95,6 +166,7 @@ MACHINE_START(E400, "Toshiba e400")
|
||||||
.map_io = pxa_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = pxa25x_init_irq,
|
.init_irq = pxa25x_init_irq,
|
||||||
.fixup = eseries_fixup,
|
.fixup = eseries_fixup,
|
||||||
|
.init_machine = e400_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -183,6 +183,7 @@
|
||||||
defined(CONFIG_MACH_TOSA) || \
|
defined(CONFIG_MACH_TOSA) || \
|
||||||
defined(CONFIG_MACH_MAINSTONE) || \
|
defined(CONFIG_MACH_MAINSTONE) || \
|
||||||
defined(CONFIG_MACH_PCM027) || \
|
defined(CONFIG_MACH_PCM027) || \
|
||||||
|
defined(CONFIG_ARCH_PXA_ESERIES) || \
|
||||||
defined(CONFIG_MACH_MAGICIAN)
|
defined(CONFIG_MACH_MAGICIAN)
|
||||||
#define NR_IRQS (IRQ_BOARD_END)
|
#define NR_IRQS (IRQ_BOARD_END)
|
||||||
#elif defined(CONFIG_MACH_ZYLONITE)
|
#elif defined(CONFIG_MACH_ZYLONITE)
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
|
|
||||||
#include "generic.h"
|
#include "generic.h"
|
||||||
|
#include "clock.h"
|
||||||
#include "devices.h"
|
#include "devices.h"
|
||||||
|
|
||||||
static unsigned long lubbock_pin_config[] __initdata = {
|
static unsigned long lubbock_pin_config[] __initdata = {
|
||||||
|
@ -485,6 +486,7 @@ static void __init lubbock_init(void)
|
||||||
|
|
||||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config));
|
pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config));
|
||||||
|
|
||||||
|
clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL);
|
||||||
pxa_set_udc_info(&udc_info);
|
pxa_set_udc_info(&udc_info);
|
||||||
set_pxa_fb_info(&sharp_lm8v31);
|
set_pxa_fb_info(&sharp_lm8v31);
|
||||||
pxa_set_mci_info(&lubbock_mci_platform_data);
|
pxa_set_mci_info(&lubbock_mci_platform_data);
|
||||||
|
|
|
@ -166,8 +166,7 @@ static struct clk pxa25x_hwuart_clk =
|
||||||
;
|
;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PXA 2xx clock declarations. Order is important (see aliases below)
|
* PXA 2xx clock declarations.
|
||||||
* Please be careful not to disrupt the ordering.
|
|
||||||
*/
|
*/
|
||||||
static struct clk pxa25x_clks[] = {
|
static struct clk pxa25x_clks[] = {
|
||||||
INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev),
|
INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev),
|
||||||
|
@ -194,11 +193,6 @@ static struct clk pxa25x_clks[] = {
|
||||||
INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL),
|
INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct clk pxa2xx_clk_aliases[] = {
|
|
||||||
INIT_CKOTHER("GPIO7_CLK", &pxa25x_clks[4], NULL),
|
|
||||||
INIT_CKOTHER("SA1111_CLK", &pxa25x_clks[5], NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
|
||||||
#define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x
|
#define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x
|
||||||
|
@ -375,8 +369,6 @@ static int __init pxa25x_init(void)
|
||||||
if (cpu_is_pxa255())
|
if (cpu_is_pxa255())
|
||||||
ret = platform_device_register(&pxa_device_hwuart);
|
ret = platform_device_register(&pxa_device_hwuart);
|
||||||
|
|
||||||
clks_register(pxa2xx_clk_aliases, ARRAY_SIZE(pxa2xx_clk_aliases));
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue