From 6893346ca447ffb83d0f03462c38ff0b4fdbef3d Mon Sep 17 00:00:00 2001 From: Andy Green Date: Fri, 21 Nov 2008 11:56:56 +0000 Subject: rename add-more-gta03-specific-mach-init.patch Signed-off-by: Andy Green --- arch/arm/mach-s3c6410/Makefile | 2 + arch/arm/mach-s3c6410/include/mach/om-gta03.h | 46 ++++++----- arch/arm/mach-s3c6410/mach-om-gta03.c | 105 ++++++++++++++++++-------- drivers/i2c/chips/pcf50633.c | 2 +- 4 files changed, 105 insertions(+), 50 deletions(-) diff --git a/arch/arm/mach-s3c6410/Makefile b/arch/arm/mach-s3c6410/Makefile index 2cd4f189036..0159ea208ed 100644 --- a/arch/arm/mach-s3c6410/Makefile +++ b/arch/arm/mach-s3c6410/Makefile @@ -21,3 +21,5 @@ obj-$(CONFIG_S3C6410_SETUP_SDHCI) += setup-sdhci.o # machine support obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o +obj-$(CONFIG_MACH_OPENMOKO_GTA03) += mach-om-gta03.o + diff --git a/arch/arm/mach-s3c6410/include/mach/om-gta03.h b/arch/arm/mach-s3c6410/include/mach/om-gta03.h index 0928676a2d1..b191b767076 100644 --- a/arch/arm/mach-s3c6410/include/mach/om-gta03.h +++ b/arch/arm/mach-s3c6410/include/mach/om-gta03.h @@ -1,3 +1,16 @@ +/* + * GTA03 GPIO Mappings + * + * (C) 2008 by Openmoko Inc. + * Author: Andy Green + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation + * + */ + #ifndef _OM_GTA03_H #define _OM_GTA03_H @@ -5,7 +18,7 @@ #include #include -/* Different hardware revisions, passed in ATAG_REVISION by u-boot */ +/* ATAG_REVISION from bootloader */ #define GTA03v1_SYSTEM_REV 0x00000001 #define GTA03_GPIO_VIBRATOR_ON S3C64XX_GPF(13) @@ -60,19 +73,18 @@ #define GTA03_GPIO_N_MODEM_RESET S3C64XX_GPO(1) -#define GTA03_IRQ_GSENSOR_1 IRQ_EINT0 -#define GTA03_IRQ_KEY_MINUS IRQ_EINT1 -#define GTA03_IRQ_KEY_PLUS IRQ_EINT2 -#define GTA03_IRQ_PWR_IND IRQ_EINT3 -#define GTA03_IRQ_PMU IRQ_EINT4 -#define GTA03_IRQ_AUX IRQ_EINT6 -#define GTA03_IRQ_nHOLD IRQ_EINT7 -#define GTA03v1_IRQ_nSIM_CD IRQ_EINT8 -#define GTA03_IRQ_PCF50633 IRQ_EINT9 -#define GTA03_IRQ_3D IRQ_EINT12 -#define GTA03_IRQ_GSENSOR_2 IRQ_EINT16 -#define GTA03v3_IRQ_nUSB_OC IRQ_EINT17 -#define GTA03v3_IRQ_nUSB_FLT IRQ_EINT18 -#define GTA03v3_IRQ_nGSM_OC IRQ_EINT19 - -#endif /* _OM_GTA03_H */ \ No newline at end of file +#define GTA03_IRQ_GSENSOR_1 S3C_EINT(0) +#define GTA03_IRQ_KEY_MINUS S3C_EINT(1) +#define GTA03_IRQ_KEY_PLUS S3C_EINT(2) +#define GTA03_IRQ_PWR_IND S3C_EINT(3) +#define GTA03_IRQ_PMU S3C_EINT(4) +#define GTA03_IRQ_TOUCH S3C_EINT(5) +#define GTA03_IRQ_JACK_INSERT S3C_EINT(6) +#define GTA03_IRQ_GPS_INT S3C_EINT(7) +#define GTA03_IRQ_NHOLD S3C_EINT(8) +#define GTA03_IRQ_WLAN_WAKEUP S3C_EINT(9) +#define GTA03_IRQ_GSENSOR_2 S3C_EINT(10) +#define GTA03_IRQ_IO1 S3C_EINT(11) +#define GTA03_IRQ_NONKEYWAKE S3C_EINT(12) + +#endif /* _OM_GTA03_H */ diff --git a/arch/arm/mach-s3c6410/mach-om-gta03.c b/arch/arm/mach-s3c6410/mach-om-gta03.c index cfc9fd54dd0..8f793ee88e3 100644 --- a/arch/arm/mach-s3c6410/mach-om-gta03.c +++ b/arch/arm/mach-s3c6410/mach-om-gta03.c @@ -37,21 +37,21 @@ #include #include +#include #include #include #include #include -#include +/* #include */ #include #include #include #include -#include -#include +#include #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK #define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB @@ -88,28 +88,28 @@ static struct s3c2410_uartcfg om_gta03_uartcfgs[] __initdata = { }, }; -struct map_desc om_gta03_iodesc[] = {}; +struct map_desc om_gta03_6410_iodesc[] = {}; static struct resource om_gta03_button_resources[] = { [0] = { - .start = GTA03_GPIO_AUX_KEY, - .end = GTA03_GPIO_AUX_KEY, + .start = 0, + .end = 0, }, [1] = { - .start = GTA03_GPIO_HOLD_KEY, - .end = GTA03_GPIO_HOLD_KEY, + .start = GTA03_GPIO_HOLD, + .end = GTA03_GPIO_HOLD, }, [2] = { .start = GTA03_GPIO_JACK_INSERT, .end = GTA03_GPIO_JACK_INSERT, }, [3] = { - .start = GTA03_GPIO_PLUS_KEY, - .end = GTA03_GPIO_PLUS_KEY, + .start = GTA03_GPIO_KEY_PLUS, + .end = GTA03_GPIO_KEY_PLUS, }, [4] = { - .start = GTA03_GPIO_MINUS_KEY, - .end = GTA03_GPIO_MINUS_KEY, + .start = GTA03_GPIO_KEY_MINUS, + .end = GTA03_GPIO_KEY_MINUS, }, }; @@ -121,6 +121,25 @@ static struct platform_device om_gta03_button_dev = { /********************** PMU ***************************/ +/* + * GTA03 PMU Mapping info + * + * name maxcurr default Nom consumers + * + * AUTO 1100mA ON 3.3V 3.3V Main 3.3V rail + * DOWN1 500mA ON 1.2V 1.2V CPU VddARM, VddINT, VddMPLL, VddOTGI + * DOWN2 500mA ON 1.8V 1.8V CPU VddAlive via LDO, Memories, WLAN + * LED 25mA OFF 18V Backlight + * HCLDO 200mA OFF 2.8V Camera 2V8 + * LDO1 50mA ON 2.8V --- unused --- + * LDO2 50mA OFF 1.8V Camera 1V8 + * LDO3 50mA OFF 3.3V CODEC 3.3V + * LDO4 150mA ON 2.8V 2.7V uSD power + * LDO5 150mA OFF 3.0V GPS 3V + * LDO6 50mA ON 3.0V 3.0V LCM 3V + * + */ + /* PMU driver info */ @@ -181,6 +200,21 @@ static void om_gta03_pcf50633_attach_child_devices(struct device *parent_device) } +static struct regulator_consumer_supply ldo4_consumers[] = { + { + .dev = &s3c_device_hsmmc0.dev, + .supply = "SD_3V", + }, +}; +#if 0 +static struct regulator_consumer_supply ldo5_consumers[] = { + { + .dev = >a01_pm_gps_dev.dev, + .supply = "RF_3V", + }, +}; +#endif + struct pcf50633_platform_data om_gta03_pcf_pdata = { @@ -205,10 +239,8 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { [1] = PCF50633_INT2_ONKEYF, [2] = PCF50633_INT3_ONKEY1S }, - /* warning: these get rewritten during machine init below - * depending on pcb variant - */ .reg_init_data = { + /* GTA03: Main 3.3V rail */ [PCF50633_REGULATOR_AUTO] = { .constraints = { .min_uV = 3300000, @@ -221,15 +253,17 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { }, .num_consumer_supplies = 0, }, + /* GTA03: CPU core power */ [PCF50633_REGULATOR_DOWN1] = { .constraints = { - .min_uV = 1300000, - .max_uV = 1600000, + .min_uV = 900000, + .max_uV = 1200000, .valid_modes_mask = REGULATOR_MODE_NORMAL, .apply_uV = 1, }, .num_consumer_supplies = 0, }, + /* GTA03: Memories */ [PCF50633_REGULATOR_DOWN2] = { .constraints = { .min_uV = 1800000, @@ -242,15 +276,17 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { }, .num_consumer_supplies = 0, }, + /* GTA03: Camera 2V8 */ [PCF50633_REGULATOR_HCLDO] = { .constraints = { .min_uV = 2000000, .max_uV = 3300000, .valid_modes_mask = REGULATOR_MODE_NORMAL, }, - .num_consumer_supplies = 1, - .consumer_supplies = hcldo_consumers, + .num_consumer_supplies = 0, +/* .consumer_supplies = hcldo_consumers, */ }, + /* GTA03: Unused */ [PCF50633_REGULATOR_LDO1] = { .constraints = { .min_uV = 1300000, @@ -260,6 +296,7 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { }, .num_consumer_supplies = 0, }, + /* GTA03: Camera 1V8 */ [PCF50633_REGULATOR_LDO2] = { .constraints = { .min_uV = 3300000, @@ -269,40 +306,43 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { }, .num_consumer_supplies = 0, }, + /* GTA03: Codec 3.3V */ [PCF50633_REGULATOR_LDO3] = { .constraints = { - .min_uV = 3000000, - .max_uV = 3000000, + .min_uV = 3300000, + .max_uV = 3300000, .valid_modes_mask = REGULATOR_MODE_NORMAL, .apply_uV = 1, }, .num_consumer_supplies = 0, }, - + /* GTA03: uSD Power */ [PCF50633_REGULATOR_LDO4] = { .constraints = { - .min_uV = 3200000, - .max_uV = 3200000, + .min_uV = 3000000, + .max_uV = 3000000, .valid_modes_mask = REGULATOR_MODE_NORMAL, .apply_uV = 1, }, .num_consumer_supplies = 1, .consumer_supplies = ldo4_consumers, }, + /* GTA03: GPS 3V */ [PCF50633_REGULATOR_LDO5] = { .constraints = { - .min_uV = 1500000, - .max_uV = 1500000, + .min_uV = 3000000, + .max_uV = 3000000, .valid_modes_mask = REGULATOR_MODE_NORMAL, .apply_uV = 1, }, - .num_consumer_supplies = 1, - .consumer_supplies = ldo5_consumers, + .num_consumer_supplies = 0, +/* .consumer_supplies = ldo5_consumers, */ }, + /* GTA03: LCM 3V */ [PCF50633_REGULATOR_LDO6] = { .constraints = { - .min_uV = 0, - .max_uV = 3300000, + .min_uV = 3000000, + .max_uV = 3000000, .valid_modes_mask = REGULATOR_MODE_NORMAL, .state_mem = { .enabled = 1, @@ -310,6 +350,7 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { }, .num_consumer_supplies = 0, }, + /* power for memories in suspend */ [PCF50633_REGULATOR_MEMLDO] = { .constraints = { .min_uV = 1800000, @@ -348,7 +389,7 @@ extern void s3c64xx_init_io(struct map_desc *, int); static void __init om_gta03_map_io(void) { - s3c64xx_init_io(om_gta03_iodesc, ARRAY_SIZE(om_gta03_6410_iodesc)); + s3c64xx_init_io(om_gta03_6410_iodesc, ARRAY_SIZE(om_gta03_6410_iodesc)); s3c24xx_init_clocks(12000000); s3c24xx_init_uarts(om_gta03_uartcfgs, ARRAY_SIZE(om_gta03_uartcfgs)); } @@ -363,7 +404,7 @@ static void __init om_gta03_machine_init(void) platform_add_devices(om_gta03_devices, ARRAY_SIZE(om_gta03_devices)); } -MACHINE_START(MACH_TYPE_OPENMOKO_GTA03, "OM-GTA03") +MACHINE_START(OPENMOKO_GTA03, "OM-GTA03") /* Maintainer: Andy Green */ .phys_io = S3C_PA_UART & 0xfff00000, .io_pg_offst = (((u32)S3C_VA_UART) >> 18) & 0xfffc, diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c index 8ba414bc531..a148be52817 100644 --- a/drivers/i2c/chips/pcf50633.c +++ b/drivers/i2c/chips/pcf50633.c @@ -1574,7 +1574,7 @@ static int pcf50633_probe(struct i2c_client *client, const struct i2c_device_id if (enable_irq_wake(irq) < 0) dev_err(&client->dev, "IRQ %u cannot be enabled as wake-up" - "source in this hardware revision!", irq); + "source in this hardware revision! vs %d\n", irq, S3C_EINT(4)); if (pcf->pdata->used_features & PCF50633_FEAT_RTC) { pcf50633_rtc_pdev.dev.platform_data = pcf; -- cgit v1.2.3