Hi, On Tue, Aug 26, 2014 at 9:28 AM, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > Hi Lee, > > On Tue, Aug 26, 2014 at 10:22:05AM +0100, Lee Jones wrote: >> On Mon, 25 Aug 2014, Chris Zhong wrote: >> > On 08/20/2014 05:21 PM, Lee Jones wrote: >> > >On Wed, 20 Aug 2014, Chris Zhong wrote: >> > > >> > >>The RK808 chip is a power management IC for multimedia and handheld >> > >>devices. It contains the following components: >> > >> >> > >>- Regulators >> > >>- RTC >> > >> >> > >>The rk808 core driver is registered as a platform driver and provides >> > >>communication through I2C with the host device for the different >> > >>components. >> > >> >> > >>Signed-off-by: Chris Zhong <zyw@xxxxxxxxxxxxxx> >> > >>--- >> >> [...] >> >> > >>+ rk808->pdata = pdata; >> > >Remove pdata from 'struct rk808'. You can obtain it from dev. >> > >> > Can I keep this pdata in rk808, because it is used in the regulator driver. >> > The one obtain from dev maybe empty. >> >> If the one in dev is empty, you should populate that instead. > > No, drivers should not populate platform data in devices - they do not > own it (unlike drvdata). Platform data should be read-only so that if > one would unbind and then try to re-bind the driver we'd end up in > exactly same state as before. > > For DT systems we should be allocating platform data separately and make > sure we clean up after ourselves. Given Dmitry's advice it seems like Chris's old code (allocate pdata and store it in the driver's private structures) was correct. That also seems to match what I've seen other drivers do. Of course what Chris ended up doing was basically saying that "device tree" is required for rk808 and that you can't pass data into the driver using pdata (at least in v6 you can't specify "rockchip,system-power-controller" unless you're using device tree). To me that doesn't seem terrible. ...though he should probably finish what he started by: * Moving "struct rk808_board" so it's private to the regulator .c file * Don't even pretend you can get stuff from dev_get_platdata() in rk808-regulator.c * Add a dependency on "OF" in the Kconfig for rk808. -Doug -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html