Commit b2a54ff0 authored by Pawel Moll's avatar Pawel Moll

ARM: vexpress: Add fixed regulator for SMSC

SMSC driver requires "vdd33a" and "vddvario" regulator supplies now.

Add fixed regulator describing 3V3 power line (in both motherboard's
Device Trees and the non-DT code) and force fixed regulator config
option if regulators framework is enabled.
Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
parent b7541a95
...@@ -318,6 +318,7 @@ config ARCH_VEXPRESS ...@@ -318,6 +318,7 @@ config ARCH_VEXPRESS
select NO_IOPORT select NO_IOPORT
select PLAT_VERSATILE select PLAT_VERSATILE
select PLAT_VERSATILE_CLCD select PLAT_VERSATILE_CLCD
select REGULATOR_FIXED_VOLTAGE if REGULATOR
help help
This enables support for the ARM Ltd Versatile Express boards. This enables support for the ARM Ltd Versatile Express boards.
......
...@@ -55,6 +55,8 @@ ethernet@2,02000000 { ...@@ -55,6 +55,8 @@ ethernet@2,02000000 {
reg-io-width = <4>; reg-io-width = <4>;
smsc,irq-active-high; smsc,irq-active-high;
smsc,irq-push-pull; smsc,irq-push-pull;
vdd33a-supply = <&v2m_fixed_3v3>;
vddvario-supply = <&v2m_fixed_3v3>;
}; };
usb@2,03000000 { usb@2,03000000 {
...@@ -198,5 +200,13 @@ clcd@1f0000 { ...@@ -198,5 +200,13 @@ clcd@1f0000 {
interrupts = <14>; interrupts = <14>;
}; };
}; };
v2m_fixed_3v3: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
}; };
}; };
...@@ -54,6 +54,8 @@ ethernet@3,02000000 { ...@@ -54,6 +54,8 @@ ethernet@3,02000000 {
reg-io-width = <4>; reg-io-width = <4>;
smsc,irq-active-high; smsc,irq-active-high;
smsc,irq-push-pull; smsc,irq-push-pull;
vdd33a-supply = <&v2m_fixed_3v3>;
vddvario-supply = <&v2m_fixed_3v3>;
}; };
usb@3,03000000 { usb@3,03000000 {
...@@ -197,5 +199,13 @@ clcd@1f000 { ...@@ -197,5 +199,13 @@ clcd@1f000 {
interrupts = <14>; interrupts = <14>;
}; };
}; };
v2m_fixed_3v3: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
}; };
}; };
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#include <linux/clkdev.h> #include <linux/clkdev.h>
#include <linux/clk-provider.h> #include <linux/clk-provider.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
#include <asm/arch_timer.h> #include <asm/arch_timer.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -199,6 +201,11 @@ static struct platform_device v2m_eth_device = { ...@@ -199,6 +201,11 @@ static struct platform_device v2m_eth_device = {
.dev.platform_data = &v2m_eth_config, .dev.platform_data = &v2m_eth_config,
}; };
static struct regulator_consumer_supply v2m_eth_supplies[] = {
REGULATOR_SUPPLY("vddvario", "smsc911x"),
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
};
static struct resource v2m_usb_resources[] = { static struct resource v2m_usb_resources[] = {
{ {
.start = V2M_ISP1761, .start = V2M_ISP1761,
...@@ -503,6 +510,9 @@ static void __init v2m_init(void) ...@@ -503,6 +510,9 @@ static void __init v2m_init(void)
{ {
int i; int i;
regulator_register_fixed(0, v2m_eth_supplies,
ARRAY_SIZE(v2m_eth_supplies));
platform_device_register(&v2m_pcie_i2c_device); platform_device_register(&v2m_pcie_i2c_device);
platform_device_register(&v2m_ddc_i2c_device); platform_device_register(&v2m_ddc_i2c_device);
platform_device_register(&v2m_flash_device); platform_device_register(&v2m_flash_device);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment