Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1426345 > unrolled thread
| Started by | Keerthy <j-keerthy@ti.com> |
|---|---|
| First post | 2016-06-20 11:00 +0200 |
| Last post | 2016-06-20 11:10 +0200 |
| Articles | 13 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH 0/9] regulator: Enable suspend configuration Keerthy <j-keerthy@ti.com> - 2016-06-20 11:00 +0200
[PATCH 1/9] regulator: tps65217: Enable suspend configuration Keerthy <j-keerthy@ti.com> - 2016-06-20 11:00 +0200
Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration Mark Brown <broonie@kernel.org> - 2016-06-21 21:40 +0200
Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration Mark Brown <broonie@kernel.org> - 2016-06-22 12:20 +0200
Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration Keerthy <a0393675@ti.com> - 2016-06-22 12:40 +0200
Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration Mark Brown <broonie@kernel.org> - 2016-06-23 12:30 +0200
Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration Keerthy <a0393675@ti.com> - 2016-06-23 12:40 +0200
Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration Keerthy <a0393675@ti.com> - 2016-06-22 12:20 +0200
[PATCH 5/9] regulator: tps65218: force set power-up/down strobe to 3 for dcdc3 Keerthy <j-keerthy@ti.com> - 2016-06-20 11:00 +0200
[PATCH 4/9] ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6 enable during suspend Keerthy <j-keerthy@ti.com> - 2016-06-20 11:10 +0200
Re: [PATCH 4/9] ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6 enable during suspend Tony Lindgren <tony@atomide.com> - 2016-06-21 13:50 +0200
Re: [PATCH 4/9] ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6 enable during suspend Tony Lindgren <tony@atomide.com> - 2016-06-21 14:10 +0200
[PATCH 7/9] mfd: tps65218: add version check to the PMIC probe Keerthy <j-keerthy@ti.com> - 2016-06-20 11:10 +0200
| From | Keerthy <j-keerthy@ti.com> |
|---|---|
| Date | 2016-06-20 11:00 +0200 |
| Subject | [PATCH 0/9] regulator: Enable suspend configuration |
| Message-ID | <rM345-5Wp-3@gated-at.bofh.it> |
The series adds suspend configuration for tps65218 and tps65217 PMICs.
Boot tested on am437x-sk-evm, am437x-gp-evm, am335x-bone, am335x-boneblack
Keerthy (2):
regulator: of: setup initial suspend state
ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6
enable during suspend
Russ Dill (1):
regulator: tps65217: Enable suspend configuration
Tero Kristo (6):
regulator: tps65218: Enable suspend configuration
regulator: tps65218: force set power-up/down strobe to 3 for dcdc3
ARM: dts: am437x-gp-evm: disable DDR regulator in rtc-only/poweroff
mode
mfd: tps65218: add version check to the PMIC probe
regulator: tps65218: do not disable DCDC3 during poweroff on broken
PMICs
ARM: dts: am437x-sk-evm: disable DDR regulator in rtc-only/poweroff
mode
arch/arm/boot/dts/am437x-gp-evm.dts | 13 ++++++
arch/arm/boot/dts/am437x-sk-evm.dts | 30 ++++++++++++
drivers/mfd/tps65218.c | 9 ++++
drivers/regulator/of_regulator.c | 3 ++
drivers/regulator/tps65217-regulator.c | 74 ++++++++++++++++++++++++++----
drivers/regulator/tps65218-regulator.c | 84 +++++++++++++++++++++++++++++-----
include/linux/mfd/tps65218.h | 8 ++++
7 files changed, 201 insertions(+), 20 deletions(-)
--
1.9.1
[toc] | [next] | [standalone]
| From | Keerthy <j-keerthy@ti.com> |
|---|---|
| Date | 2016-06-20 11:00 +0200 |
| Subject | [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rM3dM-5ZG-21@gated-at.bofh.it> |
| In reply to | #1426345 |
From: Russ Dill <Russ.Dill@ti.com>
This allows platform data to specify which power rails should be on or off
during RTC only suspend. This is necessary to keep DDR state while in RTC
only suspend.
Signed-off-by: Russ Dill <Russ.Dill@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
---
drivers/regulator/tps65217-regulator.c | 74 +++++++++++++++++++++++++++++-----
1 file changed, 65 insertions(+), 9 deletions(-)
diff --git a/drivers/regulator/tps65217-regulator.c b/drivers/regulator/tps65217-regulator.c
index adbe4fc..c15659c 100644
--- a/drivers/regulator/tps65217-regulator.c
+++ b/drivers/regulator/tps65217-regulator.c
@@ -28,7 +28,7 @@
#include <linux/mfd/tps65217.h>
#define TPS65217_REGULATOR(_name, _id, _of_match, _ops, _n, _vr, _vm, _em, \
- _t, _lr, _nlr) \
+ _t, _lr, _nlr, _sr, _sm) \
{ \
.name = _name, \
.id = _id, \
@@ -45,6 +45,8 @@
.volt_table = _t, \
.linear_ranges = _lr, \
.n_linear_ranges = _nlr, \
+ .bypass_reg = _sr, \
+ .bypass_mask = _sm, \
} \
static const unsigned int LDO1_VSEL_table[] = {
@@ -118,6 +120,42 @@ static int tps65217_pmic_set_voltage_sel(struct regulator_dev *dev,
return ret;
}
+struct tps65217_regulator_data {
+ int strobe;
+};
+
+static struct tps65217_regulator_data regulator_data[TPS65217_NUM_REGULATOR];
+
+static int tps65217_pmic_set_suspend_enable(struct regulator_dev *dev)
+{
+ struct tps65217 *tps = rdev_get_drvdata(dev);
+ unsigned int rid = rdev_get_id(dev);
+
+ if (rid < TPS65217_DCDC_1 || rid > TPS65217_LDO_4)
+ return -EINVAL;
+
+ return tps65217_clear_bits(tps, dev->desc->bypass_reg,
+ dev->desc->bypass_mask,
+ TPS65217_PROTECT_L1);
+}
+
+static int tps65217_pmic_set_suspend_disable(struct regulator_dev *dev)
+{
+ struct tps65217 *tps = rdev_get_drvdata(dev);
+ unsigned int rid = rdev_get_id(dev);
+
+ if (rid < TPS65217_DCDC_1 || rid > TPS65217_LDO_4)
+ return -EINVAL;
+
+ if (!regulator_data[rid].strobe)
+ return -EINVAL;
+
+ return tps65217_set_bits(tps, dev->desc->bypass_reg,
+ dev->desc->bypass_mask,
+ regulator_data[rid].strobe,
+ TPS65217_PROTECT_L1);
+}
+
/* Operations permitted on DCDCx, LDO2, LDO3 and LDO4 */
static struct regulator_ops tps65217_pmic_ops = {
.is_enabled = regulator_is_enabled_regmap,
@@ -127,6 +165,8 @@ static struct regulator_ops tps65217_pmic_ops = {
.set_voltage_sel = tps65217_pmic_set_voltage_sel,
.list_voltage = regulator_list_voltage_linear_range,
.map_voltage = regulator_map_voltage_linear_range,
+ .set_suspend_enable = tps65217_pmic_set_suspend_enable,
+ .set_suspend_disable = tps65217_pmic_set_suspend_disable,
};
/* Operations permitted on LDO1 */
@@ -138,41 +178,50 @@ static struct regulator_ops tps65217_pmic_ldo1_ops = {
.set_voltage_sel = tps65217_pmic_set_voltage_sel,
.list_voltage = regulator_list_voltage_table,
.map_voltage = regulator_map_voltage_ascend,
+ .set_suspend_enable = tps65217_pmic_set_suspend_enable,
+ .set_suspend_disable = tps65217_pmic_set_suspend_disable,
};
static const struct regulator_desc regulators[] = {
TPS65217_REGULATOR("DCDC1", TPS65217_DCDC_1, "dcdc1",
tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC1,
TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC1_EN,
- NULL, tps65217_uv1_ranges, 2),
+ NULL, tps65217_uv1_ranges, 2, TPS65217_REG_SEQ1,
+ TPS65217_SEQ1_DC1_SEQ_MASK),
TPS65217_REGULATOR("DCDC2", TPS65217_DCDC_2, "dcdc2",
tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC2,
TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC2_EN,
NULL, tps65217_uv1_ranges,
- ARRAY_SIZE(tps65217_uv1_ranges)),
+ ARRAY_SIZE(tps65217_uv1_ranges), TPS65217_REG_SEQ1,
+ TPS65217_SEQ1_DC2_SEQ_MASK),
TPS65217_REGULATOR("DCDC3", TPS65217_DCDC_3, "dcdc3",
tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC3,
TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC3_EN,
- NULL, tps65217_uv1_ranges, 1),
+ NULL, tps65217_uv1_ranges, 1, TPS65217_REG_SEQ2,
+ TPS65217_SEQ2_DC3_SEQ_MASK),
TPS65217_REGULATOR("LDO1", TPS65217_LDO_1, "ldo1",
tps65217_pmic_ldo1_ops, 16, TPS65217_REG_DEFLDO1,
TPS65217_DEFLDO1_LDO1_MASK, TPS65217_ENABLE_LDO1_EN,
- LDO1_VSEL_table, NULL, 0),
+ LDO1_VSEL_table, NULL, 0, TPS65217_REG_SEQ2,
+ TPS65217_SEQ2_LDO1_SEQ_MASK),
TPS65217_REGULATOR("LDO2", TPS65217_LDO_2, "ldo2", tps65217_pmic_ops,
64, TPS65217_REG_DEFLDO2,
TPS65217_DEFLDO2_LDO2_MASK, TPS65217_ENABLE_LDO2_EN,
NULL, tps65217_uv1_ranges,
- ARRAY_SIZE(tps65217_uv1_ranges)),
+ ARRAY_SIZE(tps65217_uv1_ranges), TPS65217_REG_SEQ3,
+ TPS65217_SEQ3_LDO2_SEQ_MASK),
TPS65217_REGULATOR("LDO3", TPS65217_LDO_3, "ldo3", tps65217_pmic_ops,
32, TPS65217_REG_DEFLS1, TPS65217_DEFLDO3_LDO3_MASK,
TPS65217_ENABLE_LS1_EN | TPS65217_DEFLDO3_LDO3_EN,
NULL, tps65217_uv2_ranges,
- ARRAY_SIZE(tps65217_uv2_ranges)),
+ ARRAY_SIZE(tps65217_uv2_ranges), TPS65217_REG_SEQ3,
+ TPS65217_SEQ3_LDO3_SEQ_MASK),
TPS65217_REGULATOR("LDO4", TPS65217_LDO_4, "ldo4", tps65217_pmic_ops,
32, TPS65217_REG_DEFLS2, TPS65217_DEFLDO4_LDO4_MASK,
TPS65217_ENABLE_LS2_EN | TPS65217_DEFLDO4_LDO4_EN,
NULL, tps65217_uv2_ranges,
- ARRAY_SIZE(tps65217_uv2_ranges)),
+ ARRAY_SIZE(tps65217_uv2_ranges), TPS65217_REG_SEQ4,
+ TPS65217_SEQ4_LDO4_SEQ_MASK),
};
static int tps65217_regulator_probe(struct platform_device *pdev)
@@ -181,7 +230,8 @@ static int tps65217_regulator_probe(struct platform_device *pdev)
struct tps65217_board *pdata = dev_get_platdata(tps->dev);
struct regulator_dev *rdev;
struct regulator_config config = { };
- int i;
+ int i, ret;
+ unsigned int val;
if (tps65217_chip_id(tps) != TPS65217) {
dev_err(&pdev->dev, "Invalid tps chip version\n");
@@ -200,6 +250,12 @@ static int tps65217_regulator_probe(struct platform_device *pdev)
rdev = devm_regulator_register(&pdev->dev, ®ulators[i],
&config);
+
+ /* Store default strobe info */
+ ret = tps65217_reg_read(tps, regulators[i].bypass_reg, &val);
+
+ regulator_data[i].strobe = val & regulators[i].bypass_mask;
+
if (IS_ERR(rdev)) {
dev_err(tps->dev, "failed to register %s regulator\n",
pdev->name);
--
1.9.1
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-06-21 21:40 +0200 |
| Subject | Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rMzGF-1Bv-13@gated-at.bofh.it> |
| In reply to | #1426352 |
[Multipart message — attachments visible in raw view] — view raw
On Mon, Jun 20, 2016 at 02:13:30PM +0530, Keerthy wrote: > +static struct tps65217_regulator_data regulator_data[TPS65217_NUM_REGULATOR]; Why is this a static global? > + /* Store default strobe info */ > + ret = tps65217_reg_read(tps, regulators[i].bypass_reg, &val); > + > + regulator_data[i].strobe = val & regulators[i].bypass_mask; > + Not sure what this is doing... I think this needs splitting up a bit, it looks like it's a bit more than just adding the ops (which should be generic things), that bit seems OK but there's these other bits in there as well.
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-06-22 12:20 +0200 |
| Subject | Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rMNqi-25n-7@gated-at.bofh.it> |
| In reply to | #1428101 |
[Multipart message — attachments visible in raw view] — view raw
On Wed, Jun 22, 2016 at 03:44:02PM +0530, Keerthy wrote: > Hence saving it in a static array and using it later in the ops functions to > disable or enable regulator during suspend. Why a static array and not part of the dynamically allocated driver data?
[toc] | [prev] | [next] | [standalone]
| From | Keerthy <a0393675@ti.com> |
|---|---|
| Date | 2016-06-22 12:40 +0200 |
| Subject | Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rMNJE-2bS-15@gated-at.bofh.it> |
| In reply to | #1428649 |
On Wednesday 22 June 2016 03:46 PM, Mark Brown wrote: > On Wed, Jun 22, 2016 at 03:44:02PM +0530, Keerthy wrote: > >> Hence saving it in a static array and using it later in the ops functions to >> disable or enable regulator during suspend. > > Why a static array and not part of the dynamically allocated driver > data? Okay. That can be done. I can introduce another integer pointer to struct tps65217 which currently holds the driver data. I will allocate memory for TPS65217_NUM_REGULATOR strobes during regulator probe. Is this approach okay? >
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-06-23 12:30 +0200 |
| Subject | Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rNa3x-4Q-59@gated-at.bofh.it> |
| In reply to | #1428670 |
[Multipart message — attachments visible in raw view] — view raw
On Wed, Jun 22, 2016 at 03:56:33PM +0530, Keerthy wrote: > I will allocate memory for TPS65217_NUM_REGULATOR strobes during regulator > probe. Is this approach okay? It should be I think. Some more comments or changelog explaining what's going on with the sequencing would also help.
[toc] | [prev] | [next] | [standalone]
| From | Keerthy <a0393675@ti.com> |
|---|---|
| Date | 2016-06-23 12:40 +0200 |
| Subject | Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rNadb-8B-1@gated-at.bofh.it> |
| In reply to | #1429664 |
On Thursday 23 June 2016 03:56 PM, Mark Brown wrote: > On Wed, Jun 22, 2016 at 03:56:33PM +0530, Keerthy wrote: > >> I will allocate memory for TPS65217_NUM_REGULATOR strobes during regulator >> probe. Is this approach okay? > > It should be I think. Some more comments or changelog explaining what's > going on with the sequencing would also help. Sure. I will do that. Thanks for the feedback. >
[toc] | [prev] | [next] | [standalone]
| From | Keerthy <a0393675@ti.com> |
|---|---|
| Date | 2016-06-22 12:20 +0200 |
| Subject | Re: [PATCH 1/9] regulator: tps65217: Enable suspend configuration |
| Message-ID | <rMNqi-25n-9@gated-at.bofh.it> |
| In reply to | #1428101 |
On Wednesday 22 June 2016 12:38 AM, Mark Brown wrote: > On Mon, Jun 20, 2016 at 02:13:30PM +0530, Keerthy wrote: > >> +static struct tps65217_regulator_data regulator_data[TPS65217_NUM_REGULATOR]; > > Why is this a static global? > >> + /* Store default strobe info */ >> + ret = tps65217_reg_read(tps, regulators[i].bypass_reg, &val); >> + >> + regulator_data[i].strobe = val & regulators[i].bypass_mask; >> + > > Not sure what this is doing... I think this needs splitting up a bit, > it looks like it's a bit more than just adding the ops (which should be > generic things), that bit seems OK but there's these other bits in > there as well. Okay. Let me explain a bit more here: The TPS65217 has a pre-defined power-up / power-down sequence which in a typical application does not need to be changed. However, it is possible to define custom sequences under I2C control. The power-up sequence is defined by strobes and delay times. Each output rail is assigned to a strobe to determine the order in which the rails are enabled. Every regulator of tps65217 PMIC has sequence registers and every regulator has a default strobe value and gets disabled when a particular power down sequence occurs. So as to keep it on during suspend we write value 0 to strobe so that the regulator is out of all sequencers and is not impacted by any power down sequence. We are saving the default strobe value during probe so that when we want to regulator to be enabled during suspend we write 0 to strobe and when we want it to get disabled during suspend we write the default saved strobe value. Hence saving it in a static array and using it later in the ops functions to disable or enable regulator during suspend. >
[toc] | [prev] | [next] | [standalone]
| From | Keerthy <j-keerthy@ti.com> |
|---|---|
| Date | 2016-06-20 11:00 +0200 |
| Subject | [PATCH 5/9] regulator: tps65218: force set power-up/down strobe to 3 for dcdc3 |
| Message-ID | <rM3dM-5ZG-29@gated-at.bofh.it> |
| In reply to | #1426345 |
From: Tero Kristo <t-kristo@ti.com>
The reset value for this register seems broken on certain versions of
tps65218 chip, so make sure the dcdc3 settings is proper. Needed for
proper functionality of rtc+ddr / rtc-only modes.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
---
drivers/regulator/tps65218-regulator.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c
index 8eca1eb..d1e631d 100644
--- a/drivers/regulator/tps65218-regulator.c
+++ b/drivers/regulator/tps65218-regulator.c
@@ -180,8 +180,12 @@ static int tps65218_pmic_set_suspend_disable(struct regulator_dev *dev)
if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1)
return -EINVAL;
- if (!tps->info[rid]->strobe)
- return -EINVAL;
+ if (!tps->info[rid]->strobe) {
+ if (rid == TPS65218_DCDC_3)
+ tps->info[rid]->strobe = 3;
+ else
+ return -EINVAL;
+ }
return tps65218_set_bits(tps, dev->desc->bypass_reg,
dev->desc->bypass_mask,
--
1.9.1
[toc] | [prev] | [next] | [standalone]
| From | Keerthy <j-keerthy@ti.com> |
|---|---|
| Date | 2016-06-20 11:10 +0200 |
| Subject | [PATCH 4/9] ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6 enable during suspend |
| Message-ID | <rM3ns-6ij-31@gated-at.bofh.it> |
| In reply to | #1426345 |
dcdc3, dcdc5, dcdc6 supply ddr and rtc respectively. These
are required to be on during suspend. Hence set the state accordingly.
Signed-off-by: Keerthy <j-keerthy@ti.com>
---
arch/arm/boot/dts/am437x-gp-evm.dts | 10 ++++++++++
arch/arm/boot/dts/am437x-sk-evm.dts | 27 +++++++++++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 84832bf..7b7ccc0 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -537,7 +537,11 @@
regulator-max-microvolt = <1500000>;
regulator-boot-on;
regulator-always-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
};
+
dcdc5: regulator-dcdc5 {
compatible = "ti,tps65218-dcdc5";
regulator-name = "v1_0bat";
@@ -545,6 +549,9 @@
regulator-max-microvolt = <1000000>;
regulator-boot-on;
regulator-always-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
};
dcdc6: regulator-dcdc6 {
@@ -554,6 +561,9 @@
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
};
ldo1: regulator-ldo1 {
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index d82dd6e..03e3d02 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -454,6 +454,9 @@
regulator-max-microvolt = <1500000>;
regulator-boot-on;
regulator-always-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
};
dcdc4: regulator-dcdc4 {
@@ -465,6 +468,30 @@
regulator-always-on;
};
+ dcdc5: regulator-dcdc5 {
+ compatible = "ti,tps65218-dcdc5";
+ regulator-name = "v1_0bat";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ dcdc6: regulator-dcdc6 {
+ compatible = "ti,tps65218-dcdc6";
+ regulator-name = "v1_8bat";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
ldo1: regulator-ldo1 {
compatible = "ti,tps65218-ldo1";
regulator-name = "v1_8d";
--
1.9.1
[toc] | [prev] | [next] | [standalone]
| From | Tony Lindgren <tony@atomide.com> |
|---|---|
| Date | 2016-06-21 13:50 +0200 |
| Subject | Re: [PATCH 4/9] ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6 enable during suspend |
| Message-ID | <rMslQ-5hj-25@gated-at.bofh.it> |
| In reply to | #1426364 |
* Keerthy <j-keerthy@ti.com> [160620 01:46]: > dcdc3, dcdc5, dcdc6 supply ddr and rtc respectively. These > are required to be on during suspend. Hence set the state accordingly. Actually, please fix up the subject lines for the dts patches too :) Instead of "ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make..." how about something like "ARM: dts: Allow dcdc enable during suspend for am43xx"? Regards, Tony
[toc] | [prev] | [next] | [standalone]
| From | Tony Lindgren <tony@atomide.com> |
|---|---|
| Date | 2016-06-21 14:10 +0200 |
| Subject | Re: [PATCH 4/9] ARM: dts: AM437X-GP-EVM: AM437X-SK-EVM: Make dcdc3 dcdc5 and dcdc6 enable during suspend |
| Message-ID | <rMsFb-5Dv-21@gated-at.bofh.it> |
| In reply to | #1426364 |
* Keerthy <j-keerthy@ti.com> [160620 01:46]: > dcdc3, dcdc5, dcdc6 supply ddr and rtc respectively. These > are required to be on during suspend. Hence set the state accordingly. Are these dts changes safe for me to apply separately? Regards, Tony
[toc] | [prev] | [next] | [standalone]
| From | Keerthy <j-keerthy@ti.com> |
|---|---|
| Date | 2016-06-20 11:10 +0200 |
| Subject | [PATCH 7/9] mfd: tps65218: add version check to the PMIC probe |
| Message-ID | <rM345-5Wp-5@gated-at.bofh.it> |
| In reply to | #1426345 |
From: Tero Kristo <t-kristo@ti.com>
Version information will be needed to handle some error cases under the
regulator driver, so store the information once during MFD probe.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
---
drivers/mfd/tps65218.c | 9 +++++++++
include/linux/mfd/tps65218.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
index 80b9dc3..ba610ad 100644
--- a/drivers/mfd/tps65218.c
+++ b/drivers/mfd/tps65218.c
@@ -219,6 +219,7 @@ static int tps65218_probe(struct i2c_client *client,
struct tps65218 *tps;
const struct of_device_id *match;
int ret;
+ unsigned int chipid;
match = of_match_device(of_tps65218_match_table, &client->dev);
if (!match) {
@@ -250,6 +251,14 @@ static int tps65218_probe(struct i2c_client *client,
if (ret < 0)
return ret;
+ ret = tps65218_reg_read(tps, TPS65218_REG_CHIPID, &chipid);
+ if (ret) {
+ dev_err(tps->dev, "Failed to read chipid: %d\n", ret);
+ return ret;
+ }
+
+ tps->rev = chipid & TPS65218_CHIPID_REV_MASK;
+
ret = of_platform_populate(client->dev.of_node, NULL, NULL,
&client->dev);
if (ret < 0)
diff --git a/include/linux/mfd/tps65218.h b/include/linux/mfd/tps65218.h
index 7fdf532..85e464e 100644
--- a/include/linux/mfd/tps65218.h
+++ b/include/linux/mfd/tps65218.h
@@ -267,6 +267,7 @@ struct tps_info {
struct tps65218 {
struct device *dev;
unsigned int id;
+ u8 rev;
struct mutex tps_lock; /* lock guarding the data structure */
/* IRQ Data */
--
1.9.1
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web