Messages in this thread | | | Subject | Re: [warning: ugly, FYI] battery charging support for sharp sl-5500 | From | Richard Purdie <> | Date | Mon, 25 Jul 2005 16:06:57 +0100 |
| |
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/
| |