diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-08-31 08:49:46 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2016-09-22 09:39:02 +0100 |
commit | ac61b6001a636ab9aa954b5f9a996056cd8519f4 (patch) | |
tree | d2c5e8c5344232f0dc781c68b23f0cdbb3375408 /drivers/pcmcia/soc_common.h | |
parent | a1d0500261e788f9b1d068e3167b2a77ad0abfc4 (diff) | |
download | lwn-ac61b6001a636ab9aa954b5f9a996056cd8519f4.tar.gz lwn-ac61b6001a636ab9aa954b5f9a996056cd8519f4.zip |
pcmcia: soc_common: add support for Vcc and Vpp regulators
Add support for handling supply regulators in the soc_common code. This
allows us to separate out the board specifics for setting voltages from
the PCMCIA code.
We detect when setting a voltage fails, and report this fact - some
platforms have fixed-voltage supplies (eg, for CF sockets at 3.3V) and
we need to ignore attempts to configure for 5V, as per the existing
board specific drivers.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'drivers/pcmcia/soc_common.h')
-rw-r--r-- | drivers/pcmcia/soc_common.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/pcmcia/soc_common.h b/drivers/pcmcia/soc_common.h index 39c1e15167f3..18a6df5ca374 100644 --- a/drivers/pcmcia/soc_common.h +++ b/drivers/pcmcia/soc_common.h @@ -19,6 +19,12 @@ struct device; struct gpio_desc; struct pcmcia_low_level; +struct regulator; + +struct soc_pcmcia_regulator { + struct regulator *reg; + bool on; +}; /* * This structure encapsulates per-socket state which we might need to @@ -64,6 +70,8 @@ struct soc_pcmcia_socket { struct gpio_desc *gpio_reset; struct gpio_desc *gpio_bus_enable; + struct soc_pcmcia_regulator vcc; + struct soc_pcmcia_regulator vpp; unsigned int irq_state; @@ -146,6 +154,9 @@ int soc_pcmcia_request_gpiods(struct soc_pcmcia_socket *skt); void soc_common_cf_socket_state(struct soc_pcmcia_socket *skt, struct pcmcia_state *state); +int soc_pcmcia_regulator_set(struct soc_pcmcia_socket *skt, + struct soc_pcmcia_regulator *r, int v); + #ifdef CONFIG_PCMCIA_DEBUG extern void soc_pcmcia_debug(struct soc_pcmcia_socket *skt, const char *func, |