[PATCH] pxa/hx4700: Reduce sleep mode power consumption by 35%
Paul Parsons
lost.distance at yahoo.com
Sat Mar 10 17:05:08 EST 2012
--- On Sat, 10/3/12, Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:
> > Drive the two Bluetooth UART output GPIOs
> (GPIO43_BTUART_TXD,
> > GPIO45_BTUART_RTS) LOW during sleep mode instead of
> HIGH. This
> > reduces sleep mode power consumption from approximately
> 46 mA/h
> > to approximately 30 mA/h.
>
> What are you saying here? I think you're confusing
> power with current.
> Also, current is measured in amps, not amps per second (or a
> scaled
> version of that.)
Apologies for the sloppy nomenclature; evidently electronics is not my
thing.
The figures I quoted were the reduction in accumulated current (charge)
over time. For example in the second case, the charge reduced from 1853500
µAh to 1782750 µAh over 8610 seconds = 29.58 mA.
If that seems high it is: it should be nearer 4.7 mA.
> > /* BTUART */
> > GPIO42_BTUART_RXD,
> > - GPIO43_BTUART_TXD,
> > + GPIO43_GPIO | MFP_AF2 |
> MFP_LPM_DRIVE_LOW,
>
> I don't believe that's right.
>
> This expands to:
>
> MFP_CFG_IN(GPIO43, AF0) | MFP_AF2 |
> MFP_LPM_DRIVE_LOW
>
> and:
>
> (MFP_CFG_DEFAULT & ~(MFP_AF_MASK |
> MFP_DIR_MASK)) |
> (MFP_PIN(MFP_PIN_GPIO43) | MFP_AF0 |
> MFP_DIR_IN)
> | MFP_AF2 | MFP_LPM_DRIVE_LOW
>
> Note the presence of both MFP_AF2 and MFP_AF0 in there.
>
> The default for GPIO43_BTUART_TXD is:
>
> MFP_CFG_OUT(GPIO43, AF2, DRIVE_HIGH)
>
> and I'd suggest defining a new GPIO43_BTUART_TXD_LPM_LOW to
> cover your
> case.
It wasn't right but it evaluated to the correct value because MFP_AF0 = 0.
What I intended was: MFP_PIN_GPIO43 | MFP_AF2 | MFP_LPM_DRIVE_LOW
But I'll add the new values to <mach/mfp-pxa27x.h> if that's preferable.
Oddly the absence of direction didn't seem to matter; GPIO43 and GPIO45
default to input here, yet are still being driven as outputs in low power
mode contrary to what the manual says.
More information about the linux-arm-kernel
mailing list