* 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

Reply via email to