#include <linux/platform_device.h>
#include <linux/serial_core.h>
#include <linux/spi/spi.h>
-#include <linux/spi/glamo.h>
#include <linux/spi/spi_bitbang.h>
#include <linux/mmc/host.h>
#include <linux/jbt6k74.h>
#include <linux/glamofb.h>
+#include <linux/mfd/glamo.h>
+#include <linux/spi/glamo.h>
#include <linux/hdq.h>
#include <linux/bq27000_battery.h>
static void gta02_udc_vbus_draw(unsigned int ma)
{
- if (!gta02_pcf)
+ if (!gta02_pcf)
return;
gta02_usb_vbus_draw = ma;
.max_uV = 3300000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
.boot_on = 1,
+ .always_on = 1,
.apply_uV = 1,
.state_mem = {
.enabled = 1,
.max_uV = 1600000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
.boot_on = 1,
+ .always_on = 1,
.apply_uV = 1,
},
.num_consumer_supplies = 0,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
.apply_uV = 1,
.boot_on = 1,
+ .always_on = 1,
.state_mem = {
.enabled = 1,
},
[PCF50633_REGULATOR_LDO1] = {
.constraints = {
.name = "GSENSOR_3V3",
- .min_uV = 1300000,
- .max_uV = 1300000,
+ .min_uV = 3300000,
+ .max_uV = 3300000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
.apply_uV = 1,
},
[PCF50633_REGULATOR_LDO5] = {
.constraints = {
.name = "RF_3V",
- .min_uV = 1500000,
- .max_uV = 1500000,
+ .min_uV = 3000000,
+ .max_uV = 3000000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
.apply_uV = 1,
.state_mem = {
[PCF50633_REGULATOR_LDO6] = {
.constraints = {
.name = "LCM_3V",
- .min_uV = 0,
- .max_uV = 3300000,
+ .min_uV = 3000000,
+ .max_uV = 3000000,
+ .always_on = 1,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
},
.num_consumer_supplies = 0,
},
/* FIXME: this is only in v1 due to wrong PMU variant */
reg_init_data[PCF50633_REGULATOR_DOWN2]
.constraints.state_mem.enabled = 1;
- break;
- case GTA02v2_SYSTEM_REV:
- case GTA02v3_SYSTEM_REV:
- case GTA02v4_SYSTEM_REV:
- case GTA02v5_SYSTEM_REV:
- case GTA02v6_SYSTEM_REV:
- reg_init_data[PCF50633_REGULATOR_LDO1]
- .constraints.min_uV = 3300000;
+
reg_init_data[PCF50633_REGULATOR_LDO1]
- .constraints.min_uV = 3300000;
+ .constraints.min_uV = 1300000;
reg_init_data[PCF50633_REGULATOR_LDO1]
- .constraints.state_mem.enabled = 0;
+ .constraints.max_uV = 1300000;
reg_init_data[PCF50633_REGULATOR_LDO5]
- .constraints.min_uV = 3000000;
+ .constraints.min_uV = 1500000;
reg_init_data[PCF50633_REGULATOR_LDO5]
- .constraints.max_uV = 3000000;
+ .constraints.max_uV = 1500000;
reg_init_data[PCF50633_REGULATOR_LDO6]
- .constraints.min_uV = 3000000;
+ .constraints.min_uV = 0;
reg_init_data[PCF50633_REGULATOR_LDO6]
- .constraints.max_uV = 3000000;
+ .constraints.max_uV = 3300000;
reg_init_data[PCF50633_REGULATOR_LDO6]
.constraints.apply_uV = 1;
break;
static void gta02_jbt6k74_reset(int devidx, int level)
{
- glamo_lcm_reset(level);
-}
+ glamo_lcm_reset(>a02_glamo_dev, level);
+}
static void gta02_jbt6k74_probe_completed(struct device *dev)
{
.probe_completed = gta02_jbt6k74_probe_completed,
};
-static struct glamo_spigpio_info glamo_spigpio_cfg = {
- .pin_clk = GLAMO_GPIO10_OUTPUT,
- .pin_mosi = GLAMO_GPIO11_OUTPUT,
- .pin_cs = GLAMO_GPIO12_OUTPUT,
- .pin_miso = 0,
- .bus_num = 2,
-};
-
/*----------- SPI: Accelerometers attached to SPI of s3c244x ----------------- */
void gta02_lis302dl_suspend_io(struct lis302dl_info *lis, int resume)
return -ENODEV;
}
-static int gta02_glamo_can_set_mmc_power(void)
-{
- switch (S3C_SYSTEM_REV_ATAG) {
- case GTA02v3_SYSTEM_REV:
- case GTA02v4_SYSTEM_REV:
- case GTA02v5_SYSTEM_REV:
- case GTA02v6_SYSTEM_REV:
- return 1;
- }
-
- return 0;
-}
-
/* Smedia Glamo 3362 */
/*
}
};
-
-static struct glamofb_platform_data gta02_glamo_pdata = {
- .width = 43,
- .height = 58,
+static struct glamo_fb_platform_data gta02_glamo_fb_pdata = {
+ .width = 43,
+ .height = 58,
.num_modes = ARRAY_SIZE(gta02_glamo_modes),
.modes = gta02_glamo_modes,
+};
+
+static struct glamo_spigpio_platform_data gta02_glamo_spigpio_pdata = {
+ .pin_clk = GLAMO_GPIO10_OUTPUT,
+ .pin_mosi = GLAMO_GPIO11_OUTPUT,
+ .pin_cs = GLAMO_GPIO12_OUTPUT,
+ .pin_miso = 0,
+ .bus_num = 2,
+};
+
+static struct glamo_mmc_platform_data gta02_glamo_mmc_pdata = {
+ .glamo_mmc_use_slow = gta02_glamo_mci_use_slow,
+};
+
+static struct glamo_platform_data gta02_glamo_pdata = {
+ .fb_data = >a02_glamo_fb_pdata,
+ .spigpio_data = >a02_glamo_spigpio_pdata,
+ .mmc_data = >a02_glamo_mmc_pdata,
- .spigpio_info = &glamo_spigpio_cfg,
+ .osci_clock_rate = 32768,
- /* glamo MMC function platform data */
- .glamo_can_set_mci_power = gta02_glamo_can_set_mmc_power,
- .glamo_mci_use_slow = gta02_glamo_mci_use_slow,
.glamo_irq_is_wired = glamo_irq_is_wired,
- .glamo_external_reset = gta02_glamo_external_reset
+ .glamo_external_reset = gta02_glamo_external_reset,
};
static struct resource gta02_glamo_resources[] = {
pdev = >a02_glamo_dev;
break;
default:
- return;
+ return;
}
pdev->dev.parent = ®ulator->dev;
platform_add_devices(gta02_devices_pmu_children,
ARRAY_SIZE(gta02_devices_pmu_children));
-/* regulator_has_full_constraints();*/
+ regulator_has_full_constraints();
}
static void gta02_poweroff(void)