Re: [warning: ugly, FYI] battery charging support for sharp sl-5500

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

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux