[ARM] 3149/1: SharpSL: Add Akita (SL-C1000) machine support
Patch from Richard Purdie Add the core machine support for the Sharp SL-C1000 (Akita) and enable the Kconfig selection for it. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
a1510210c4
commit
94cabd003e
|
@ -72,6 +72,12 @@ config MACH_HUSKY
|
||||||
depends PXA_SHARPSL_25x
|
depends PXA_SHARPSL_25x
|
||||||
select PXA_SHARP_C7xx
|
select PXA_SHARP_C7xx
|
||||||
|
|
||||||
|
config MACH_AKITA
|
||||||
|
bool "Enable Sharp SL-1000 (Akita) Support"
|
||||||
|
depends PXA_SHARPSL_27x
|
||||||
|
select PXA_SHARP_Cxx00
|
||||||
|
select MACH_SPITZ
|
||||||
|
|
||||||
config MACH_SPITZ
|
config MACH_SPITZ
|
||||||
bool "Enable Sharp Zaurus SL-3000 (Spitz) Support"
|
bool "Enable Sharp Zaurus SL-3000 (Spitz) Support"
|
||||||
depends PXA_SHARPSL_27x
|
depends PXA_SHARPSL_27x
|
||||||
|
|
|
@ -345,6 +345,16 @@ static void spitz_irda_transceiver_mode(struct device *dev, int mode)
|
||||||
reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_IR_ON);
|
reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_IR_ON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_AKITA
|
||||||
|
static void akita_irda_transceiver_mode(struct device *dev, int mode)
|
||||||
|
{
|
||||||
|
if (mode & IR_OFF)
|
||||||
|
akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_IR_ON);
|
||||||
|
else
|
||||||
|
akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_IR_ON);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct pxaficp_platform_data spitz_ficp_platform_data = {
|
static struct pxaficp_platform_data spitz_ficp_platform_data = {
|
||||||
.transceiver_cap = IR_SIRMODE | IR_OFF,
|
.transceiver_cap = IR_SIRMODE | IR_OFF,
|
||||||
.transceiver_mode = spitz_irda_transceiver_mode,
|
.transceiver_mode = spitz_irda_transceiver_mode,
|
||||||
|
@ -417,6 +427,32 @@ static void __init spitz_init(void)
|
||||||
platform_device_register(&spitzscoop2_device);
|
platform_device_register(&spitzscoop2_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_AKITA
|
||||||
|
/*
|
||||||
|
* Akita IO Expander
|
||||||
|
*/
|
||||||
|
struct platform_device akitaioexp_device = {
|
||||||
|
.name = "akita-ioexp",
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
static void __init akita_init(void)
|
||||||
|
{
|
||||||
|
spitz_ficp_platform_data.transceiver_mode = akita_irda_transceiver_mode;
|
||||||
|
|
||||||
|
/* We just pretend the second element of the array doesn't exist */
|
||||||
|
spitz_pcmcia_config.num_devs = 1;
|
||||||
|
platform_scoop_config = &spitz_pcmcia_config;
|
||||||
|
spitz_bl_machinfo.set_bl_intensity = akita_bl_set_intensity;
|
||||||
|
|
||||||
|
platform_device_register(&akitaioexp_device);
|
||||||
|
|
||||||
|
spitzscoop_device.dev.parent = &akitaioexp_device.dev;
|
||||||
|
common_init();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void __init fixup_spitz(struct machine_desc *desc,
|
static void __init fixup_spitz(struct machine_desc *desc,
|
||||||
struct tag *tags, char **cmdline, struct meminfo *mi)
|
struct tag *tags, char **cmdline, struct meminfo *mi)
|
||||||
{
|
{
|
||||||
|
@ -452,3 +488,16 @@ MACHINE_START(BORZOI, "SHARP Borzoi")
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_AKITA
|
||||||
|
MACHINE_START(AKITA, "SHARP Akita")
|
||||||
|
.phys_ram = 0xa0000000,
|
||||||
|
.phys_io = 0x40000000,
|
||||||
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
|
.fixup = fixup_spitz,
|
||||||
|
.map_io = pxa_map_io,
|
||||||
|
.init_irq = pxa_init_irq,
|
||||||
|
.init_machine = akita_init,
|
||||||
|
.timer = &pxa_timer,
|
||||||
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
/* Default Values */
|
/* Default Values */
|
||||||
#define AKITA_IOEXP_IO_OUT (AKITA_IOEXP_IR_ON | AKITA_IOEXP_AKIN_PULLUP)
|
#define AKITA_IOEXP_IO_OUT (AKITA_IOEXP_IR_ON | AKITA_IOEXP_AKIN_PULLUP)
|
||||||
|
|
||||||
|
extern struct platform_device akitaioexp_device;
|
||||||
|
|
||||||
void akita_set_ioexp(struct device *dev, unsigned char bitmask);
|
void akita_set_ioexp(struct device *dev, unsigned char bitmask);
|
||||||
void akita_reset_ioexp(struct device *dev, unsigned char bitmask);
|
void akita_reset_ioexp(struct device *dev, unsigned char bitmask);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue