[ARM] pxa/palm: Flip Palm LD,TX,T5,Z72 to Palm27x
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
This commit is contained in:

zatwierdzone przez
Eric Miao

rodzic
95045947ab
commit
31620e21af
@@ -44,6 +44,7 @@
|
||||
#include <mach/pxa27x_keypad.h>
|
||||
#include <mach/udc.h>
|
||||
#include <mach/palmasoc.h>
|
||||
#include <mach/palm27x.h>
|
||||
|
||||
#include <mach/pm.h>
|
||||
|
||||
@@ -108,22 +109,10 @@ static unsigned long palmz72_pin_config[] __initdata = {
|
||||
GPIO27_GPIO, /* WM9712 IRQ */
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* SD/MMC card controller
|
||||
******************************************************************************/
|
||||
/* SD_POWER is not actually power, but it is more like chip
|
||||
* select, i.e. it is inverted */
|
||||
static struct pxamci_platform_data palmz72_mci_platform_data = {
|
||||
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
|
||||
.gpio_card_detect = GPIO_NR_PALMZ72_SD_DETECT_N,
|
||||
.gpio_card_ro = GPIO_NR_PALMZ72_SD_RO,
|
||||
.gpio_power = GPIO_NR_PALMZ72_SD_POWER_N,
|
||||
.gpio_power_invert = 1,
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* GPIO keyboard
|
||||
******************************************************************************/
|
||||
#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE)
|
||||
static unsigned int palmz72_matrix_keys[] = {
|
||||
KEY(0, 0, KEY_POWER),
|
||||
KEY(0, 1, KEY_F1),
|
||||
@@ -149,77 +138,18 @@ static struct pxa27x_keypad_platform_data palmz72_keypad_platform_data = {
|
||||
.debounce_interval = 30,
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* Backlight
|
||||
******************************************************************************/
|
||||
static int palmz72_backlight_init(struct device *dev)
|
||||
static void __init palmz72_kpc_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = gpio_request(GPIO_NR_PALMZ72_BL_POWER, "BL POWER");
|
||||
if (ret)
|
||||
goto err;
|
||||
ret = gpio_direction_output(GPIO_NR_PALMZ72_BL_POWER, 0);
|
||||
if (ret)
|
||||
goto err2;
|
||||
ret = gpio_request(GPIO_NR_PALMZ72_LCD_POWER, "LCD POWER");
|
||||
if (ret)
|
||||
goto err2;
|
||||
ret = gpio_direction_output(GPIO_NR_PALMZ72_LCD_POWER, 0);
|
||||
if (ret)
|
||||
goto err3;
|
||||
|
||||
return 0;
|
||||
err3:
|
||||
gpio_free(GPIO_NR_PALMZ72_LCD_POWER);
|
||||
err2:
|
||||
gpio_free(GPIO_NR_PALMZ72_BL_POWER);
|
||||
err:
|
||||
return ret;
|
||||
pxa_set_keypad_info(&palmz72_keypad_platform_data);
|
||||
}
|
||||
|
||||
static int palmz72_backlight_notify(struct device *dev, int brightness)
|
||||
{
|
||||
gpio_set_value(GPIO_NR_PALMZ72_BL_POWER, brightness);
|
||||
gpio_set_value(GPIO_NR_PALMZ72_LCD_POWER, brightness);
|
||||
return brightness;
|
||||
}
|
||||
|
||||
static void palmz72_backlight_exit(struct device *dev)
|
||||
{
|
||||
gpio_free(GPIO_NR_PALMZ72_BL_POWER);
|
||||
gpio_free(GPIO_NR_PALMZ72_LCD_POWER);
|
||||
}
|
||||
|
||||
static struct platform_pwm_backlight_data palmz72_backlight_data = {
|
||||
.pwm_id = 0,
|
||||
.max_brightness = PALMZ72_MAX_INTENSITY,
|
||||
.dft_brightness = PALMZ72_MAX_INTENSITY,
|
||||
.pwm_period_ns = PALMZ72_PERIOD_NS,
|
||||
.init = palmz72_backlight_init,
|
||||
.notify = palmz72_backlight_notify,
|
||||
.exit = palmz72_backlight_exit,
|
||||
};
|
||||
|
||||
static struct platform_device palmz72_backlight = {
|
||||
.name = "pwm-backlight",
|
||||
.dev = {
|
||||
.parent = &pxa27x_device_pwm0.dev,
|
||||
.platform_data = &palmz72_backlight_data,
|
||||
},
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* IrDA
|
||||
******************************************************************************/
|
||||
static struct pxaficp_platform_data palmz72_ficp_platform_data = {
|
||||
.gpio_pwdown = GPIO_NR_PALMZ72_IR_DISABLE,
|
||||
.transceiver_cap = IR_SIRMODE | IR_OFF,
|
||||
};
|
||||
#else
|
||||
static inline void palmz72_kpc_init(void) {}
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* LEDs
|
||||
******************************************************************************/
|
||||
#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
|
||||
static struct gpio_led gpio_leds[] = {
|
||||
{
|
||||
.name = "palmz72:green:led",
|
||||
@@ -241,144 +171,13 @@ static struct platform_device palmz72_leds = {
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* UDC
|
||||
******************************************************************************/
|
||||
static struct gpio_vbus_mach_info palmz72_udc_info = {
|
||||
.gpio_vbus = GPIO_NR_PALMZ72_USB_DETECT_N,
|
||||
.gpio_pullup = GPIO_NR_PALMZ72_USB_PULLUP,
|
||||
};
|
||||
|
||||
static struct platform_device palmz72_gpio_vbus = {
|
||||
.name = "gpio-vbus",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &palmz72_udc_info,
|
||||
},
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* Power supply
|
||||
******************************************************************************/
|
||||
static int power_supply_init(struct device *dev)
|
||||
static void __init palmz72_leds_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = gpio_request(GPIO_NR_PALMZ72_POWER_DETECT, "CABLE_STATE_AC");
|
||||
if (ret)
|
||||
goto err1;
|
||||
ret = gpio_direction_input(GPIO_NR_PALMZ72_POWER_DETECT);
|
||||
if (ret)
|
||||
goto err2;
|
||||
|
||||
ret = gpio_request(GPIO_NR_PALMZ72_USB_DETECT_N, "CABLE_STATE_USB");
|
||||
if (ret)
|
||||
goto err2;
|
||||
ret = gpio_direction_input(GPIO_NR_PALMZ72_USB_DETECT_N);
|
||||
if (ret)
|
||||
goto err3;
|
||||
|
||||
return 0;
|
||||
err3:
|
||||
gpio_free(GPIO_NR_PALMZ72_USB_DETECT_N);
|
||||
err2:
|
||||
gpio_free(GPIO_NR_PALMZ72_POWER_DETECT);
|
||||
err1:
|
||||
return ret;
|
||||
platform_device_register(&palmz72_leds);
|
||||
}
|
||||
|
||||
static int palmz72_is_ac_online(void)
|
||||
{
|
||||
return gpio_get_value(GPIO_NR_PALMZ72_POWER_DETECT);
|
||||
}
|
||||
|
||||
static int palmz72_is_usb_online(void)
|
||||
{
|
||||
return !gpio_get_value(GPIO_NR_PALMZ72_USB_DETECT_N);
|
||||
}
|
||||
|
||||
static void power_supply_exit(struct device *dev)
|
||||
{
|
||||
gpio_free(GPIO_NR_PALMZ72_USB_DETECT_N);
|
||||
gpio_free(GPIO_NR_PALMZ72_POWER_DETECT);
|
||||
}
|
||||
|
||||
static char *palmz72_supplicants[] = {
|
||||
"main-battery",
|
||||
};
|
||||
|
||||
static struct pda_power_pdata power_supply_info = {
|
||||
.init = power_supply_init,
|
||||
.is_ac_online = palmz72_is_ac_online,
|
||||
.is_usb_online = palmz72_is_usb_online,
|
||||
.exit = power_supply_exit,
|
||||
.supplied_to = palmz72_supplicants,
|
||||
.num_supplicants = ARRAY_SIZE(palmz72_supplicants),
|
||||
};
|
||||
|
||||
static struct platform_device power_supply = {
|
||||
.name = "pda-power",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &power_supply_info,
|
||||
},
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* WM97xx audio, battery
|
||||
******************************************************************************/
|
||||
static struct wm97xx_batt_pdata palmz72_batt_pdata = {
|
||||
.batt_aux = WM97XX_AUX_ID3,
|
||||
.temp_aux = WM97XX_AUX_ID2,
|
||||
.charge_gpio = -1,
|
||||
.max_voltage = PALMZ72_BAT_MAX_VOLTAGE,
|
||||
.min_voltage = PALMZ72_BAT_MIN_VOLTAGE,
|
||||
.batt_mult = 1000,
|
||||
.batt_div = 414,
|
||||
.temp_mult = 1,
|
||||
.temp_div = 1,
|
||||
.batt_tech = POWER_SUPPLY_TECHNOLOGY_LIPO,
|
||||
.batt_name = "main-batt",
|
||||
};
|
||||
|
||||
static struct wm97xx_pdata palmz72_wm97xx_pdata = {
|
||||
.batt_pdata = &palmz72_batt_pdata,
|
||||
};
|
||||
|
||||
static pxa2xx_audio_ops_t palmz72_ac97_pdata = {
|
||||
.codec_pdata = { &palmz72_wm97xx_pdata, },
|
||||
};
|
||||
|
||||
static struct platform_device palmz72_asoc = {
|
||||
.name = "palm27x-asoc",
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* Framebuffer
|
||||
******************************************************************************/
|
||||
static struct pxafb_mode_info palmz72_lcd_modes[] = {
|
||||
{
|
||||
.pixclock = 115384,
|
||||
.xres = 320,
|
||||
.yres = 320,
|
||||
.bpp = 16,
|
||||
|
||||
.left_margin = 27,
|
||||
.right_margin = 7,
|
||||
.upper_margin = 7,
|
||||
.lower_margin = 8,
|
||||
|
||||
.hsync_len = 6,
|
||||
.vsync_len = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pxafb_mach_info palmz72_lcd_screen = {
|
||||
.modes = palmz72_lcd_modes,
|
||||
.num_modes = ARRAY_SIZE(palmz72_lcd_modes),
|
||||
.lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
||||
};
|
||||
#else
|
||||
static inline void palmz72_leds_init(void) {}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
@@ -457,39 +256,26 @@ device_initcall(palmz72_pm_init);
|
||||
/******************************************************************************
|
||||
* Machine init
|
||||
******************************************************************************/
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&palmz72_backlight,
|
||||
&palmz72_leds,
|
||||
&palmz72_asoc,
|
||||
&power_supply,
|
||||
&palmz72_gpio_vbus,
|
||||
};
|
||||
|
||||
/* setup udc GPIOs initial state */
|
||||
static void __init palmz72_udc_init(void)
|
||||
{
|
||||
if (!gpio_request(GPIO_NR_PALMZ72_USB_PULLUP, "USB Pullup")) {
|
||||
gpio_direction_output(GPIO_NR_PALMZ72_USB_PULLUP, 0);
|
||||
gpio_free(GPIO_NR_PALMZ72_USB_PULLUP);
|
||||
}
|
||||
}
|
||||
|
||||
static void __init palmz72_init(void)
|
||||
{
|
||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config));
|
||||
|
||||
pxa_set_ffuart_info(NULL);
|
||||
pxa_set_btuart_info(NULL);
|
||||
pxa_set_stuart_info(NULL);
|
||||
|
||||
set_pxa_fb_info(&palmz72_lcd_screen);
|
||||
pxa_set_mci_info(&palmz72_mci_platform_data);
|
||||
palmz72_udc_init();
|
||||
pxa_set_ac97_info(&palmz72_ac97_pdata);
|
||||
pxa_set_ficp_info(&palmz72_ficp_platform_data);
|
||||
pxa_set_keypad_info(&palmz72_keypad_platform_data);
|
||||
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
palm27x_mmc_init(GPIO_NR_PALMZ72_SD_DETECT_N, GPIO_NR_PALMZ72_SD_RO,
|
||||
GPIO_NR_PALMZ72_SD_POWER_N, 1);
|
||||
palm27x_lcd_init(-1, &palm_320x320_lcd_mode);
|
||||
palm27x_udc_init(GPIO_NR_PALMZ72_USB_DETECT_N,
|
||||
GPIO_NR_PALMZ72_USB_PULLUP, 0);
|
||||
palm27x_irda_init(GPIO_NR_PALMZ72_IR_DISABLE);
|
||||
palm27x_ac97_init(PALMZ72_BAT_MIN_VOLTAGE, PALMZ72_BAT_MAX_VOLTAGE,
|
||||
-1, 113);
|
||||
palm27x_pwm_init(-1, -1);
|
||||
palm27x_power_init(-1, -1);
|
||||
palm27x_pmic_init();
|
||||
palmz72_kpc_init();
|
||||
palmz72_leds_init();
|
||||
}
|
||||
|
||||
MACHINE_START(PALMZ72, "Palm Zire72")
|
||||
|
Reference in New Issue
Block a user