ARM: OMAP2+: smsc911x: Add fixed board regulators
Initialize fixed regulators in the board files. Trying to do this in a generic way in gpmc-smsc911x.c gets messy as the regulator may be provided by drivers, such as twl4030, for some boards. Signed-off-by: Russ Dill <russ.dill@ti.com> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> [tony@atomide.com: combined into one patch, updated comments] Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
		
					parent
					
						
							
								bdacbce654
							
						
					
				
			
			
				commit
				
					
						5b3689f4c1
					
				
			
		
					 8 changed files with 66 additions and 0 deletions
				
			
		| 
						 | 
					@ -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();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -623,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>
 | 
				
			||||||
| 
						 | 
					@ -410,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));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue