From: lee.jones@linaro•org (Lee Jones)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 14/15] drivers/regulators: Enable the ab8500 for Device Tree
Date: Mon, 14 May 2012 16:49:21 +0100 [thread overview]
Message-ID: <4FB12981.8050603@linaro.org> (raw)
In-Reply-To: <20120507170832.GO17002@opensource.wolfsonmicro.com>
Hi Mark,
Looking at this now.
>> +static __devinit int
>> +ab8500_regulator_of_probe(struct platform_device *pdev, struct device_node *np)
>> +{
>> + struct regulator_init_data *ab8500_regulator;
>> + struct device_node *child;
>> + int err, value, i, id = 0;
>> +
>> + /* Initialise regulator registers to platform specific values. */
>> + for (i = 0; i< ARRAY_SIZE(ab8500_reg_init); i++) {
>> + err = of_property_read_u32(np, ab8500_reg_init[i].of_name,&value);
>> + if (err< 0)
>> + return err;
>> +
>> + err = ab8500_regulator_init_registers(pdev, i, value);
>> + if (err< 0)
>> + return err;
>
> You should be using of_regulator_match() for this (I think it's supposed
> to do an equivalent job...) rather than open coding.
I've ripped this out completely and the code appears to continue be
fully functional. Happy days! :)
>> + /* Register each ab8500 regulator found in the Device Tree. */
>> + for_each_child_of_node(np, child) {
>> + ab8500_regulator = of_get_regulator_init_data(&pdev->dev, child);
>
> Definitely don't do this - you should unconditionally register all the
> regulators that physically exist, this allows users to inspect their
> state even if they aren't used.
>
> It's possible the original driver has this bug (I didn't check but
The original driver places each of the registers inside a structure
within the driver itself and recursively registers them from there. The
constraints are united with the correct element using #defines.
Can't we just assume that all of the regulators will be put into the
Device Tree? As this is what I'll be doing.
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2012-05-14 15:49 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-04 18:23 [PATCH 00/15] DT enablement for Snowball Lee Jones
2012-05-04 18:23 ` [PATCH 01/15] i2c/busses: Add Device Tree support to the Nomadik I2C driver Lee Jones
2012-05-04 20:02 ` Arnd Bergmann
2012-05-04 21:27 ` Lee Jones
2012-05-05 6:17 ` Lee Jones
2012-05-09 8:42 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 02/15] ARM: ux500: Remove unused i2c platform_data initialisation code Lee Jones
2012-05-09 8:46 ` Linus Walleij
2012-05-09 10:22 ` Lee Jones
2012-05-10 11:24 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 03/15] ARM: ux500: Provide auxdata to be used as name base clock search for nmk-i2c Lee Jones
2012-05-09 8:48 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 04/15] ARM: ux500: CONFIG: Compile in support for leds-gpio Lee Jones
2012-05-09 8:49 ` Linus Walleij
2012-05-09 10:23 ` Lee Jones
2012-05-10 11:25 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 05/15] ARM: ux500: Enable the user LED on Snowball via Device Tree Lee Jones
2012-05-09 8:50 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 06/15] mfd/ab8500: Remove confusing ab8500-i2c file and merge into ab8500-core Lee Jones
2012-05-04 20:25 ` Arnd Bergmann
2012-05-04 21:24 ` Lee Jones
2012-05-05 6:30 ` Lee Jones
2012-05-07 16:54 ` Mark Brown
2012-05-09 12:20 ` Linus Walleij
2012-05-14 8:41 ` Lee Jones
2012-05-14 9:11 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 07/15] drivers/power: Carry out platform_data error checking on ab8500 devices Lee Jones
2012-05-09 8:51 ` Linus Walleij
2012-05-09 10:24 ` Lee Jones
2012-05-04 18:23 ` [PATCH 08/15] ARM: ux500: PRCMU related configuration and layout corrections for Device Tree Lee Jones
2012-05-09 8:53 ` Linus Walleij
2012-05-09 10:27 ` Lee Jones
2012-05-10 11:27 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 09/15] drivers/mfd: Enable Device Tree support for the db8500-prcmu Lee Jones
2012-05-09 8:56 ` Linus Walleij
2012-05-09 14:30 ` Samuel Ortiz
2012-05-04 18:23 ` [PATCH 10/15] drivers/mfd: db8500-prcmu: Add support for regulator supply for nmk-i2c.4 Lee Jones
2012-05-09 8:56 ` Linus Walleij
2012-05-09 14:31 ` Samuel Ortiz
2012-05-04 18:23 ` [PATCH 11/15] drivers/mfd: Enable Device Tree for ab8500-core driver Lee Jones
2012-05-09 9:02 ` Linus Walleij
2012-05-09 10:28 ` Lee Jones
2012-05-09 11:18 ` Mark Brown
2012-05-09 11:56 ` Arnd Bergmann
2012-05-10 10:26 ` Russell King - ARM Linux
2012-05-10 12:27 ` Linus Walleij
2012-05-11 10:12 ` Samuel Ortiz
2012-05-14 8:45 ` Lee Jones
2012-05-04 18:23 ` [PATCH 12/15] drivers/regulator: ab8500: Split up probe() into manageable pieces Lee Jones
2012-05-07 16:58 ` Mark Brown
[not found] ` <CAF2Aj3h7pgh=Kbt+M5Xd_RDRbJN7K+WbaH1+8nM2Eakb1QNpsg@mail.gmail.com>
2012-05-07 18:44 ` Mark Brown
2012-05-08 11:08 ` Lee Jones
2012-05-04 18:23 ` [PATCH 13/15] ARM: ux500: Add support for ab8500 regulators into the Device Tree Lee Jones
2012-05-09 9:04 ` Linus Walleij
2012-05-04 18:23 ` [PATCH 14/15] drivers/regulators: Enable the ab8500 for " Lee Jones
2012-05-07 17:08 ` Mark Brown
2012-05-08 12:04 ` Lee Jones
2012-05-08 12:19 ` Mark Brown
2012-05-08 12:38 ` Lee Jones
2012-05-08 13:34 ` Mark Brown
2012-05-08 14:54 ` Lee Jones
2012-05-08 14:57 ` Mark Brown
2012-05-08 17:00 ` Lee Jones
2012-05-08 13:48 ` Arnd Bergmann
2012-05-08 14:29 ` Mark Brown
2012-05-08 14:36 ` Arnd Bergmann
2012-05-08 14:44 ` Mark Brown
2012-05-14 15:49 ` Lee Jones [this message]
2012-05-14 16:18 ` Arnd Bergmann
2012-05-14 17:01 ` Mark Brown
2012-05-14 15:57 ` Lee Jones
2012-05-14 16:39 ` Mark Brown
2012-05-04 18:23 ` [PATCH 15/15] ARM: ux500: Disable platform setup of the ab8500 when DT is enabled Lee Jones
2012-05-09 9:05 ` Linus Walleij
2012-05-04 20:26 ` [PATCH 00/15] DT enablement for Snowball Arnd Bergmann
[not found] <CAF2Aj3gHaha9mO4gKf0ReQc-wR7wpomf_9m59AfAUNBr2fLyCQ@mail.gmail.com>
2012-05-14 18:06 ` [PATCH 14/15] drivers/regulators: Enable the ab8500 for Device Tree Mark Brown
2012-05-14 20:38 ` Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FB12981.8050603@linaro.org \
--to=lee.jones@linaro$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox