lkml.org 
[lkml]   [2005]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [warning: ugly, FYI] battery charging support for sharp sl-5500
    From
    Date
    On Mon, 2005-07-25 at 07:46 +0200, Pavel Machek wrote:
    > I took battery charging code from sharp and placed it in
    > arch/arm/mach-sa1100/battery-collie.c (hope that's good place...). It
    > still does not link, and will need complete rewrite, but... If you
    > have done this already please let me know.
    >
    > #define CF_BUF_CTRL_BASE 0xF0800000
    > #define SCP_REG(adr) (*(volatile unsigned short*)(CF_BUF_CTRL_BASE+(adr)))
    >
    > #define SCP_MCR 0x00
    > #define SCP_CDR 0x04
    > #define SCP_CSR 0x08
    > #define SCP_CPR 0x0C
    > #define SCP_CCR 0x10
    > #define SCP_IRR 0x14
    > #define SCP_IRM 0x14
    > #define SCP_IMR 0x18
    > #define SCP_ISR 0x1C
    > #define SCP_GPCR 0x20
    > #define SCP_GPWR 0x24
    > #define SCP_GPRR 0x28
    > #define SCP_REG_MCR SCP_REG(SCP_MCR)
    > #define SCP_REG_CDR SCP_REG(SCP_CDR)
    > #define SCP_REG_CSR SCP_REG(SCP_CSR)
    > #define SCP_REG_CPR SCP_REG(SCP_CPR)
    > #define SCP_REG_CCR SCP_REG(SCP_CCR)
    > #define SCP_REG_IRR SCP_REG(SCP_IRR)
    > #define SCP_REG_IRM SCP_REG(SCP_IRM)
    > #define SCP_REG_IMR SCP_REG(SCP_IMR)
    > #define SCP_REG_ISR SCP_REG(SCP_ISR)
    > #define SCP_REG_GPCR SCP_REG(SCP_GPCR)
    > #define SCP_REG_GPWR SCP_REG(SCP_GPWR)
    > #define SCP_REG_GPRR SCP_REG(SCP_GPRR)

    You'll find the scoop driver deals with the above
    (arch/arm/common/scoop.c).

    > #define FLASH_MEM_BASE 0xe8ffc000
    > #define FLASH_DATA(adr) (*(volatile unsigned int*)(FLASH_MEM_BASE+(adr)))
    > #define FLASH_DATA_F(adr) (*(volatile float32 *)(FLASH_MEM_BASE+(adr)))
    > #define FLASH_MAGIC_CHG(a,b,c,d) ( ( d << 24 ) | ( c << 16 ) | ( b << 8 ) | a )
    >
    > // AD
    > #define FLASH_AD_MAJIC FLASH_MAGIC_CHG('B','V','A','D')
    > #define FLASH_AD_MAGIC_ADR 0x30
    > #define FLASH_AD_DATA_ADR 0x34

    and arch/arm/common/sharpsl_param.c with these.

    > #define IRQ_GPIO_CO IRQ_GPIO20
    > #define IRQ_GPIO_AC_IN IRQ_GPIO1

    There will (or if not, there should) be an equivalent in collie.h for
    the above.

    I have similar problems with the corgi battery driver which is probably
    even more of a mess than this. My conclusion is the whole lot needs
    rewriting in a nice fashion before it can be included in mainline. My
    work so far on the corgi code is here:

    http://www.rpsys.net/openzaurus/patches/corgi_power-r24.patch
    http://www.rpsys.net/openzaurus/patches/corgi_power1-r1.patch

    I'm making progress in areas but I'm not sure how much can be shared
    between devices. My plan is to split the above into two sections, a
    battery driver and some power management code. The powermanagement code
    can probably then make mainline. The battery driver still needs a lot of
    work.

    --
    Richard



    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-07-25 17:11    [W:0.023 / U:0.156 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site