On Tue, 26 Aug 2014, Chris Zhong wrote:
On 08/26/2014 06:20 PM, Lee Jones wrote:I'm still a little confused. I see it being populated in the MFD
On Tue, 26 Aug 2014, Chris Zhong wrote:For save some properties,
On 08/26/2014 05:22 PM, Lee Jones wrote:If client->dev.pdata is NULL, yes.
On Mon, 25 Aug 2014, Chris Zhong wrote:So, should I malloc a pada, and assign it to client->dev?
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>
---
If the one in dev is empty, you should populate that instead.Can I keep this pdata in rk808, because it is used in the regulator driver.+ rk808->pdata = pdata;Remove pdata from 'struct rk808'. You can obtain it from dev.
The one obtain from dev maybe empty.
But actually, I have more important questions that need to be answered
first. Ones which I would normally be able to answer myself if the
patch-set had been sent as one (i.e. threaded) instead of as
individual patches:
- What are you using pdata for?
like "rockchip,system-power-controller" in MFD
and some regulator properties in regulator/rk808...
- Where is pdata populated?It is populated in probe in mfd/rk808.c
actually, I copy it from tps65910.c
- Where is pdata used?pdata is used in mfd and regulator
driver, then I only see the attributes populated in the MFD driver
used in the MFD driver and nowhere else? I do see other attributes
used in the regulator driver i.e. .of_node[], but these are then used
only in the regulator driver, thus they shouldn't really be pdata.
Let me put it another way:
struct rk808_board {
+ int irq;
+ int irq_base;
+ int wakeup;
+ bool pm_off;
+ struct regulator_init_data *rk808_init_data[rk808_NUM_REGULATORS];
+ struct device_node *of_node[rk808_NUM_REGULATORS];
+ int pmic_sleep_gpio;
+ unsigned int dcdc_slp_voltage[3]; /* buckx_voltage in uV */
+ unsigned int ldo_slp_voltage[7];
+};
For each of the above:
- Can it be passed from platform data i.e. arch/<arch>/{plat,mach}-*?
- Can it use local (not passed from driver to driver) variable instead?
If the answer to the first question is 'no' and/or if the answer to
the second question is 'yes', then it shouldn't be platform data.