Re: [PATCH v4 2/5] mfd: lm3533: Support initialization from Device Tree
From: Lee Jones <hidden>
Date: 2017-01-05 07:46:16
Also in:
linux-devicetree, linux-iio, lkml
On Wed, 04 Jan 2017, Bjorn Andersson wrote:
On Wed 04 Jan 03:54 PST 2017, Lee Jones wrote:quoted
On Mon, 26 Dec 2016, Bjorn Andersson wrote:quoted
From: Bjorn Andersson <redacted> Implement support for initialization of the lm3533 driver core and probing child devices from Device Tree.[..]quoted
quoted
@@ -512,6 +514,11 @@ static int lm3533_device_init(struct lm3533 *lm3533) lm3533_device_bl_init(lm3533); lm3533_device_led_init(lm3533); + if (lm3533->dev->of_node) { + of_platform_populate(lm3533->dev->of_node, NULL, NULL, + lm3533->dev); + }I think it's save to call of_platform_populate(), even if !of_node. It will just fail and return an error code, which you are ignoring anyway.I thought so too, but that's apparently how you trigger probing children of the root node. So we're stuck with a conditional.
Ah, so this is to protect against the case where DT is present, but a node for this device is not (or is disabled), so is left unprobed. Then the bind is initiated via I2C? Or something else?
quoted
quoted
static int lm3533_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) {[..]quoted
quoted
+ if (i2c->dev.of_node) {I'd prefer this check to be placed in lm3533_pdata_from_of_node(). Just return silently if !dev->of_node.I agree, will update this.quoted
quoted
+ ret = lm3533_pdata_from_of_node(lm3533->dev); + if (ret < 0) + return ret; + } + return lm3533_device_init(lm3533); }Regards, Bjorn
-- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog