* David Brownell <[EMAIL PROTECTED]> [081126 13:09]:
> From: David Brownell <[EMAIL PROTECTED]>
>
> 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 <[EMAIL PROTECTED]>
> ---
> 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 [EMAIL PROTECTED]
> 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 [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html