Merge branch 'fixes-smsc911x' into fixes

This commit is contained in:
Tony Lindgren 2012-04-03 11:20:27 -07:00
commit 3916043576
9 changed files with 68 additions and 81 deletions

View File

@ -26,6 +26,7 @@
#include <linux/i2c/at24.h> #include <linux/i2c/at24.h>
#include <linux/i2c/twl.h> #include <linux/i2c/twl.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
@ -81,8 +82,23 @@ static struct omap_smsc911x_platform_data sb_t35_smsc911x_cfg = {
.flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS, .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS,
}; };
static struct regulator_consumer_supply cm_t35_smsc911x_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
static struct regulator_consumer_supply sb_t35_smsc911x_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.1"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.1"),
};
static void __init cm_t35_init_ethernet(void) static void __init cm_t35_init_ethernet(void)
{ {
regulator_register_fixed(0, cm_t35_smsc911x_supplies,
ARRAY_SIZE(cm_t35_smsc911x_supplies));
regulator_register_fixed(1, sb_t35_smsc911x_supplies,
ARRAY_SIZE(sb_t35_smsc911x_supplies));
gpmc_smsc911x_init(&cm_t35_smsc911x_cfg); gpmc_smsc911x_init(&cm_t35_smsc911x_cfg);
gpmc_smsc911x_init(&sb_t35_smsc911x_cfg); gpmc_smsc911x_init(&sb_t35_smsc911x_cfg);
} }

View File

@ -634,8 +634,14 @@ static void __init igep_wlan_bt_init(void)
static inline void __init igep_wlan_bt_init(void) { } static inline void __init igep_wlan_bt_init(void) { }
#endif #endif
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
static void __init igep_init(void) static void __init igep_init(void)
{ {
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
/* Get IGEP2 hardware revision */ /* Get IGEP2 hardware revision */

View File

@ -22,6 +22,7 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/i2c/twl.h> #include <linux/i2c/twl.h>
#include <linux/io.h> #include <linux/io.h>
@ -410,8 +411,14 @@ static struct mtd_partition ldp_nand_partitions[] = {
}; };
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
static void __init omap_ldp_init(void) static void __init omap_ldp_init(void)
{ {
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
ldp_init_smsc911x(); ldp_init_smsc911x();
omap_i2c_init(); omap_i2c_init();

View File

@ -114,15 +114,6 @@ static struct omap_smsc911x_platform_data smsc911x_cfg = {
static inline void __init omap3evm_init_smsc911x(void) static inline void __init omap3evm_init_smsc911x(void)
{ {
struct clk *l3ck;
unsigned int rate;
l3ck = clk_get(NULL, "l3_ck");
if (IS_ERR(l3ck))
rate = 100000000;
else
rate = clk_get_rate(l3ck);
/* Configure ethernet controller reset gpio */ /* Configure ethernet controller reset gpio */
if (cpu_is_omap3430()) { if (cpu_is_omap3430()) {
if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1)
@ -632,9 +623,15 @@ static void __init omap3_evm_wl12xx_init(void)
#endif #endif
} }
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
static void __init omap3_evm_init(void) static void __init omap3_evm_init(void)
{ {
omap3_evm_get_revision(); omap3_evm_get_revision();
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
if (cpu_is_omap3630()) if (cpu_is_omap3630())
omap3_mux_init(omap36x_board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(omap36x_board_mux, OMAP_PACKAGE_CBB);

View File

@ -23,6 +23,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/i2c/twl.h> #include <linux/i2c/twl.h>
@ -188,8 +189,14 @@ static struct omap_board_mux board_mux[] __initdata = {
}; };
#endif #endif
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
static void __init omap3logic_init(void) static void __init omap3logic_init(void)
{ {
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
omap3torpedo_fix_pbias_voltage(); omap3torpedo_fix_pbias_voltage();
omap3logic_i2c_init(); omap3logic_i2c_init();

View File

@ -24,6 +24,7 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/i2c/twl.h> #include <linux/i2c/twl.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
@ -72,15 +73,6 @@ static struct omap_smsc911x_platform_data smsc911x_cfg = {
static inline void __init omap3stalker_init_eth(void) static inline void __init omap3stalker_init_eth(void)
{ {
struct clk *l3ck;
unsigned int rate;
l3ck = clk_get(NULL, "l3_ck");
if (IS_ERR(l3ck))
rate = 100000000;
else
rate = clk_get_rate(l3ck);
omap_mux_init_gpio(19, OMAP_PIN_INPUT_PULLUP); omap_mux_init_gpio(19, OMAP_PIN_INPUT_PULLUP);
gpmc_smsc911x_init(&smsc911x_cfg); gpmc_smsc911x_init(&smsc911x_cfg);
} }
@ -419,8 +411,14 @@ static struct omap_board_mux board_mux[] __initdata = {
}; };
#endif #endif
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
static void __init omap3_stalker_init(void) static void __init omap3_stalker_init(void)
{ {
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); omap3_mux_init(board_mux, OMAP_PACKAGE_CUS);
omap_board_config = omap3_stalker_config; omap_board_config = omap3_stalker_config;
omap_board_config_size = ARRAY_SIZE(omap3_stalker_config); omap_board_config_size = ARRAY_SIZE(omap3_stalker_config);

View File

@ -498,10 +498,18 @@ static struct gpio overo_bt_gpios[] __initdata = {
{ OVERO_GPIO_BT_NRESET, GPIOF_OUT_INIT_HIGH, "lcd bl enable" }, { OVERO_GPIO_BT_NRESET, GPIOF_OUT_INIT_HIGH, "lcd bl enable" },
}; };
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
REGULATOR_SUPPLY("vddvario", "smsc911x.1"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.1"),
};
static void __init overo_init(void) static void __init overo_init(void)
{ {
int ret; int ret;
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
omap_hsmmc_init(mmc); omap_hsmmc_init(mmc);
overo_i2c_init(); overo_i2c_init();

View File

@ -14,6 +14,9 @@
#include <linux/smsc911x.h> #include <linux/smsc911x.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
#include <plat/gpmc.h> #include <plat/gpmc.h>
#include <plat/gpmc-smsc911x.h> #include <plat/gpmc-smsc911x.h>
@ -117,11 +120,17 @@ static struct platform_device *zoom_devices[] __initdata = {
&zoom_debugboard_serial_device, &zoom_debugboard_serial_device,
}; };
static struct regulator_consumer_supply dummy_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
int __init zoom_debugboard_init(void) int __init zoom_debugboard_init(void)
{ {
if (!omap_zoom_debugboard_detect()) if (!omap_zoom_debugboard_detect())
return 0; return 0;
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
zoom_init_smsc911x(); zoom_init_smsc911x();
zoom_init_quaduart(); zoom_init_quaduart();
return platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices)); return platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));

View File

@ -19,15 +19,11 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/smsc911x.h> #include <linux/smsc911x.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
#include <plat/board.h> #include <plat/board.h>
#include <plat/gpmc.h> #include <plat/gpmc.h>
#include <plat/gpmc-smsc911x.h> #include <plat/gpmc-smsc911x.h>
static struct omap_smsc911x_platform_data *gpmc_cfg;
static struct resource gpmc_smsc911x_resources[] = { static struct resource gpmc_smsc911x_resources[] = {
[0] = { [0] = {
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
@ -41,51 +37,6 @@ static struct smsc911x_platform_config gpmc_smsc911x_config = {
.phy_interface = PHY_INTERFACE_MODE_MII, .phy_interface = PHY_INTERFACE_MODE_MII,
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
.flags = SMSC911X_USE_16BIT,
};
static struct regulator_consumer_supply gpmc_smsc911x_supply[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
/* Generic regulator definition to satisfy smsc911x */
static struct regulator_init_data gpmc_smsc911x_reg_init_data = {
.constraints = {
.min_uV = 3300000,
.max_uV = 3300000,
.valid_modes_mask = REGULATOR_MODE_NORMAL
| REGULATOR_MODE_STANDBY,
.valid_ops_mask = REGULATOR_CHANGE_MODE
| REGULATOR_CHANGE_STATUS,
},
.num_consumer_supplies = ARRAY_SIZE(gpmc_smsc911x_supply),
.consumer_supplies = gpmc_smsc911x_supply,
};
static struct fixed_voltage_config gpmc_smsc911x_fixed_reg_data = {
.supply_name = "gpmc_smsc911x",
.microvolts = 3300000,
.gpio = -EINVAL,
.startup_delay = 0,
.enable_high = 0,
.enabled_at_boot = 1,
.init_data = &gpmc_smsc911x_reg_init_data,
};
/*
* Platform device id of 42 is a temporary fix to avoid conflicts
* with other reg-fixed-voltage devices. The real fix should
* involve the driver core providing a way of dynamically
* assigning a unique id on registration for platform devices
* in the same name space.
*/
static struct platform_device gpmc_smsc911x_regulator = {
.name = "reg-fixed-voltage",
.id = 42,
.dev = {
.platform_data = &gpmc_smsc911x_fixed_reg_data,
},
}; };
/* /*
@ -93,23 +44,12 @@ static struct platform_device gpmc_smsc911x_regulator = {
* assume that pin multiplexing is done in the board-*.c file, * assume that pin multiplexing is done in the board-*.c file,
* or in the bootloader. * or in the bootloader.
*/ */
void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *gpmc_cfg)
{ {
struct platform_device *pdev; struct platform_device *pdev;
unsigned long cs_mem_base; unsigned long cs_mem_base;
int ret; int ret;
gpmc_cfg = board_data;
if (!gpmc_cfg->id) {
ret = platform_device_register(&gpmc_smsc911x_regulator);
if (ret < 0) {
pr_err("Unable to register smsc911x regulators: %d\n",
ret);
return;
}
}
if (gpmc_cs_request(gpmc_cfg->cs, SZ_16M, &cs_mem_base) < 0) { if (gpmc_cs_request(gpmc_cfg->cs, SZ_16M, &cs_mem_base) < 0) {
pr_err("Failed to request GPMC mem region\n"); pr_err("Failed to request GPMC mem region\n");
return; return;
@ -139,8 +79,7 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data)
gpio_set_value(gpmc_cfg->gpio_reset, 1); gpio_set_value(gpmc_cfg->gpio_reset, 1);
} }
if (gpmc_cfg->flags) gpmc_smsc911x_config.flags = gpmc_cfg->flags ? : SMSC911X_USE_16BIT;
gpmc_smsc911x_config.flags = gpmc_cfg->flags;
pdev = platform_device_register_resndata(NULL, "smsc911x", gpmc_cfg->id, pdev = platform_device_register_resndata(NULL, "smsc911x", gpmc_cfg->id,
gpmc_smsc911x_resources, ARRAY_SIZE(gpmc_smsc911x_resources), gpmc_smsc911x_resources, ARRAY_SIZE(gpmc_smsc911x_resources),