Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8778b8f4 authored by Guennadi Liakhovetski's avatar Guennadi Liakhovetski Committed by Rafael J. Wysocki
Browse files

ARM: mach-shmobile: add fixed voltage regulators to ap4evb



On ap4evb provide 1.8V and 3.3V supplies for its SD/MMC-card interfaces
and a dummy regulator for the smsc911x driver.

Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
parent 44e1b142
Loading
Loading
Loading
Loading
+29 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,8 @@
#include <linux/i2c.h>
#include <linux/i2c.h>
#include <linux/i2c/tsc2007.h>
#include <linux/i2c/tsc2007.h>
#include <linux/io.h>
#include <linux/io.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
#include <linux/smsc911x.h>
#include <linux/smsc911x.h>
#include <linux/sh_intc.h>
#include <linux/sh_intc.h>
#include <linux/sh_clk.h>
#include <linux/sh_clk.h>
@@ -159,6 +161,27 @@
 * CN12: 3.3v
 * CN12: 3.3v
 */
 */


/* Dummy supplies, where voltage doesn't matter */
static struct regulator_consumer_supply fixed1v8_power_consumers[] =
{
	/* J22 default position: 1.8V */
	REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
	REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
	REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
	REGULATOR_SUPPLY("vqmmc", "sh_mmcif.0"),
};

static struct regulator_consumer_supply fixed3v3_power_consumers[] =
{
	REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
	REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
};

static struct regulator_consumer_supply dummy_supplies[] = {
	REGULATOR_SUPPLY("vddvario", "smsc911x"),
	REGULATOR_SUPPLY("vdd33a", "smsc911x"),
};

/* MTD */
/* MTD */
static struct mtd_partition nor_flash_partitions[] = {
static struct mtd_partition nor_flash_partitions[] = {
	{
	{
@@ -1209,6 +1232,12 @@ static void __init ap4evb_init(void)
	u32 srcr4;
	u32 srcr4;
	struct clk *clk;
	struct clk *clk;


	regulator_register_always_on(0, "fixed-1.8V", fixed1v8_power_consumers,
				     ARRAY_SIZE(fixed1v8_power_consumers), 1800000);
	regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers,
				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
	regulator_register_fixed(2, dummy_supplies, ARRAY_SIZE(dummy_supplies));

	/* External clock source */
	/* External clock source */
	clk_set_rate(&sh7372_dv_clki_clk, 27000000);
	clk_set_rate(&sh7372_dv_clki_clk, 27000000);