diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2010-04-04 21:14:05 +0200 |
---|---|---|
committer | Lars-Peter Clausen <lars@metafoo.de> | 2010-05-17 21:22:11 +0200 |
commit | 47827311e5e710a34355c9dc0a28f377a13755f9 (patch) | |
tree | 8cf481d40341c8c6f9767700b48ca08035310bcc | |
parent | 323d14d9c5f8a33585d535815533738ae3e6e12c (diff) |
Add jbt device.
-rw-r--r-- | arch/arm/mach-s3c2440/mach-gta02.c | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c index 431f3549933..b2c32916752 100644 --- a/arch/arm/mach-s3c2440/mach-gta02.c +++ b/arch/arm/mach-s3c2440/mach-gta02.c @@ -99,6 +99,7 @@ #include <mach/gta02-pm-gps.h> #include <mach/gta02-pm-wlan.h> +#include <linux/jbt6k74.h> #include <linux/glamofb.h> #include <linux/mfd/glamo.h> @@ -303,6 +304,28 @@ static struct glamo_platform_data gta02_glamo_pdata = { .glamo_external_reset = gta02_glamo_external_reset, }; +/* JBT6k74 display controller */ +static void gta02_jbt6k74_probe_completed(struct device *dev) + { + pcf50633_bl_set_brightness_limit(gta02_pcf, 0x3f); +} + +const static struct jbt6k74_platform_data jbt6k74_pdata = { + .gpio_reset = GTA02_GPIO_GLAMO(4), +}; + +static struct spi_board_info gta02_spi_board_info[] = { + { + .modalias = "jbt6k74", + .platform_data = &jbt6k74_pdata, + .controller_data = (void*)GTA02_GPIO_GLAMO(12), + /* irq */ + .max_speed_hz = 100 * 1000, + .bus_num = 2, + .chip_select = 0 + }, +}; + static struct resource gta02_glamo_resources[] = { [0] = { .start = S3C2410_CS1, @@ -449,6 +472,11 @@ static struct regulator_consumer_supply ldo5_consumers[] = { }, }; +static struct regulator_consumer_supply ldo6_consumers[] = { + REGULATOR_SUPPLY("VDC", "spi2.0"), + REGULATOR_SUPPLY("VDDIO", "spi2.0"), +}; + static struct regulator_consumer_supply hcldo_consumers[] = { { .dev = >a02_glamo_dev.dev, @@ -578,7 +606,10 @@ struct pcf50633_platform_data gta02_pcf_pdata = { .min_uV = 3000000, .max_uV = 3000000, .valid_modes_mask = REGULATOR_MODE_NORMAL, + .valid_ops_mask = REGULATOR_CHANGE_STATUS, }, + .num_consumer_supplies = ARRAY_SIZE(ldo6_consumers), + .consumer_supplies = ldo6_consumers, }, [PCF50633_REGULATOR_MEMLDO] = { .constraints = { @@ -984,7 +1015,11 @@ static struct gta02_device_children gta02_device_children[] = { .dev_name = "reg-fixed-voltage.1", .num_children = 1, .children = gta02_gsm_supply_children, - } + }, + { + .dev_name = "spi2.0", + .probed_callback = gta02_jbt6k74_probe_completed, + }, }; static int gta02_add_child_devices(struct device *parent, @@ -1133,10 +1168,10 @@ static void __init gta02_machine_init(void) s3c_ohci_set_platdata(>a02_usb_info); s3c_nand_set_platdata(>a02_nand_info); s3c_i2c0_set_platdata(NULL); - - i2c_register_board_info(0, gta02_i2c_devs, ARRAY_SIZE(gta02_i2c_devs)); spi_register_board_info(gta02_spi_board_info, ARRAY_SIZE(gta02_spi_board_info)); + + i2c_register_board_info(0, gta02_i2c_devs, ARRAY_SIZE(gta02_i2c_devs)); platform_add_devices(gta02_devices, ARRAY_SIZE(gta02_devices)); |