[PATCH V2] S5PC210: universal: update support pmic for c210 universal board

Mark Brown broonie at opensource.wolfsonmicro.com
Fri Dec 24 12:35:32 EST 2010


On Fri, Dec 24, 2010 at 02:24:59PM +0900, Donghwa Lee wrote:

> +	select HAVE_SPARSE_IRQ
> +	select HAVE_GENERIC_HARDIRQS

I really would expect to see these controlled by the generic support for
the CPU or CPU architecture rather than by an individual machine -
they're properties of the core IRQ infrastructure for the system.

> +/* I2C5: PMICs LP3974, MAX8952 */
> +static struct regulator_consumer_supply max8952_consumer[] = {
> +	{
> +		.supply		= "varm_1.2v_c210",
> +	}, {
> +		.supply		= "vdd_arm",
> +	},

This looks very suspicious - you've got two supplies, both of which look
like the CPU core rail provided by the same regulator, one of which
looks like it's got the name of the supply hard coded into it.  What are
these two supplies exactly?

> +	.reg_data		= {
> +		.constraints	= {
> +			.name		= "VARM_1.2V",
> +			.min_uV		= 770000,
> +			.max_uV		= 1400000,
> +			.valid_ops_mask	= REGULATOR_CHANGE_VOLTAGE,

Interesting name for a supply that can change voltage :)

> +static struct regulator_consumer_supply lp3974_buck2_consumer[] = {
> +	{
> +		.supply		= "vg3d_1.2v_c210",
> +	},
> +};

This and most of the other consumers you're defining look like they're
actually the names for the relevant rails rather than supplies for
individual devices.  You shouldn't do this, supplies should be actual
supplies on individual consumers - probably most of these consumers
should just be removed.  You can name the supplies for UI purposes using
the .name field in the constraints.

> +static struct regulator_consumer_supply lp3974_ldo13_consumer[] = {
> +	REGULATOR_SUPPLY("vhsic", NULL),
> +};
> +
> +static struct regulator_consumer_supply lp3974_ldo14_consumer[] = {
> +	{
> +		.supply		= "cam_i_host_1.8v",
> +	},

There's also a mix of regulator_consumer_supply and open coding, please
be consistent.

> +static struct regulator_init_data lp3974_buck1_data = {
> +	.constraints	= {
> +		.name		= "VINT_1.1V",
> +		.min_uV		= 750000,
> +		.max_uV		= 1500000,
> +		.valid_ops_mask	= REGULATOR_CHANGE_VOLTAGE |
> +			REGULATOR_CHANGE_STATUS,

Can you really turn off the VINT regulator at runtime?  I'd expect that
to crash the processor.  Similarly for many of the other supplies.



More information about the linux-arm-kernel mailing list