2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 11:44:01 +08:00
linux-next/include/linux/amba
Russell King 7cfe249475 ARM: AMBA: Add pclk support to AMBA bus infrastructure
Some platforms gate the pclk (APB - the bus - clock) to the peripherals
for power saving, along with the functional clock.  When devices are
accessed without pclk enabled, the kernel will oops.

This gives them two options:

1. Leave all clocks on all the time.
2. Attempt to gate pclk along with the functional clock.

(With some hardware, pclk and the functional clock are gated by a single
bit in a register.)

(1) has the disadvantage that it causes increased power usage, which is
bad news for battery operated devices.  (2) can lead to kernel oops if
registers are accessed without the functional clock being enabled.

So, introduce the apb_pclk signal in such a way existing drivers don't
need to be updated.  Essentially, this means we guarantee that:

1. pclk will be enabled whenever the driver is bound to a device -
   from probe() to remove() time.
2. pclk will also be enabled when reading the primecell IDs from the device.

In order to allow drivers to be incrementally updated to achieve greater
power savings, we provide two additional calls to allow drivers to
manage the pclk - amba_pclk_enable()/amba_pclk_disable().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-07-31 13:07:27 +01:00
..
bus.h ARM: AMBA: Add pclk support to AMBA bus infrastructure 2010-07-31 13:07:27 +01:00
clcd.h Video: ARM CLCD: Better fix for swapped IENB and CNTL registers 2010-03-14 19:42:44 +00:00
kmi.h
mmci.h ARM: 6033/1: ARM: MMCI: pass max frequency from platform 2010-04-14 16:08:18 +01:00
pl022.h spi/pl022: add support for the PL023 derivate 2010-05-25 00:23:14 -06:00
pl061.h ARM: 6003/1: removing compilation warning from pl061.h 2010-03-29 17:33:33 +01:00
pl093.h ARM: PL093: Header file for PL093 SSMC PrimeCell 2009-07-30 23:22:54 +01:00
pl330.h DMA: PL330: Add dma api driver 2010-05-23 20:28:19 -07:00
serial.h Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-14 13:42:43 -07:00