|
|
Re: [RFC 00/14] Generic clk for Orion platforms. |
On Tue, Mar 06, 2012 at 07:30:56AM +0100, Andrew Lunn wrote: > This patch set starts the process of changing Orion based platforms to > use the generic clk framework. The first patch fixes compile problems > with the framework, and is expected to be dropped once fixed upstream. > Then clks are added. This is a fixed rate clk for tclk and for > kirkwood, most of the gated clocks also get a clk. The following > patches then modified the drivers to make use of these clocks, > getting, prepareing, enabling at probe time, and disableing, > unprepareing, and putting at remove time. Rather than pass the clock > frequency as platform_data, the driver now uses clk_get_rate(). This > results in some platform_data structures becoming redundant, and so > are removed. Awesome, thanks for posting! > TODO: > > 0) Cleanup the white space changes, and hunks in the wrong patches. It would be helpful to break out code cleanup as well. eg spi_clock_fix removal, sound platform data removal, and anything else I didn't see on initial read through. > 1) PCIe needs adopting to use clks. > 2) Strip out all references to kirkwood_clk_ctrl > 3) Find a solution for turning off unused clks - Probably needs > framework support, which Mike has already suggested. I'm assuming the driver(s) will increment a reference, so when it reaches zero, the framework would call a clk_gate hook. > 4) Find a solution for tuning off unused SATA and PCIe PHYs. Maybe > use the unprepare() method, but the current basic clk providers > don't support this. It looks like each SATA and PCIe PHY has it's own clock and it's own shutdown (kirkwood_clock_gate()). If the return value of unprepare indicated a clock was gated (all references gone), then the driver could shut down the PHY. Or, am I missing something? > If we are willing to accept a regression in power usage, we could skip > 3) and 4) for the moment in order to get this code into use. That > would help the device tree work which benefits from not having to deal > with clock frequencies when setting up device driver bindings. > > Boot tested on kirkwood. No testing what so ever on other Orion > platforms. > > Based on > > git://git.linaro.org/people/mturquette/linux.git v3.3-rc5-clkv5 > > > Andrew Lunn (14): > [clk] Fix compile errors in DEFINE_CLK_GATE() > ARM: Orion: Add clocks using the generic clk infrastructure. > Arm: Orion: spi: Add clk/clkdev support. > orion: spi: remove enable_clock_fix which is not used > Arm: Orion: eth: Add clk/clkdev support. > ARM: Orion: wdt: Add clk/clkdev support > ARM: Orion: uart: Get the clock rate via clk_get_rate(). > ARM: Kirkwood: Remove tclk from kirkwood_asoc_platform_data. > MV SATA: Add per channel clk/clkdev support. > [Orion ehci] Add support for enabling clocks > [Orion nand] Add support for clk, if there is one. > [Orion sdio] Add support for clk. > [Orion crypto] Add support for clk > [Orion xor] Add support for clk > > arch/arm/Kconfig | 3 + > arch/arm/mach-dove/common.c | 37 ++++--- > arch/arm/mach-dove/dove-db-setup.c | 1 - > arch/arm/mach-kirkwood/common.c | 119 +++++++++++++++++---- > arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 16 +++ > arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c | 1 - > arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | 1 - > arch/arm/mach-kirkwood/t5325-setup.c | 1 - > arch/arm/mach-kirkwood/tsx1x-common.c | 1 - > arch/arm/mach-mv78xx0/common.c | 44 +++++--- > arch/arm/mach-orion5x/common.c | 26 ++++- > arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 1 - > arch/arm/plat-orion/common.c | 88 ++++++++------- > arch/arm/plat-orion/include/plat/audio.h | 1 - > arch/arm/plat-orion/include/plat/common.h | 26 +++-- > arch/arm/plat-orion/include/plat/orion_wdt.h | 18 --- > drivers/ata/sata_mv.c | 43 +++++++- > drivers/clk/clk.c | 1 + > drivers/crypto/mv_cesa.c | 15 +++ > drivers/dma/mv_xor.c | 16 +++ > drivers/dma/mv_xor.h | 1 + > drivers/mmc/host/mvsdio.c | 14 +++ > drivers/mtd/nand/orion_nand.c | 18 +++ > drivers/net/ethernet/marvell/mv643xx_eth.c | 46 ++++++-- > drivers/spi/spi-orion.c | 37 +++++-- > drivers/usb/host/ehci-orion.c | 16 +++ > drivers/watchdog/orion_wdt.c | 18 ++- > include/linux/clk-private.h | 4 +- > include/linux/mv643xx_eth.h | 1 - > include/linux/spi/orion_spi.h | 18 --- > 30 files changed, 443 insertions(+), 189 deletions(-) > delete mode 100644 arch/arm/plat-orion/include/plat/orion_wdt.h > delete mode 100644 include/linux/spi/orion_spi.h > > -- > 1.7.9.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
[Linux ARM (vger)] [Linux ARM MSM] [Linux Omap] [Linux Arm] [Linux Tegra] [Fedora ARM] [eCos] [Linux Fastboot] [Gcc Help] [Git] [DCCP] [IETF Announce] [Security] [PDAs] [Linux] [Linux MIPS] [Yosemite Campsites] [Photos]
![]() |
![]() |