Re: [patch 2.6.28-rc6-omap] twl4030-power: minor cleanup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* David Brownell <david-b@xxxxxxxxxxx> [081126 13:09]:
> From: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
> 
> Minor cleanups to the twl4030 power script support:  move its
> init code out of the "add children" call (it adds no children!),
> and move the power bus messages earlier in the header file to
> unclutter the platform data section and since they're not used
> only for those scripts.

Pushing to l-o tree.

Tony

> Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/mfd/twl4030-core.c  |    7 +--
>  include/linux/i2c/twl4030.h |   94 +++++++++++++++++++++---------------------
>  2 files changed, 53 insertions(+), 48 deletions(-)
> 
> --- a/drivers/mfd/twl4030-core.c
> +++ b/drivers/mfd/twl4030-core.c
> @@ -503,9 +503,6 @@ add_children(struct twl4030_platform_dat
>  			return PTR_ERR(child);
>  	}
>  
> -	if (twl_has_power() && pdata->power)
> -		twl4030_power_init(pdata->power);
> -
>  	if (twl_has_rtc()) {
>  		/*
>  		 * REVISIT platform_data here currently might expose the
> @@ -788,6 +785,10 @@ twl4030_probe(struct i2c_client *client,
>  	/* setup clock framework */
>  	clocks_init();
>  
> +	/* load power event scripts */
> +	if (twl_has_power() && pdata->power)
> +		twl4030_power_init(pdata->power);
> +
>  	/* Maybe init the T2 Interrupt subsystem */
>  	if (client->irq
>  			&& pdata->irq_base
> --- a/include/linux/i2c/twl4030.h
> +++ b/include/linux/i2c/twl4030.h
> @@ -168,7 +168,7 @@ int twl4030_i2c_read(u8 mod_no, u8 *valu
>  /*----------------------------------------------------------------------*/
>  
>  /*
> - * Multichannel ADC register offsets (use TWL4030_MODULE_MADC)
> + * Monitoring ADC register offsets (use TWL4030_MODULE_MADC)
>   * ... SIH/interrupt only
>   */
>  
> @@ -218,6 +218,53 @@ int twl4030_i2c_read(u8 mod_no, u8 *valu
>  
>  /*----------------------------------------------------------------------*/
>  
> +/* Power bus message definitions */
> +
> +#define DEV_GRP_NULL		0x0
> +#define DEV_GRP_P1		0x1
> +#define DEV_GRP_P2		0x2
> +#define DEV_GRP_P3		0x4
> +
> +#define RES_GRP_RES		0x0
> +#define RES_GRP_PP		0x1
> +#define RES_GRP_RC		0x2
> +#define RES_GRP_PP_RC		0x3
> +#define RES_GRP_PR		0x4
> +#define RES_GRP_PP_PR		0x5
> +#define RES_GRP_RC_PR		0x6
> +#define RES_GRP_ALL		0x7
> +
> +#define RES_TYPE2_R0		0x0
> +
> +#define RES_TYPE_ALL		0x7
> +
> +#define RES_STATE_WRST		0xF
> +#define RES_STATE_ACTIVE	0xE
> +#define RES_STATE_SLEEP		0x8
> +#define RES_STATE_OFF		0x0
> +
> +/*
> + * Power Bus Message Format ... these can be sent individually by Linux,
> + * but are usually part of downloaded scripts that are run when various
> + * power events are triggered.
> + *
> + *  Broadcast Message (16 Bits):
> + *    DEV_GRP[15:13] MT[12]  RES_GRP[11:9]  RES_TYPE2[8:7] RES_TYPE[6:4]
> + *    RES_STATE[3:0]
> + *
> + *  Singular Message (16 Bits):
> + *    DEV_GRP[15:13] MT[12]  RES_ID[11:4]  RES_STATE[3:0]
> + */
> +
> +#define MSG_BROADCAST(devgrp, grp, type, type2, state) \
> +	( (devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \
> +	| (type) << 4 | (state))
> +
> +#define MSG_SINGULAR(devgrp, id, state) \
> +	((devgrp) << 13 | 0 << 12 | (id) << 4 | (state))
> +
> +/*----------------------------------------------------------------------*/
> +
>  struct twl4030_bci_platform_data {
>  	int *battery_tmp_tbl;
>  	unsigned int tblsize;
> @@ -281,60 +328,17 @@ struct twl4030_script {
>  	struct twl4030_ins *script;
>  	unsigned size;
>  	u8 flags;
> -};
>  #define TRITON_WRST_SCRIPT	(1<<0)
>  #define TRITON_WAKEUP12_SCRIPT	(1<<1)
>  #define TRITON_WAKEUP3_SCRIPT	(1<<2)
>  #define TRITON_SLEEP_SCRIPT	(1<<3)
> +};
>  
>  struct twl4030_power_data {
>  	struct twl4030_script **scripts;
>  	unsigned size;
>  };
>  
> -/* Power bus message definitions */
> -
> -#define DEV_GRP_NULL		0x0
> -#define DEV_GRP_P1		0x1
> -#define DEV_GRP_P2		0x2
> -#define DEV_GRP_P3		0x4
> -
> -#define RES_GRP_RES		0x0
> -#define RES_GRP_PP		0x1
> -#define RES_GRP_RC		0x2
> -#define RES_GRP_PP_RC		0x3
> -#define RES_GRP_PR		0x4
> -#define RES_GRP_PP_PR		0x5
> -#define RES_GRP_RC_PR		0x6
> -#define RES_GRP_ALL		0x7
> -
> -#define RES_TYPE2_R0		0x0
> -
> -#define RES_TYPE_ALL		0x7
> -
> -#define RES_STATE_WRST		0xF
> -#define RES_STATE_ACTIVE	0xE
> -#define RES_STATE_SLEEP		0x8
> -#define RES_STATE_OFF		0x0
> -
> -/*
> -*	Power Bus Message Format
> -*
> -*	Broadcast Message (16 Bits)
> -*	DEV_GRP[15:13] MT[12]  RES_GRP[11:9]  RES_TYPE2[8:7] RES_TYPE[6:4]
> -*	RES_STATE[3:0]
> -*
> -*	Singular Message (16 Bits)
> -*	DEV_GRP[15:13] MT[12]  RES_ID[11:4]  RES_STATE[3:0]
> -*
> -*/
> -
> -#define MSG_BROADCAST(devgrp, grp, type, type2, state) \
> -	(devgrp << 13 | 1 << 12 | grp << 9 | type2 << 7 | type << 4 | state)
> -
> -#define MSG_SINGULAR(devgrp, id, state) \
> -	(devgrp << 13 | 0 << 12 | id << 4 | state)
> -
>  struct twl4030_platform_data {
>  	unsigned				irq_base, irq_end;
>  	struct twl4030_bci_platform_data	*bci;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux