-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: 5820/1: SA1100: h3100/h3600: split h3600.c
Split common h3600.c into three separate files: h3100.c, h3600.c and h3xxx.c (the latter contains common code for h3100/h3600) Copyright boilerplates and #includes are copied intact and will be cleaned up later. Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- Loading branch information
Dmitry Artamonow
authored and
Russell King
committed
Dec 6, 2009
1 parent
8715b29
commit 86e5e38
Showing
5 changed files
with
427 additions
and
335 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
/* | ||
* Hardware definitions for Compaq iPAQ H3xxx Handheld Computers | ||
* | ||
* Copyright 2000,1 Compaq Computer Corporation. | ||
* | ||
* Use consistent with the GNU GPL is permitted, | ||
* provided that this copyright notice is | ||
* preserved in its entirety in all copies and derived works. | ||
* | ||
* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, | ||
* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS | ||
* FITNESS FOR ANY PARTICULAR PURPOSE. | ||
* | ||
* Author: Jamey Hicks. | ||
* | ||
* History: | ||
* | ||
* 2001-10-?? Andrew Christian Added support for iPAQ H3800 | ||
* and abstracted EGPIO interface. | ||
* | ||
*/ | ||
#include <linux/module.h> | ||
#include <linux/init.h> | ||
#include <linux/kernel.h> | ||
#include <linux/tty.h> | ||
#include <linux/pm.h> | ||
#include <linux/device.h> | ||
#include <linux/mfd/htc-egpio.h> | ||
#include <linux/mtd/mtd.h> | ||
#include <linux/mtd/partitions.h> | ||
#include <linux/serial_core.h> | ||
#include <linux/gpio.h> | ||
#include <linux/platform_device.h> | ||
|
||
#include <asm/irq.h> | ||
#include <mach/hardware.h> | ||
#include <asm/mach-types.h> | ||
#include <asm/setup.h> | ||
|
||
#include <asm/mach/irq.h> | ||
#include <asm/mach/arch.h> | ||
#include <asm/mach/flash.h> | ||
#include <asm/mach/irda.h> | ||
#include <asm/mach/map.h> | ||
#include <asm/mach/serial_sa1100.h> | ||
|
||
#include <mach/h3xxx.h> | ||
|
||
#include "generic.h" | ||
|
||
/* | ||
* helper for sa1100fb | ||
*/ | ||
static void h3100_lcd_power(int enable) | ||
{ | ||
if (!gpio_request(H3XXX_EGPIO_LCD_ON, "LCD ON")) { | ||
gpio_set_value(H3100_GPIO_LCD_3V_ON, enable); | ||
gpio_direction_output(H3XXX_EGPIO_LCD_ON, enable); | ||
gpio_free(H3XXX_EGPIO_LCD_ON); | ||
} | ||
} | ||
|
||
|
||
static void __init h3100_map_io(void) | ||
{ | ||
h3xxx_map_io(); | ||
|
||
sa1100fb_lcd_power = h3100_lcd_power; | ||
|
||
/* Older bootldrs put GPIO2-9 in alternate mode on the | ||
assumption that they are used for video */ | ||
GAFR &= ~0x000001fb; | ||
} | ||
|
||
/* | ||
* This turns the IRDA power on or off on the Compaq H3100 | ||
*/ | ||
static int h3100_irda_set_power(struct device *dev, unsigned int state) | ||
{ | ||
gpio_set_value(H3100_GPIO_IR_ON, state); | ||
return 0; | ||
} | ||
|
||
static void h3100_irda_set_speed(struct device *dev, unsigned int speed) | ||
{ | ||
gpio_set_value(H3100_GPIO_IR_FSEL, !(speed < 4000000)); | ||
} | ||
|
||
static struct irda_platform_data h3100_irda_data = { | ||
.set_power = h3100_irda_set_power, | ||
.set_speed = h3100_irda_set_speed, | ||
}; | ||
|
||
static struct gpio_default_state h3100_default_gpio[] = { | ||
{ H3100_GPIO_IR_ON, GPIO_MODE_OUT0, "IrDA power" }, | ||
{ H3100_GPIO_IR_FSEL, GPIO_MODE_OUT0, "IrDA fsel" }, | ||
{ H3XXX_GPIO_COM_DCD, GPIO_MODE_IN, "COM DCD" }, | ||
{ H3XXX_GPIO_COM_CTS, GPIO_MODE_IN, "COM CTS" }, | ||
{ H3XXX_GPIO_COM_RTS, GPIO_MODE_OUT0, "COM RTS" }, | ||
{ H3100_GPIO_LCD_3V_ON, GPIO_MODE_OUT0, "LCD 3v" }, | ||
}; | ||
|
||
static void __init h3100_mach_init(void) | ||
{ | ||
h3xxx_init_gpio(h3100_default_gpio, ARRAY_SIZE(h3100_default_gpio)); | ||
h3xxx_mach_init(); | ||
sa11x0_register_irda(&h3100_irda_data); | ||
} | ||
|
||
MACHINE_START(H3100, "Compaq iPAQ H3100") | ||
.phys_io = 0x80000000, | ||
.io_pg_offst = ((0xf8000000) >> 18) & 0xfffc, | ||
.boot_params = 0xc0000100, | ||
.map_io = h3100_map_io, | ||
.init_irq = sa1100_init_irq, | ||
.timer = &sa1100_timer, | ||
.init_machine = h3100_mach_init, | ||
MACHINE_END | ||
|
Oops, something went wrong.