mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-29 13:00:35 +00:00
Merge branch 'fixes-smsc911x' into fixes
This commit is contained in:
commit
3916043576
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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 */
|
||||||
|
@ -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();
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
|
@ -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));
|
||||||
|
@ -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),
|
||||||
|
Loading…
Reference in New Issue
Block a user