|
@@ -735,3 +735,95 @@ static struct regulator_consumer_supply balloon3_max1587a_consumers[] = {
|
|
static struct regulator_init_data balloon3_max1587a_v3_info = {
|
|
static struct regulator_init_data balloon3_max1587a_v3_info = {
|
|
.constraints = {
|
|
.constraints = {
|
|
.name = "vcc_core range",
|
|
.name = "vcc_core range",
|
|
|
|
+ .min_uV = 900000,
|
|
|
|
+ .max_uV = 1705000,
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
|
|
|
|
+ },
|
|
|
|
+ .consumer_supplies = balloon3_max1587a_consumers,
|
|
|
|
+ .num_consumer_supplies = ARRAY_SIZE(balloon3_max1587a_consumers),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct max1586_subdev_data balloon3_max1587a_subdevs[] = {
|
|
|
|
+ {
|
|
|
|
+ .name = "vcc_core",
|
|
|
|
+ .id = MAX1586_V3,
|
|
|
|
+ .platform_data = &balloon3_max1587a_v3_info,
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct max1586_platform_data balloon3_max1587a_info = {
|
|
|
|
+ .subdevs = balloon3_max1587a_subdevs,
|
|
|
|
+ .num_subdevs = ARRAY_SIZE(balloon3_max1587a_subdevs),
|
|
|
|
+ .v3_gain = MAX1586_GAIN_R24_3k32, /* 730..1550 mV */
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct i2c_board_info __initdata balloon3_pi2c_board_info[] = {
|
|
|
|
+ {
|
|
|
|
+ I2C_BOARD_INFO("max1586", 0x14),
|
|
|
|
+ .platform_data = &balloon3_max1587a_info,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init balloon3_pmic_init(void)
|
|
|
|
+{
|
|
|
|
+ pxa27x_set_i2c_power_info(NULL);
|
|
|
|
+ i2c_register_board_info(1, ARRAY_AND_SIZE(balloon3_pi2c_board_info));
|
|
|
|
+}
|
|
|
|
+#else
|
|
|
|
+static inline void balloon3_pmic_init(void) {}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+/******************************************************************************
|
|
|
|
+ * Machine init
|
|
|
|
+ ******************************************************************************/
|
|
|
|
+static void __init balloon3_init(void)
|
|
|
|
+{
|
|
|
|
+ ARB_CNTRL = ARB_CORE_PARK | 0x234;
|
|
|
|
+
|
|
|
|
+ pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_pin_config));
|
|
|
|
+
|
|
|
|
+ pxa_set_ffuart_info(NULL);
|
|
|
|
+ pxa_set_btuart_info(NULL);
|
|
|
|
+ pxa_set_stuart_info(NULL);
|
|
|
|
+
|
|
|
|
+ balloon3_i2c_init();
|
|
|
|
+ balloon3_irda_init();
|
|
|
|
+ balloon3_lcd_init();
|
|
|
|
+ balloon3_leds_init();
|
|
|
|
+ balloon3_mmc_init();
|
|
|
|
+ balloon3_nand_init();
|
|
|
|
+ balloon3_nor_init();
|
|
|
|
+ balloon3_pmic_init();
|
|
|
|
+ balloon3_ts_init();
|
|
|
|
+ balloon3_udc_init();
|
|
|
|
+ balloon3_uhc_init();
|
|
|
|
+ balloon3_cf_init();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static struct map_desc balloon3_io_desc[] __initdata = {
|
|
|
|
+ { /* CPLD/FPGA */
|
|
|
|
+ .virtual = (unsigned long)BALLOON3_FPGA_VIRT,
|
|
|
|
+ .pfn = __phys_to_pfn(BALLOON3_FPGA_PHYS),
|
|
|
|
+ .length = BALLOON3_FPGA_LENGTH,
|
|
|
|
+ .type = MT_DEVICE,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init balloon3_map_io(void)
|
|
|
|
+{
|
|
|
|
+ pxa27x_map_io();
|
|
|
|
+ iotable_init(balloon3_io_desc, ARRAY_SIZE(balloon3_io_desc));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+MACHINE_START(BALLOON3, "Balloon3")
|
|
|
|
+ /* Maintainer: Nick Bane. */
|
|
|
|
+ .map_io = balloon3_map_io,
|
|
|
|
+ .nr_irqs = BALLOON3_NR_IRQS,
|
|
|
|
+ .init_irq = balloon3_init_irq,
|
|
|
|
+ .handle_irq = pxa27x_handle_irq,
|
|
|
|
+ .timer = &pxa_timer,
|
|
|
|
+ .init_machine = balloon3_init,
|
|
|
|
+ .atag_offset = 0x100,
|
|
|
|
+ .restart = pxa_restart,
|
|
|
|
+MACHINE_END
|