backlight/ld9040.c: regulator control in the lcd driver

Kyungmin Park kyungmin.park at samsung.com
Fri Dec 2 05:14:24 EST 2011


On 12/2/11, Linus Walleij <linus.walleij at linaro.org> wrote:
> On Fri, Dec 2, 2011 at 9:57 AM, Kyungmin Park <kyungmin.park at samsung.com>
> wrote:
>>>[leedonghwa]
>> [Me]
>>>> +         lcd->reg_vdd3 = regulator_get(lcd->dev, "vdd");
>>>> +         if (IS_ERR(lcd->reg_vdd3)) {
>>>> +                   dev_info(lcd->dev, "no %s regulator found\n",
>>>> "vdd");
>>>> +                   lcd->reg_vdd3 = NULL;
>>>> +         }
>>>> +
>>>> +         lcd->reg_vci = regulator_get(lcd->dev, "vci");
>>>> +         if (IS_ERR(lcd->reg_vci)) {
>>>> +                   dev_info(lcd->dev, "no %s regulator found\n",
>>>> "vci");
>>>> +                   lcd->reg_vci = NULL;
>>>> +         }
>>>
>>> As explained in earlier discussion with Mark regarding the SMSC911x
>>> driver regulator, treat these as errors and do not fail
>>> "gracefully" like this.
>>>
>>> Reference:
>>> http://marc.info/?l=linux-netdev&m=131914562120725&w=2
>>
>> As mentioned at commit message, the lcd regulator is optional part and
>> refer the mmc codes
>>
>>        host->vmmc = regulator_get(mmc_dev(mmc), "vmmc");
>>        if (IS_ERR(host->vmmc)) {
>>                pr_info("%s: no vmmc regulator found\n",
>> mmc_hostname(mmc));
>>                host->vmmc = NULL;
>>        } else {
>>                regulator_enable(host->vmmc);
>>        }
>>
>> Previous time, these codes are located at board file, but more boards
>> are used, it has same codes for all boards. so move it to drivers.
>
> I know. This was brought up in the aforementioned discussion,
> but the above is also wrong, simply. See:
> http://marc.info/?l=linux-netdev&m=131914562120667&w=2
> http://marc.info/?l=linux-netdev&m=131914562120690&w=2
> http://marc.info/?l=linux-netdev&m=131914562120725&w=2
> http://marc.info/?l=linux-netdev&m=131963332527416&w=2
>
>> In our case, it has the regulator but some boards don't.
>>
>> Umm then how to handle the regulator gracefully?
>
> Mark suggest using a fixed-voltage regulator for boards
> where the power is always on. The voltage level itself
> is optional. See:
> http://marc.info/?l=linux-netdev&m=131963332527416&w=2

Make sense, okay send the updated patch
>
> Other approaches is to use dummy regulators, or not
> call regulator_has_full_constraints(), which means the
> regulator core will provide dummy regulators anyways.
> See:
> http://marc.info/?l=linux-netdev&m=131973043527112&w=2
> http://marc.info/?l=linux-netdev&m=131975178703166&w=2
>
> Whole thread of discussion:
> http://marc.info/?l=linux-netdev&w=2&r=1&s=smsc911x&q=b
>
> Yours,
> Linus Walleij
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>



More information about the linux-arm-kernel mailing list