linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Model SMPS10 regulator
@ 2013-06-20  8:37 Kishon Vijay Abraham I
  2013-06-20  8:37 ` [PATCH 1/2] regulator: of: Added a property to indicate bypass mode support Kishon Vijay Abraham I
  2013-06-20  8:37 ` [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators Kishon Vijay Abraham I
  0 siblings, 2 replies; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-20  8:37 UTC (permalink / raw)
  To: ldewangan, broonie
  Cc: grant.likely, rob.herring, rob, lgirdwood, swarren, gg, sameo,
	ian, devicetree-discuss, linux-doc, linux-kernel, kishon

Palmas has SMPS10 regulator which can generate two voltage level 3.75 and 5V.
This SMPS10 has two outputs OUT1 and OUT2 and having one input IN1.

SMPS10-OUT2 is always connected to SMPS10-IN1 via following logic:
- Through parasitic diode (no sw control)
- In bypass mode (bit  configuration is there to enable/disable Bypass)
- In Boost mode (bit configuration is there to enable/disable Boost mode)

SMPS10-OUT1 is connected to the SMPS10-OUT2 pin through Switch (SW control
for enabling/disabling this switch).

There currently doesn't exist a property to indicate if the regulator
supports bypass mode. So added a property to indicate if the regulator
supports bypass mode. Also modified of_get_regulation_constraints() 
to check for that property and set appropriate constraints.

The second patch models SMPS10 as two regulators, SMPS10-OUT1 and SMPS10-OUT2.

Tested regulator enable of SMPS10-OUT1.
Dint test bypass mode.

Kishon Vijay Abraham I (2):
  regulator: of: Added a property to indicate bypass mode support
  regulator: palmas: model SMPS10 as two regulators

 .../devicetree/bindings/regulator/regulator.txt    |    1 +
 drivers/regulator/of_regulator.c                   |    3 ++
 drivers/regulator/palmas-regulator.c               |   39 ++++++++++++++++++--
 include/linux/mfd/palmas.h                         |    9 +++--
 4 files changed, 44 insertions(+), 8 deletions(-)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 1/2] regulator: of: Added a property to indicate bypass mode support
  2013-06-20  8:37 [PATCH 0/2] Model SMPS10 regulator Kishon Vijay Abraham I
@ 2013-06-20  8:37 ` Kishon Vijay Abraham I
  2013-06-20 11:20   ` Mark Brown
  2013-06-20  8:37 ` [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators Kishon Vijay Abraham I
  1 sibling, 1 reply; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-20  8:37 UTC (permalink / raw)
  To: ldewangan, broonie
  Cc: grant.likely, rob.herring, rob, lgirdwood, swarren, gg, sameo,
	ian, devicetree-discuss, linux-doc, linux-kernel, kishon

Added a property to indicate if the regulator supports bypass mode.
Also modified of_get_regulation_constraints() to check for that
property and set appropriate constraints.

Cc: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 Documentation/devicetree/bindings/regulator/regulator.txt |    1 +
 drivers/regulator/of_regulator.c                          |    3 +++
 2 files changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt
index ecfc6cc..48a3b8e 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/regulator.txt
@@ -9,6 +9,7 @@ Optional properties:
 - regulator-max-microamp: largest current consumers may set
 - regulator-always-on: boolean, regulator should never be disabled
 - regulator-boot-on: bootloader/firmware enabled regulator
+- regulator-allow-bypass: allow the regulator to go into bypass mode
 - <name>-supply: phandle to the parent supply/regulator node
 - regulator-ramp-delay: ramp delay for regulator(in uV/uS)
 
diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c
index 66ca769..f3c8f8f 100644
--- a/drivers/regulator/of_regulator.c
+++ b/drivers/regulator/of_regulator.c
@@ -61,6 +61,9 @@ static void of_get_regulation_constraints(struct device_node *np,
 	else /* status change should be possible if not always on. */
 		constraints->valid_ops_mask |= REGULATOR_CHANGE_STATUS;
 
+	if (of_property_read_bool(np, "regulator-allow-bypass"))
+		constraints->valid_ops_mask |= REGULATOR_CHANGE_BYPASS;
+
 	ramp_delay = of_get_property(np, "regulator-ramp-delay", NULL);
 	if (ramp_delay)
 		constraints->ramp_delay = be32_to_cpu(*ramp_delay);
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20  8:37 [PATCH 0/2] Model SMPS10 regulator Kishon Vijay Abraham I
  2013-06-20  8:37 ` [PATCH 1/2] regulator: of: Added a property to indicate bypass mode support Kishon Vijay Abraham I
@ 2013-06-20  8:37 ` Kishon Vijay Abraham I
  2013-06-20 10:52   ` Laxman Dewangan
  1 sibling, 1 reply; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-20  8:37 UTC (permalink / raw)
  To: ldewangan, broonie
  Cc: grant.likely, rob.herring, rob, lgirdwood, swarren, gg, sameo,
	ian, devicetree-discuss, linux-doc, linux-kernel, kishon

SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
regulator_enable().

Cc: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/regulator/palmas-regulator.c |   39 ++++++++++++++++++++++++++++++----
 include/linux/mfd/palmas.h           |    9 ++++----
 2 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 3ae44ac..7004bab 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
 		.ctrl_addr	= PALMAS_SMPS9_CTRL,
 	},
 	{
-		.name		= "SMPS10",
+		.name		= "SMPS10_OUT1",
+		.sname		= "smps10-out2",
+		.ctrl_addr	= PALMAS_SMPS10_CTRL,
+	},
+	{
+		.name		= "SMPS10_OUT2",
 		.sname		= "smps10-in",
 		.ctrl_addr	= PALMAS_SMPS10_CTRL,
 	},
@@ -487,6 +492,8 @@ static struct regulator_ops palmas_ops_smps10 = {
 	.set_voltage_sel	= regulator_set_voltage_sel_regmap,
 	.list_voltage		= regulator_list_voltage_linear,
 	.map_voltage		= regulator_map_voltage_linear,
+	.set_bypass		= regulator_set_bypass_regmap,
+	.get_bypass		= regulator_get_bypass_regmap,
 };
 
 static int palmas_is_enabled_ldo(struct regulator_dev *dev)
@@ -538,7 +545,8 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 		return ret;
 
 	switch (id) {
-	case PALMAS_REG_SMPS10:
+	case PALMAS_REG_SMPS10_OUT1:
+	case PALMAS_REG_SMPS10_OUT2:
 		reg &= ~PALMAS_SMPS10_CTRL_MODE_SLEEP_MASK;
 		if (reg_init->mode_sleep)
 			reg |= reg_init->mode_sleep <<
@@ -681,7 +689,8 @@ static struct of_regulator_match palmas_matches[] = {
 	{ .name = "smps7", },
 	{ .name = "smps8", },
 	{ .name = "smps9", },
-	{ .name = "smps10", },
+	{ .name = "smps10_out1", },
+	{ .name = "smps10_out2", },
 	{ .name = "ldo1", },
 	{ .name = "ldo2", },
 	{ .name = "ldo3", },
@@ -869,7 +878,25 @@ static int palmas_regulators_probe(struct platform_device *pdev)
 		pmic->desc[id].id = id;
 
 		switch (id) {
-		case PALMAS_REG_SMPS10:
+		case PALMAS_REG_SMPS10_OUT1:
+			pmic->desc[id].n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
+			pmic->desc[id].ops = &palmas_ops_smps10;
+			pmic->desc[id].vsel_reg =
+					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							PALMAS_SMPS10_CTRL);
+			pmic->desc[id].vsel_mask = SMPS10_VSEL;
+			pmic->desc[id].enable_reg =
+					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							PALMAS_SMPS10_CTRL);
+			pmic->desc[id].enable_mask = SMPS10_SWITCH_EN;
+			pmic->desc[id].bypass_reg =
+					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							PALMAS_SMPS10_CTRL);
+			pmic->desc[id].bypass_mask = SMPS10_BYPASS_EN;
+			pmic->desc[id].min_uV = 3750000;
+			pmic->desc[id].uV_step = 1250000;
+			break;
+		case PALMAS_REG_SMPS10_OUT2:
 			pmic->desc[id].n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
 			pmic->desc[id].ops = &palmas_ops_smps10;
 			pmic->desc[id].vsel_reg =
@@ -880,6 +907,10 @@ static int palmas_regulators_probe(struct platform_device *pdev)
 					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
 							PALMAS_SMPS10_CTRL);
 			pmic->desc[id].enable_mask = SMPS10_BOOST_EN;
+			pmic->desc[id].bypass_reg =
+					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							PALMAS_SMPS10_CTRL);
+			pmic->desc[id].bypass_mask = SMPS10_BYPASS_EN;
 			pmic->desc[id].min_uV = 3750000;
 			pmic->desc[id].uV_step = 1250000;
 			break;
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 8f21daf..1bbcda9 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -138,7 +138,8 @@ enum palmas_regulators {
 	PALMAS_REG_SMPS7,
 	PALMAS_REG_SMPS8,
 	PALMAS_REG_SMPS9,
-	PALMAS_REG_SMPS10,
+	PALMAS_REG_SMPS10_OUT1,
+	PALMAS_REG_SMPS10_OUT2,
 	/* LDO regulators */
 	PALMAS_REG_LDO1,
 	PALMAS_REG_LDO2,
@@ -336,9 +337,9 @@ struct palmas_pmic {
 	int smps123;
 	int smps457;
 
-	int range[PALMAS_REG_SMPS10];
-	unsigned int ramp_delay[PALMAS_REG_SMPS10];
-	unsigned int current_reg_mode[PALMAS_REG_SMPS10];
+	int range[PALMAS_REG_SMPS10_OUT2];
+	unsigned int ramp_delay[PALMAS_REG_SMPS10_OUT2];
+	unsigned int current_reg_mode[PALMAS_REG_SMPS10_OUT2];
 };
 
 struct palmas_resource {
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20  8:37 ` [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators Kishon Vijay Abraham I
@ 2013-06-20 10:52   ` Laxman Dewangan
  2013-06-20 13:50     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 14+ messages in thread
From: Laxman Dewangan @ 2013-06-20 10:52 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, ian, devicetree-discuss, linux-doc,
	linux-kernel

On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote:
> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
> regulator_enable().
>
> Cc: Laxman Dewangan <ldewangan@nvidia.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>   drivers/regulator/palmas-regulator.c |   39 ++++++++++++++++++++++++++++++----
>   include/linux/mfd/palmas.h           |    9 ++++----
>   2 files changed, 40 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
> index 3ae44ac..7004bab 100644
> --- a/drivers/regulator/palmas-regulator.c
> +++ b/drivers/regulator/palmas-regulator.c
> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
>   		.ctrl_addr	= PALMAS_SMPS9_CTRL,
>   	},
>   	{
> -		.name		= "SMPS10",
> +		.name		= "SMPS10_OUT1",
> +		.sname		= "smps10-out2",
> +		.ctrl_addr	= PALMAS_SMPS10_CTRL,
> +	},
> +	{
> +		.name		= "SMPS10_OUT2",
>   		.sname		= "smps10-in",
>

This sequence can create regulator to be never register.
In probe, we register regulator from 0 to max_id.
Here smps10-out1 comes first and see the supply as smps10-out2 which is 
not registered yet and so will fail with PROBE_DEFER
When again it tries, the same issue.

I think we need to reverse the sequence, SMPS10-OUT2 and then SMPS10-OUT1.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] regulator: of: Added a property to indicate bypass mode support
  2013-06-20  8:37 ` [PATCH 1/2] regulator: of: Added a property to indicate bypass mode support Kishon Vijay Abraham I
@ 2013-06-20 11:20   ` Mark Brown
  0 siblings, 0 replies; 14+ messages in thread
From: Mark Brown @ 2013-06-20 11:20 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: ldewangan, grant.likely, rob.herring, rob, lgirdwood, swarren,
	gg, sameo, ian, devicetree-discuss, linux-doc, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 270 bytes --]

On Thu, Jun 20, 2013 at 02:07:37PM +0530, Kishon Vijay Abraham I wrote:
> Added a property to indicate if the regulator supports bypass mode.
> Also modified of_get_regulation_constraints() to check for that
> property and set appropriate constraints.

Applied, thanks.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20 10:52   ` Laxman Dewangan
@ 2013-06-20 13:50     ` Kishon Vijay Abraham I
  2013-06-20 14:03       ` Laxman Dewangan
  0 siblings, 1 reply; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-20 13:50 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, ian, devicetree-discuss, linux-doc,
	linux-kernel

Hi,

On Thursday 20 June 2013 04:22 PM, Laxman Dewangan wrote:
> On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote:
>> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
>> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
>> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
>> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
>> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
>> regulator_enable().
>>
>> Cc: Laxman Dewangan <ldewangan@nvidia.com>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>   drivers/regulator/palmas-regulator.c |   39 ++++++++++++++++++++++++++++++----
>>   include/linux/mfd/palmas.h           |    9 ++++----
>>   2 files changed, 40 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/regulator/palmas-regulator.c
>> b/drivers/regulator/palmas-regulator.c
>> index 3ae44ac..7004bab 100644
>> --- a/drivers/regulator/palmas-regulator.c
>> +++ b/drivers/regulator/palmas-regulator.c
>> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
>>           .ctrl_addr    = PALMAS_SMPS9_CTRL,
>>       },
>>       {
>> -        .name        = "SMPS10",
>> +        .name        = "SMPS10_OUT1",
>> +        .sname        = "smps10-out2",
>> +        .ctrl_addr    = PALMAS_SMPS10_CTRL,
>> +    },
>> +    {
>> +        .name        = "SMPS10_OUT2",
>>           .sname        = "smps10-in",
>>
>
> This sequence can create regulator to be never register.
> In probe, we register regulator from 0 to max_id.
> Here smps10-out1 comes first and see the supply as smps10-out2 which is not
> registered yet and so will fail with PROBE_DEFER
> When again it tries, the same issue.

hmm.. But I was able to get (regulator_get) *SMPS10_OUT1* without any issue
during my testing. From looking at the code, I couldn't see *sname* being used
anywhere.

Thanks
Kishon

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20 13:50     ` Kishon Vijay Abraham I
@ 2013-06-20 14:03       ` Laxman Dewangan
  2013-06-20 14:19         ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 14+ messages in thread
From: Laxman Dewangan @ 2013-06-20 14:03 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, ian, devicetree-discuss, linux-doc,
	linux-kernel

On Thursday 20 June 2013 07:20 PM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Thursday 20 June 2013 04:22 PM, Laxman Dewangan wrote:
>> On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote:
>>> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
>>> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
>>> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
>>> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
>>> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
>>> regulator_enable().
>>>
>>> Cc: Laxman Dewangan <ldewangan@nvidia.com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>> ---
>>>    drivers/regulator/palmas-regulator.c |   39 ++++++++++++++++++++++++++++++----
>>>    include/linux/mfd/palmas.h           |    9 ++++----
>>>    2 files changed, 40 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/regulator/palmas-regulator.c
>>> b/drivers/regulator/palmas-regulator.c
>>> index 3ae44ac..7004bab 100644
>>> --- a/drivers/regulator/palmas-regulator.c
>>> +++ b/drivers/regulator/palmas-regulator.c
>>> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
>>>            .ctrl_addr    = PALMAS_SMPS9_CTRL,
>>>        },
>>>        {
>>> -        .name        = "SMPS10",
>>> +        .name        = "SMPS10_OUT1",
>>> +        .sname        = "smps10-out2",
>>> +        .ctrl_addr    = PALMAS_SMPS10_CTRL,
>>> +    },
>>> +    {
>>> +        .name        = "SMPS10_OUT2",
>>>            .sname        = "smps10-in",
>>>
>> This sequence can create regulator to be never register.
>> In probe, we register regulator from 0 to max_id.
>> Here smps10-out1 comes first and see the supply as smps10-out2 which is not
>> registered yet and so will fail with PROBE_DEFER
>> When again it tries, the same issue.
> hmm.. But I was able to get (regulator_get) *SMPS10_OUT1* without any issue
> during my testing. From looking at the code, I couldn't see *sname* being used
> anywhere.

We used the sname as
pmic->desc[id].supply_name = palmas_regs_info[id].sname;

However, how you have populated your dt?
Have you added like
smps10-out2-supply = <&SMPS10_OUT2>

for the palmas regualtor -dt.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20 14:03       ` Laxman Dewangan
@ 2013-06-20 14:19         ` Kishon Vijay Abraham I
  2013-06-20 14:44           ` Laxman Dewangan
  0 siblings, 1 reply; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-20 14:19 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

Hi,

On Thursday 20 June 2013 07:33 PM, Laxman Dewangan wrote:
> On Thursday 20 June 2013 07:20 PM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Thursday 20 June 2013 04:22 PM, Laxman Dewangan wrote:
>>> On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote:
>>>> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
>>>> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
>>>> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
>>>> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
>>>> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
>>>> regulator_enable().
>>>>
>>>> Cc: Laxman Dewangan <ldewangan@nvidia.com>
>>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>>> ---
>>>>    drivers/regulator/palmas-regulator.c |   39
>>>> ++++++++++++++++++++++++++++++----
>>>>    include/linux/mfd/palmas.h           |    9 ++++----
>>>>    2 files changed, 40 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/regulator/palmas-regulator.c
>>>> b/drivers/regulator/palmas-regulator.c
>>>> index 3ae44ac..7004bab 100644
>>>> --- a/drivers/regulator/palmas-regulator.c
>>>> +++ b/drivers/regulator/palmas-regulator.c
>>>> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
>>>>            .ctrl_addr    = PALMAS_SMPS9_CTRL,
>>>>        },
>>>>        {
>>>> -        .name        = "SMPS10",
>>>> +        .name        = "SMPS10_OUT1",
>>>> +        .sname        = "smps10-out2",
>>>> +        .ctrl_addr    = PALMAS_SMPS10_CTRL,
>>>> +    },
>>>> +    {
>>>> +        .name        = "SMPS10_OUT2",
>>>>            .sname        = "smps10-in",
>>>>
>>> This sequence can create regulator to be never register.
>>> In probe, we register regulator from 0 to max_id.
>>> Here smps10-out1 comes first and see the supply as smps10-out2 which is not
>>> registered yet and so will fail with PROBE_DEFER
>>> When again it tries, the same issue.
>> hmm.. But I was able to get (regulator_get) *SMPS10_OUT1* without any issue
>> during my testing. From looking at the code, I couldn't see *sname* being used
>> anywhere.
>
> We used the sname as
> pmic->desc[id].supply_name = palmas_regs_info[id].sname;
>
> However, how you have populated your dt?
> Have you added like
> smps10-out2-supply = <&SMPS10_OUT2>
>
> for the palmas regualtor -dt.

I added the regulator data like

+                       smps10_out1_reg: smps10_out1 {
+                               regulator-name = "smps10_out1";
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-allow-bypass;
+                               ti,warm_sleep = <0>;
+                               ti,roof_floor = <0>;
+                               ti,mode_sleep = <0>;
+                               ti,warm_reset = <0>;
+                               ti,tstep = <0>;
+                               ti,vsel = <0>;
+                       };

and from my controller I reference it using
+               vbus-supply = <&smps10_out1_reg>;

and in the controller driver I use
+               vbus_reg = devm_regulator_get(dev, "vbus");

Thanks
Kishon

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20 14:19         ` Kishon Vijay Abraham I
@ 2013-06-20 14:44           ` Laxman Dewangan
  2013-06-20 15:26             ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 14+ messages in thread
From: Laxman Dewangan @ 2013-06-20 14:44 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

On Thursday 20 June 2013 07:49 PM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Thursday 20 June 2013 07:33 PM, Laxman Dewangan wrote:
>> On Thursday 20 June 2013 07:20 PM, Kishon Vijay Abraham I wrote:
>>> Hi,
>>>
>>> On Thursday 20 June 2013 04:22 PM, Laxman Dewangan wrote:
>>>> On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote:
>>>>> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
>>>>> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
>>>>> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
>>>>> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
>>>>> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
>>>>> regulator_enable().
>>>>>
>>>>> Cc: Laxman Dewangan <ldewangan@nvidia.com>
>>>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>>>> ---
>>>>>     drivers/regulator/palmas-regulator.c |   39
>>>>> ++++++++++++++++++++++++++++++----
>>>>>     include/linux/mfd/palmas.h           |    9 ++++----
>>>>>     2 files changed, 40 insertions(+), 8 deletions(-)
>>>>>
>>>>> diff --git a/drivers/regulator/palmas-regulator.c
>>>>> b/drivers/regulator/palmas-regulator.c
>>>>> index 3ae44ac..7004bab 100644
>>>>> --- a/drivers/regulator/palmas-regulator.c
>>>>> +++ b/drivers/regulator/palmas-regulator.c
>>>>> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
>>>>>             .ctrl_addr    = PALMAS_SMPS9_CTRL,
>>>>>         },
>>>>>         {
>>>>> -        .name        = "SMPS10",
>>>>> +        .name        = "SMPS10_OUT1",
>>>>> +        .sname        = "smps10-out2",
>>>>> +        .ctrl_addr    = PALMAS_SMPS10_CTRL,
>>>>> +    },
>>>>> +    {
>>>>> +        .name        = "SMPS10_OUT2",
>>>>>             .sname        = "smps10-in",
>>>>>
>>>> This sequence can create regulator to be never register.
>>>> In probe, we register regulator from 0 to max_id.
>>>> Here smps10-out1 comes first and see the supply as smps10-out2 which is not
>>>> registered yet and so will fail with PROBE_DEFER
>>>> When again it tries, the same issue.
>>> hmm.. But I was able to get (regulator_get) *SMPS10_OUT1* without any issue
>>> during my testing. From looking at the code, I couldn't see *sname* being used
>>> anywhere.
>> We used the sname as
>> pmic->desc[id].supply_name = palmas_regs_info[id].sname;
>>
>> However, how you have populated your dt?
>> Have you added like
>> smps10-out2-supply = <&SMPS10_OUT2>
>>
>> for the palmas regualtor -dt.
> I added the regulator data like
>
> +                       smps10_out1_reg: smps10_out1 {
> +                               regulator-name = "smps10_out1";
> +                               regulator-min-microvolt = <5000000>;
> +                               regulator-max-microvolt = <5000000>;
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                               regulator-allow-bypass;
> +                               ti,warm_sleep = <0>;
> +                               ti,roof_floor = <0>;
> +                               ti,mode_sleep = <0>;
> +                               ti,warm_reset = <0>;
> +                               ti,tstep = <0>;
> +                               ti,vsel = <0>;
> +                       };
>
> and from my controller I reference it using
> +               vbus-supply = <&smps10_out1_reg>;
>
> and in the controller driver I use
> +               vbus_reg = devm_regulator_get(dev, "vbus");

Have you added the regulator supply entries?
Are you testing on mainline linux-next?

I have DT entry as:
                 palmas: tps65913@58 {
                         compatible = "ti,palmas";
                         reg = <0x58>;
                         interrupts = <0 86 0x4>;

                 :::::::::::::::;
                         palmas_pmic {
                             compatible = "ti,palmas-pmic";
                             smps1-in-supply = <&tps65090_dcdc3_reg>;
                             smps3-in-supply = <&tps65090_dcdc3_reg>;
                             smps4-in-supply = <&tps65090_dcdc2_reg>;
  :::::::::;

			smps10-out2-supply = <&SMPS10_OUT2>
:::::::::::::;
}

And it fails.




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20 14:44           ` Laxman Dewangan
@ 2013-06-20 15:26             ` Kishon Vijay Abraham I
  2013-06-21 13:25               ` Laxman Dewangan
  0 siblings, 1 reply; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-20 15:26 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

Hi,

On Thursday 20 June 2013 08:14 PM, Laxman Dewangan wrote:
> On Thursday 20 June 2013 07:49 PM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Thursday 20 June 2013 07:33 PM, Laxman Dewangan wrote:
>>> On Thursday 20 June 2013 07:20 PM, Kishon Vijay Abraham I wrote:
>>>> Hi,
>>>>
>>>> On Thursday 20 June 2013 04:22 PM, Laxman Dewangan wrote:
>>>>> On Thursday 20 June 2013 02:07 PM, Kishon Vijay Abraham I wrote:
>>>>>> SMPS10 has two outputs OUT1 and OUT2 and have one input IN1.
>>>>>> SMPS10-OUT2 is connected to SMPS10-IN1 and can be configured either
>>>>>> in BOOST mode or BYPASS mode. regulator_enable of SMPS10-OUT2 configures
>>>>>> it in BOOST mode. For BYPASS mode regulator_allow_bypass() API can be
>>>>>> used. SMPS10-OUT1 is connected to SMPS10-OUT2 and can be enabled using
>>>>>> regulator_enable().
>>>>>>
>>>>>> Cc: Laxman Dewangan <ldewangan@nvidia.com>
>>>>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>>>>> ---
>>>>>>     drivers/regulator/palmas-regulator.c |   39
>>>>>> ++++++++++++++++++++++++++++++----
>>>>>>     include/linux/mfd/palmas.h           |    9 ++++----
>>>>>>     2 files changed, 40 insertions(+), 8 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/regulator/palmas-regulator.c
>>>>>> b/drivers/regulator/palmas-regulator.c
>>>>>> index 3ae44ac..7004bab 100644
>>>>>> --- a/drivers/regulator/palmas-regulator.c
>>>>>> +++ b/drivers/regulator/palmas-regulator.c
>>>>>> @@ -97,7 +97,12 @@ static const struct regs_info palmas_regs_info[] = {
>>>>>>             .ctrl_addr    = PALMAS_SMPS9_CTRL,
>>>>>>         },
>>>>>>         {
>>>>>> -        .name        = "SMPS10",
>>>>>> +        .name        = "SMPS10_OUT1",
>>>>>> +        .sname        = "smps10-out2",
>>>>>> +        .ctrl_addr    = PALMAS_SMPS10_CTRL,
>>>>>> +    },
>>>>>> +    {
>>>>>> +        .name        = "SMPS10_OUT2",
>>>>>>             .sname        = "smps10-in",
>>>>>>
>>>>> This sequence can create regulator to be never register.
>>>>> In probe, we register regulator from 0 to max_id.
>>>>> Here smps10-out1 comes first and see the supply as smps10-out2 which is not
>>>>> registered yet and so will fail with PROBE_DEFER
>>>>> When again it tries, the same issue.
>>>> hmm.. But I was able to get (regulator_get) *SMPS10_OUT1* without any issue
>>>> during my testing. From looking at the code, I couldn't see *sname* being used
>>>> anywhere.
>>> We used the sname as
>>> pmic->desc[id].supply_name = palmas_regs_info[id].sname;
>>>
>>> However, how you have populated your dt?
>>> Have you added like
>>> smps10-out2-supply = <&SMPS10_OUT2>
>>>
>>> for the palmas regualtor -dt.
>> I added the regulator data like
>>
>> +                       smps10_out1_reg: smps10_out1 {
>> +                               regulator-name = "smps10_out1";
>> +                               regulator-min-microvolt = <5000000>;
>> +                               regulator-max-microvolt = <5000000>;
>> +                               regulator-always-on;
>> +                               regulator-boot-on;
>> +                               regulator-allow-bypass;
>> +                               ti,warm_sleep = <0>;
>> +                               ti,roof_floor = <0>;
>> +                               ti,mode_sleep = <0>;
>> +                               ti,warm_reset = <0>;
>> +                               ti,tstep = <0>;
>> +                               ti,vsel = <0>;
>> +                       };
>>
>> and from my controller I reference it using
>> +               vbus-supply = <&smps10_out1_reg>;
>>
>> and in the controller driver I use
>> +               vbus_reg = devm_regulator_get(dev, "vbus");
>
> Have you added the regulator supply entries?
> Are you testing on mainline linux-next?

Not in linux-next :-( Tested only with mainline.
Does inverting the order helps?

Thanks
Kishon

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-20 15:26             ` Kishon Vijay Abraham I
@ 2013-06-21 13:25               ` Laxman Dewangan
  2013-06-21 14:00                 ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 14+ messages in thread
From: Laxman Dewangan @ 2013-06-21 13:25 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

On Thursday 20 June 2013 08:56 PM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Thursday 20 June 2013 08:14 PM, Laxman Dewangan wrote:
>>
>> Have you added the regulator supply entries?
>> Are you testing on mainline linux-next?
> Not in linux-next :-( Tested only with mainline.
> Does inverting the order helps?
>

I think because you do not have entry of supply in your dt node, it gets 
ignored by regulator_dev_lookup() and continue.

I made the entry like (added entry form smps10-out2-supply and 
smps10-in-supply in dt node) and then it failed.
/***

+                           smps10-out2-supply = <&palmas_smps10_out2_reg>;
+                           smps10-in-supply = <&tps65090_dcdc3_reg>;
                             ldo3-in-supply = <&palmas_smps3_reg>;
@@ -903,6 +905,20 @@
                                         regulator-always-on;
                                 };

+                               palmas_smps10_out1_reg: smps10_out1 {
+                                       regulator-name = "smps10_out1";
+                                       regulator-min-microvolt = <5000000>;
+                                       regulator-max-microvolt = <5000000>;
+                                       regulator-always-on;
+                               };
+
+                               palmas_smps10_out2_reg: smps10_out2 {
+                                       regulator-name = "smps10_out2";
+                                       regulator-min-microvolt = <5000000>;
+                                       regulator-max-microvolt = <5000000>;
+                                       regulator-always-on;
+                               };
+
**/


After reversing the sequence, it worked fine.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-21 13:25               ` Laxman Dewangan
@ 2013-06-21 14:00                 ` Kishon Vijay Abraham I
  2013-06-22 13:12                   ` Laxman Dewangan
  0 siblings, 1 reply; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-21 14:00 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

On Friday 21 June 2013 06:55 PM, Laxman Dewangan wrote:
> On Thursday 20 June 2013 08:56 PM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Thursday 20 June 2013 08:14 PM, Laxman Dewangan wrote:
>>>
>>> Have you added the regulator supply entries?
>>> Are you testing on mainline linux-next?
>> Not in linux-next :-( Tested only with mainline.
>> Does inverting the order helps?
>>
>
> I think because you do not have entry of supply in your dt node, it gets
> ignored by regulator_dev_lookup() and continue.
>
> I made the entry like (added entry form smps10-out2-supply and smps10-in-supply
> in dt node) and then it failed.
> /***
>
> +                           smps10-out2-supply = <&palmas_smps10_out2_reg>;
> +                           smps10-in-supply = <&tps65090_dcdc3_reg>;
>                              ldo3-in-supply = <&palmas_smps3_reg>;
> @@ -903,6 +905,20 @@
>                                          regulator-always-on;
>                                  };
>
> +                               palmas_smps10_out1_reg: smps10_out1 {
> +                                       regulator-name = "smps10_out1";
> +                                       regulator-min-microvolt = <5000000>;
> +                                       regulator-max-microvolt = <5000000>;
> +                                       regulator-always-on;
> +                               };
> +
> +                               palmas_smps10_out2_reg: smps10_out2 {
> +                                       regulator-name = "smps10_out2";
> +                                       regulator-min-microvolt = <5000000>;
> +                                       regulator-max-microvolt = <5000000>;
> +                                       regulator-always-on;
> +                               };
> +
> **/
>
>
> After reversing the sequence, it worked fine.

You mean, changing the order in dt node helped?

Thanks
Kishon

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-21 14:00                 ` Kishon Vijay Abraham I
@ 2013-06-22 13:12                   ` Laxman Dewangan
  2013-06-24  5:23                     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 14+ messages in thread
From: Laxman Dewangan @ 2013-06-22 13:12 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

On Friday 21 June 2013 07:30 PM, Kishon Vijay Abraham I wrote:
> On Friday 21 June 2013 06:55 PM, Laxman Dewangan wrote:
>> On Thursday 20 June 2013 08:56 PM, Kishon Vijay Abraham I wrote:
>>> Hi,
>>>
>>> On Thursday 20 June 2013 08:14 PM, Laxman Dewangan wrote:
>>>> Have you added the regulator supply entries?
>>>> Are you testing on mainline linux-next?
>>> Not in linux-next :-( Tested only with mainline.
>>> Does inverting the order helps?
>>>
>> I think because you do not have entry of supply in your dt node, it gets
>> ignored by regulator_dev_lookup() and continue.
>>
>> I made the entry like (added entry form smps10-out2-supply and smps10-in-supply
>> in dt node) and then it failed.
>> /***
>>
>> +                           smps10-out2-supply = <&palmas_smps10_out2_reg>;
>> +                           smps10-in-supply = <&tps65090_dcdc3_reg>;
>>                               ldo3-in-supply = <&palmas_smps3_reg>;
>> @@ -903,6 +905,20 @@
>>                                           regulator-always-on;
>>                                   };
>>
>> +                               palmas_smps10_out1_reg: smps10_out1 {
>> +                                       regulator-name = "smps10_out1";
>> +                                       regulator-min-microvolt = <5000000>;
>> +                                       regulator-max-microvolt = <5000000>;
>> +                                       regulator-always-on;
>> +                               };
>> +
>> +                               palmas_smps10_out2_reg: smps10_out2 {
>> +                                       regulator-name = "smps10_out2";
>> +                                       regulator-min-microvolt = <5000000>;
>> +                                       regulator-max-microvolt = <5000000>;
>> +                                       regulator-always-on;
>> +                               };
>> +
>> **/
>>
>>
>> After reversing the sequence, it worked fine.
> You mean, changing the order in dt node helped?

The sequence on DT does not matter. We register the regulators in the 
sequence it is having enums value for regulator-id in loop. So we need 
to revert there.

Yaah, it looks odd that SMPS10-OUT2come before SMPS10-OUT1 in enums 
definition.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators
  2013-06-22 13:12                   ` Laxman Dewangan
@ 2013-06-24  5:23                     ` Kishon Vijay Abraham I
  0 siblings, 0 replies; 14+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-24  5:23 UTC (permalink / raw)
  To: Laxman Dewangan
  Cc: broonie, grant.likely, rob.herring, rob, lgirdwood,
	Stephen Warren, gg, sameo, devicetree-discuss, linux-doc,
	linux-kernel

Hi,

On Saturday 22 June 2013 06:42 PM, Laxman Dewangan wrote:
> On Friday 21 June 2013 07:30 PM, Kishon Vijay Abraham I wrote:
>> On Friday 21 June 2013 06:55 PM, Laxman Dewangan wrote:
>>> On Thursday 20 June 2013 08:56 PM, Kishon Vijay Abraham I wrote:
>>>> Hi,
>>>>
>>>> On Thursday 20 June 2013 08:14 PM, Laxman Dewangan wrote:
>>>>> Have you added the regulator supply entries?
>>>>> Are you testing on mainline linux-next?
>>>> Not in linux-next :-( Tested only with mainline.
>>>> Does inverting the order helps?
>>>>
>>> I think because you do not have entry of supply in your dt node, it gets
>>> ignored by regulator_dev_lookup() and continue.
>>>
>>> I made the entry like (added entry form smps10-out2-supply and smps10-in-supply
>>> in dt node) and then it failed.
>>> /***
>>>
>>> +                           smps10-out2-supply = <&palmas_smps10_out2_reg>;
>>> +                           smps10-in-supply = <&tps65090_dcdc3_reg>;
>>>                               ldo3-in-supply = <&palmas_smps3_reg>;
>>> @@ -903,6 +905,20 @@
>>>                                           regulator-always-on;
>>>                                   };
>>>
>>> +                               palmas_smps10_out1_reg: smps10_out1 {
>>> +                                       regulator-name = "smps10_out1";
>>> +                                       regulator-min-microvolt = <5000000>;
>>> +                                       regulator-max-microvolt = <5000000>;
>>> +                                       regulator-always-on;
>>> +                               };
>>> +
>>> +                               palmas_smps10_out2_reg: smps10_out2 {
>>> +                                       regulator-name = "smps10_out2";
>>> +                                       regulator-min-microvolt = <5000000>;
>>> +                                       regulator-max-microvolt = <5000000>;
>>> +                                       regulator-always-on;
>>> +                               };
>>> +
>>> **/
>>>
>>>
>>> After reversing the sequence, it worked fine.
>> You mean, changing the order in dt node helped?
>
> The sequence on DT does not matter. We register the regulators in the sequence
> it is having enums value for regulator-id in loop. So we need to revert there.
>
> Yaah, it looks odd that SMPS10-OUT2come before SMPS10-OUT1 in enums definition.

Will fix that and send a patch.

Thanks
Kishon

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-06-24  5:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-20  8:37 [PATCH 0/2] Model SMPS10 regulator Kishon Vijay Abraham I
2013-06-20  8:37 ` [PATCH 1/2] regulator: of: Added a property to indicate bypass mode support Kishon Vijay Abraham I
2013-06-20 11:20   ` Mark Brown
2013-06-20  8:37 ` [PATCH 2/2] regulator: palmas: model SMPS10 as two regulators Kishon Vijay Abraham I
2013-06-20 10:52   ` Laxman Dewangan
2013-06-20 13:50     ` Kishon Vijay Abraham I
2013-06-20 14:03       ` Laxman Dewangan
2013-06-20 14:19         ` Kishon Vijay Abraham I
2013-06-20 14:44           ` Laxman Dewangan
2013-06-20 15:26             ` Kishon Vijay Abraham I
2013-06-21 13:25               ` Laxman Dewangan
2013-06-21 14:00                 ` Kishon Vijay Abraham I
2013-06-22 13:12                   ` Laxman Dewangan
2013-06-24  5:23                     ` Kishon Vijay Abraham I

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).