regulator_set_voltage and regulator_set_optimum_mode usage question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mark and Liam,

I was wondering what the best way is to handle a situation in which a
consumer driver wishes to be as generic as possible by calling a sequence
like this for any regulator that is uses:

vreg = regulator_get(dev, "foo_vdd");
regulator_set_voltage(vreg, 1000000, 2000000);
regulator_set_optimum_mode(vreg, 50000);
regulator_enable(vreg);

The problem that arises is that the "regulator" it is supplied by may in
fact be a voltage switch.  The driver for this switch is set up so that
only enable, disable, and is_enabled callbacks are specified.  This has
the effect of making all regulator_set_voltage and
regulator_set_optimum_mode calls return an error.

Is there a mechanism in the regulator framework that will allow a consumer
to determine if these APIs are available for a given regulator?

I considered changing the switch drivers to provide dummy voltage and mode
callbacks.  The voltage range would then be any positive integer
(including 0).  However, this results in a problem if one consumer calls
only regulator_enable and then a second consumer calls
regulator_set_voltage with some range, perhaps [1000000, 2000000],
followed by regulator_enable.  regulator_check_consumers will fail inside
of regulator_set_voltage for the second consumer because the implicit [0,
0] request of the first consumer does not overlap [1000000, 2000000].

What are your thoughts on this situation?

Thanks,
David Collins

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux