Re: backlight/ld9040.c: regulator control in the lcd driver
From: Kyungmin Park <kyungmin.park@samsung.com>
Date: 2011-12-02 10:14:24
Also in:
linux-arm-kernel
On 12/2/11, Linus Walleij [off-list ref] wrote:
On Fri, Dec 2, 2011 at 9:57 AM, Kyungmin Park [off-list ref] wrote:quoted
quoted
[leedonghwa][Me]quoted
quoted
+ 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&m1914562120725&w=2As 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&m1914562120667&w=2 http://marc.info/?l=linux-netdev&m1914562120690&w=2 http://marc.info/?l=linux-netdev&m1914562120725&w=2 http://marc.info/?l=linux-netdev&m1963332527416&w=2quoted
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&m1963332527416&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&m1973043527112&w=2 http://marc.info/?l=linux-netdev&m1975178703166&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@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel