mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 22:50:56 +07:00
ARM: mach-shmobile: add 3.3V and 1.8V fixed regulators to mackerel
Drivers for several devices on mackerel, including all SDHI instances, the MMCIF controller and the SMSC9220 ethernet chip use regulators to control power supply to their devices. MMC drivers need to be able to at least retrieve voltage values from supplying regulators, whereas the smsc911x driver only enables and disables chip power supplies without further looking at them. This patch adds two fixed voltage regulators to describe 1.8V and 3.3V supplies on the board and a dummy regulator for SMSC9220. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Magnus Damm <damm@opensource.se> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
This commit is contained in:
parent
7acc1e8775
commit
70ccb28dea
@ -41,6 +41,8 @@
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/sh_flctl.h>
|
||||
#include <linux/pm_clock.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/sh_intc.h>
|
||||
#include <linux/tca6416_keypad.h>
|
||||
@ -203,6 +205,33 @@
|
||||
* amixer set "HPOUTR Mixer DACH" on
|
||||
*/
|
||||
|
||||
/* Fixed 3.3V and 1.8V regulators to be used by multiple devices */
|
||||
static struct regulator_consumer_supply fixed1v8_power_consumers[] =
|
||||
{
|
||||
/*
|
||||
* J22 on mackerel switches mmcif.0 and sdhi.1 between 1.8V and 3.3V
|
||||
* Since we cannot support both voltages, we support the default 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"),
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.2"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.2"),
|
||||
};
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
/* MTD */
|
||||
static struct mtd_partition nor_flash_partitions[] = {
|
||||
{
|
||||
@ -1383,6 +1412,12 @@ static void __init mackerel_init(void)
|
||||
u32 srcr4;
|
||||
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 */
|
||||
clk_set_rate(&sh7372_dv_clki_clk, 27000000);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user