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

Commit ba02dfd2 authored by Gaëtan Carlier's avatar Gaëtan Carlier Committed by Mark Brown
Browse files

regulator: mc13783: add regulators sw1x and sw2x

parent d154f0a6
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
@@ -21,6 +21,30 @@
#include <linux/module.h>
#include "mc13xxx.h"

#define MC13783_REG_SWITCHERS0			24
/* Enable does not exist for SW1A */
#define MC13783_REG_SWITCHERS0_SW1AEN			0
#define MC13783_REG_SWITCHERS0_SW1AVSEL			0
#define MC13783_REG_SWITCHERS0_SW1AVSEL_M		(63 << 0)

#define MC13783_REG_SWITCHERS1			25
/* Enable does not exist for SW1B */
#define MC13783_REG_SWITCHERS1_SW1BEN			0
#define MC13783_REG_SWITCHERS1_SW1BVSEL			0
#define MC13783_REG_SWITCHERS1_SW1BVSEL_M		(63 << 0)

#define MC13783_REG_SWITCHERS2			26
/* Enable does not exist for SW2A */
#define MC13783_REG_SWITCHERS2_SW2AEN			0
#define MC13783_REG_SWITCHERS2_SW2AVSEL			0
#define MC13783_REG_SWITCHERS2_SW2AVSEL_M		(63 << 0)

#define MC13783_REG_SWITCHERS3			27
/* Enable does not exist for SW2B */
#define MC13783_REG_SWITCHERS3_SW2BEN			0
#define MC13783_REG_SWITCHERS3_SW2BVSEL			0
#define MC13783_REG_SWITCHERS3_SW2BVSEL_M		(63 << 0)

#define MC13783_REG_SWITCHERS5			29
#define MC13783_REG_SWITCHERS5_SW3EN			(1 << 20)
#define MC13783_REG_SWITCHERS5_SW3VSEL			18
@@ -93,6 +117,44 @@


/* Voltage Values */
static const int mc13783_sw1x_val[] = {
	900000, 925000, 950000, 975000,
	1000000, 1025000, 1050000, 1075000,
	1100000, 1125000, 1150000, 1175000,
	1200000, 1225000, 1250000, 1275000,
	1300000, 1325000, 1350000, 1375000,
	1400000, 1425000, 1450000, 1475000,
	1500000, 1525000, 1550000, 1575000,
	1600000, 1625000, 1650000, 1675000,
	1700000, 1700000, 1700000, 1700000,
	1800000, 1800000, 1800000, 1800000,
	1850000, 1850000, 1850000, 1850000,
	2000000, 2000000, 2000000, 2000000,
	2100000, 2100000, 2100000, 2100000,
	2200000, 2200000, 2200000, 2200000,
	2200000, 2200000, 2200000, 2200000,
	2200000, 2200000, 2200000, 2200000,
};

static const int mc13783_sw2x_val[] = {
	900000, 925000, 950000, 975000,
	1000000, 1025000, 1050000, 1075000,
	1100000, 1125000, 1150000, 1175000,
	1200000, 1225000, 1250000, 1275000,
	1300000, 1325000, 1350000, 1375000,
	1400000, 1425000, 1450000, 1475000,
	1500000, 1525000, 1550000, 1575000,
	1600000, 1625000, 1650000, 1675000,
	1700000, 1700000, 1700000, 1700000,
	1800000, 1800000, 1800000, 1800000,
	1900000, 1900000, 1900000, 1900000,
	2000000, 2000000, 2000000, 2000000,
	2100000, 2100000, 2100000, 2100000,
	2200000, 2200000, 2200000, 2200000,
	2200000, 2200000, 2200000, 2200000,
	2200000, 2200000, 2200000, 2200000,
};

static const unsigned int mc13783_sw3_val[] = {
	5000000, 5000000, 5000000, 5500000,
};
@@ -188,6 +250,10 @@ static struct regulator_ops mc13783_gpo_regulator_ops;
	MC13783_DEFINE(REG, _name, _reg, _vsel_reg, _voltages)

static struct mc13xxx_regulator mc13783_regulators[] = {
	MC13783_DEFINE_SW(SW1A, SWITCHERS0, SWITCHERS0, mc13783_sw1x_val),
	MC13783_DEFINE_SW(SW1B, SWITCHERS1, SWITCHERS1, mc13783_sw1x_val),
	MC13783_DEFINE_SW(SW2A, SWITCHERS2, SWITCHERS2, mc13783_sw2x_val),
	MC13783_DEFINE_SW(SW2B, SWITCHERS3, SWITCHERS3, mc13783_sw2x_val),
	MC13783_DEFINE_SW(SW3, SWITCHERS5, SWITCHERS5, mc13783_sw3_val),

	MC13783_FIXED_DEFINE(REG, VAUDIO, REGULATORMODE0, mc13783_vaudio_val),