summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-12-04ARM: shmobile: r8a7778: add SDHI clock support for DTKuninori Morimoto
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: r8a7778: add MMCIF clock support for DTKuninori Morimoto
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: Select GPIO in case of the r7s72100 SoCMagnus Damm
The r7s72100 contains GPIO controllers so make sure the GPIO subsystem can be built by selecting ARCH_WANT_OPTIONAL_GPIOLIB. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: r8a73a4: don't use named irq for DMAEngineKuninori Morimoto
sh-dma-engine driver doesn't care irq name. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Acked-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: r8a7791 GPIO platform device supportMagnus Damm
Add GPIO controller platform devices for the r8a7791 SoC. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: Select GPIO in case of the r8a7791 SoCMagnus Damm
Make it possible to build GPIO on r8a7791. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: r8a7791 PFC platform device supportMagnus Damm
Add a platform device for the r8a7791 PFC device. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: Select IRQC in case of the r8a7791 SoCMagnus Damm
The r8a7791 contains IRQC hardware so make sure the driver gets built by selecting RENESAS_IRQC. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: r8a7779: add I2C clock for DTKuninori Morimoto
10e8d4f6dddb0f9dc408c2f2bde8399b243a42ca (ARM: mach-shmobile: r8a7779: Minimal setup using DT) added I2C driver for DT, but it didn't add clock. This patch adds missing clock for I2C Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-04ARM: shmobile: r8a7778: add I2C clock for DTKuninori Morimoto
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2013-12-03Merge tag 'mvebu-dt-3.14' of git://git.infradead.org/linux-mvebu into next/dtOlof Johansson
From Jason Cooper: mvebu DT changes for v3.14 - mvebu: - remove unneeded OS-specific properties from led nodes - add NAND controller to Armada boards - add sata leds to readynas 104 - add gpio-poweroff to readynas duo v2 - kirkwood: - comment cleanup in sheevaplug files - default pinctrl for sdio - sdio in guruplug is non-removable - orion5x: - typo fix - dove: - typo fix - add PMU interrupt controller and RTC interrupt via same * tag 'mvebu-dt-3.14' of git://git.infradead.org/linux-mvebu: ARM: Dove: Add RTC interrupt via PMU interrupt controller. ARM: Dove: Add DT node for PMU interrupt controller. ARM: mvebu: Add DT entry for ReadyNAS Duo v2 to use gpio-poweroff driver ARM: mvebu: Add RN104 SATA LEDs driven via NXP PCA9554 I2C to GPIO muxer ARM: kirkwood: mark guruplug sdio as non-removable ARM: kirkwood: provide pinctrl default to sdio nodes ARM: dove: Fix typo in device_type property of phy node ARM: orion5x: Fix typo in device_type property of phy node ARM: mvebu: Enable NAND controller in Armada 370 Mirabox ARM: mvebu: Enable NAND controller in Armada XP GP board ARM: mvebu: Add support for NAND controller in Armada 370/XP ARM: kirkwood: Cleanup comments in Sheevaplug dts files ARM: mvebu: dts: remove unneeded linux,default-state from led nodes Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03Merge tag 'mvebu-soc-3.14' of git://git.infradead.org/linux-mvebu into ↵Olof Johansson
next/cleanup From Jason Cooper: mvebu soc changes for v3.14 - orion: - remove IRQF_DISABLED - directly include some .h files - mvebu: - remove some sparse warnings - orion5x: - include cleanup - warning removal for C=1 - kirkwood: - remove legacy clock workarounds - stop rpinting a TCLK value of 0 for DT boards - dove: - warning removal for C=1 * tag 'mvebu-soc-3.14' of git://git.infradead.org/linux-mvebu: ARM: mvebu: fix some sparse warnings ARM: kirkwood: stop printk TCLK value at boot for DT boards ARM: orion5x: drop unused include from common.c ARM: Dove: Fix compiler warnings with C=1 builds ARM: Orion5x: Fix warnings when using C=1. ARM: Orion: Add missing includes ARM: kirkwood: remove lagacy clk workarounds arm: plat-orion: remove deprecated IRQF_DISABLED Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03Merge tag 'renesas-cleanup-for-v3.14' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup From Simon Horman: Renesas ARM based SoC cleanups for v3.14 * Tidy up clock table order for r7s72100, r8a7779, r8a7779, r8a7790, sh7372 and sh73a0 SoCs. * Tidy up camera-rcar header for r8a7779 SoC * Tidy up registration of VIN on r8a7779 SoC * Tidy up PFC registration on r8a7790 SoC * Correct typo in clocks for r8a7790 SoC * Don't use named resources for IPMMU, I2C and TMU on sh73a0 SoC * Don't use named resources for MMCIF and SDHI on ape6evm board * Don't use named resources for MMCIF on lager board * Tidy up device registration on lager board * Tidy up headers for bockw board * tag 'renesas-cleanup-for-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: sh7372: tidyup clock table order ARM: shmobile: r7s72100: tidyup clock table order ARM: shmobile: sh73a0: tidyup clock table order ARM: shmobile: r8a7779: cleanup registration of sh_eth ARM: shmobile: r8a7790: Correct typo in clocks ARM: shmobile: r8a7779: camera-rcar header cleanup ARM: shmobile: Add r8a7790_register_pfc() function ARM: shmobile: Cosmetic update of Lager DT Reference ARM: shmobile: r8a7779: cleanup registration of VIN ARM: shmobile: bockw: header cleanup ARM: shmobile: sh73a0: don't use named resource for IPMMU ARM: shmobile: sh73a0: don't use named resource for I2C ARM: shmobile: sh73a0: don't use named resource for TMU ARM: shmobile: lager: don't use named resource for MMCIF ARM: shmobile: ape6evm: don't use named resource for SDHI ARM: shmobile: ape6evm: don't use named resource for MMCIF Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03Merge tag 'ux500-devicetree-v3.14-1' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt From Linus Walleij: Ux500 device tree patches for v3.14, take one: - Fix up tc3589x bindings so this chip works again. - Remove SSP platform devices, as we now boot from device tree exclusively. - Delete surplus AB8500/DB8500 platform data, not obtained from the device tree. - Add DMA config for the MSP devices. - A series of 21 patches moving pin control config for the on-chip Nomadik pin controller from the board file to the device tree, step by step. - Two patches to the STE DMA40 driver regarding the high-prio DMA channel so this can be moved to the device tree. Both have Vinod's ACK. - Decommission of the non-device tree boot path for the timer initialization code. - Deletion of the non-devicetree probe path from the MTU timer driver, as all platforms using it are now using device tree. This has Daniel Lezcano's ACK. * tag 'ux500-devicetree-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: (39 commits) ARM: ux500: decomission custom SMP TWD timer init clksrc: delete nomadik MTU non-DT boot path ARM: ux500: decomission the non-DT MTU init sequence dma: ste_dma40: Parse flags property for new 'high priority channel' request dma: ste_dma40: Expand DT binding to accept 'high-priority channel' flag ARM: ux500: Remove checking for DT during timer init ARM: ux500: Clean-up legacy extern prototype ARM: ux500: Remove unused call to register AMBA devices ARM: ux500: Clean-up non-DT IRQ initialisation pinctrl: nomadik: decomission non-DT boot path pinctrl: nomadik: move platform data handling into driver ARM: ux500: get rid of unused header ARM: ux500: delete Nomadik pinctrl AUXDATA ARM: ux500: delete remnant pin config macros ARM: ux500: move snowball pin configs to device tree ARM: ux500: move snowball LED pin control to device tree ARM: ux500: convert Snowball SPI pin reference ARM: ux500: move snowball ethernet config to device tree ARM: ux500: move HREFv60plus pin configs to device tree ARM: ux500: move final HREFv60 LCD pins to device tree ... Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03arm: dts: socfpga: Change some clocks of gate-clk type to perip-clkDinh Nguyen
Some of the clocks that were designated gate-clk do not have a gate, so change those clocks to be of periph-clk type. Signed-off-by: Dinh Nguyen <dinguyen@altera.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03arm: socfpga: Enable ARM_TWD for socfpgaDinh Nguyen
Update Kconfig to enable TWD. Signed-off-by: Dinh Nguyen <dinguyen@altera.com> Reviewed-by: Pavel Machek <pavel@denx.de> Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03ARM: multi_v7_defconfig: enable SDHCI_BCM_KONA and MMC_BLOCK_MINORS=16Olof Johansson
Enable MMC/SD on the Broadcom mobile platforms, and increase the block minors from the default 8 to 16 (since the Broadcom board by default has root on the 8th partition). Signed-off-by: Olof Johansson <olof@lixom.net> Cc: stable@vger.kernel.org # v3.12
2013-12-03ARM: sunxi_defconfig: enable NFS, TMPFS, PRINTK_TIME and nfsroot supportOlof Johansson
This enables a few more options on the sunxi defconfigs such that I can use nfsroot to boot them (there is no local storage support yet). It also enables PRINTK_TIME and tmpfs since it's a common distro requirement. Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-03Merge tag 'omap-for-v3.13/more-dt-regressions' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes From Tony Lindgren: Few more legacy booting vs device tree booting fixes that people have noticed while booting things with device tree for things like omap4 WLAN, smsc911x, and beagle audio. Hopefully this will be it for the legacy booting vs device tree fixes for this -rc cycle. * tag 'omap-for-v3.13/more-dt-regressions' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: Fix the name of supplies for smsc911x shared by OMAP ARM: OMAP2+: Powerdomain: Fix unchecked dereference of arch_pwrdm ARM: dts: omap3-beagle: Add omap-twl4030 audio support ARM: dts: omap4-sdp: Fix pin muxing for wl12xx ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
2013-12-03ARM: multi_v7_defconfig: enable network for BeagleBone BlackOlof Johansson
BeagleBone Black uses the TI CPSW ethernet controller, enable it in the multi_v7_defconfig for testing coverage purposes. Signed-off-by: Olof Johansson <olof@lixom.net> Acked-by: Tony Lindgren <tony@atomide.com> Cc: stable@vger.kernel.org # v3.12
2013-12-03Merge tag 'at91-fixes' of git://github.com/at91linux/linux-at91 into fixesOlof Johansson
From Nicolas Ferre: AT91: second round of fixes for 3.13 - reduce IP frequency for I2C on sama5d3 - missing aliases directive for USART3 on 9x5 family - a PM symbol is missing if !CONFIG_PM * tag 'at91-fixes' of git://github.com/at91linux/linux-at91: ARM: at91: fixed unresolved symbol "at91_pm_set_standby" when built without CONFIG_PM ARM: at91: add usart3 alias to dtsi ARM: at91: sama5d3: reduce TWI internal clock frequency
2013-12-03Merge tag 'mvebu-dt-fixes-3.13' of git://git.infradead.org/linux-mvebu into ↵Olof Johansson
fixes From Jason Cooper, mvebu DT fixes for v3.13: - mvebu - PCIe fixes now that we have test devices with more ports. - fix access to coherency registers * tag 'mvebu-dt-fixes-3.13' of git://git.infradead.org/linux-mvebu: ARM: mvebu: re-enable PCIe on Armada 370 DB ARM: mvebu: use the virtual CPU registers to access coherency registers ARM: mvebu: fix second and third PCIe unit of Armada XP mv78260 ARM: mvebu: second PCIe unit of Armada XP mv78230 is only x1 capable
2013-12-03Merge tag 'omap-for-v3.13/fixes-against-rc1-take2' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes From Tony Lindgren: Some omap related fixes that have come up with people moving to device tree only based booting for omap2+. The series contains a handful of fixes for the igep boards as they were one of the first omap3 boards to jump over completely to device tree based booting. So these can be considered regressions compared to booting igep in legacy mode with board files in v3.12. Also included are few other device tree vs legacy booting regressions: - yet more missing omap3 .dtsi entries that have showed up booting various boards with device tree only - n900 eMMC device tree fix - fixes for beagle USB EHCI - two fixes to make omap2420 MMC work As we're moving omap2+ to be device tree only for v3.14, I'd like to have v3.13 work equally well for legacy based booting and device tree based booting. So there will be likely few more device tree related booting patches trickling in. This series also includes a regression fix for the omap timer posted mode that may wrongly stay on from the bootloader for some SoCs. * tag 'omap-for-v3.13/fixes-against-rc1-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: mmc: omap: Fix I2C dependency and make driver usable with device tree mmc: omap: Fix DMA configuration to not rely on device id ARM: dts: omap3-beagle: Fix USB host on beagle boards (for 3.13) ARM: dts: omap3-igep0020: name twl4030 VPLL2 regulator as vdds_dsi ARM: dts: AM33XX IGEP0033: add USB support ARM: dts: AM33XX BASE0033: add 32KBit EEPROM support ARM: dts: AM33XX BASE0033: add pinmux and user led support ARM: dts: AM33XX BASE0033: add pinmux and hdmi node to enable display ARM: dts: omap3-igep0020: Add pinmuxing for DVI output ARM: dts: omap3-igep0020: Add pinmux setup for i2c devices ARM: dts: omap3-igep: Update to use the TI AM/DM37x processor ARM: dts: omap3-igep: Add support for LBEE1USJYC WiFi connected to SDIO ARM: dts: omap3-igep: Fix bus-width for mmc1 ARM: OMAP2+: dss-common: change IGEP's DVI DDC i2c bus ARM: OMAP2+: Disable POSTED mode for errata i103 and i767 ARM: OMAP2+: Fix eMMC on n900 with device tree ARM: OMAP2+: Add fixed regulator to omap2plus_defconfig ARM: OMAP2+: Fix more missing data for omap3.dtsi file Signed-off-by: Olof Johansson <olof@lixom.net>
2013-12-02ARM: dts: Fix the name of supplies for smsc911x shared by OMAPFlorian Vaussard
drivers/net/ethernet/smsc/smsc911x.c is expecting supplies named "vdd33a" and "vddvario". Currently the shared DTS file provides "vmmc" and "vmmc_aux", and the supply lookup will fail: smsc911x 2c000000.ethernet: Looking up vdd33a-supply from device tree smsc911x 2c000000.ethernet: Looking up vdd33a-supply property in node /ocp/gpmc@6e000000/ethernet@gpmc failed smsc911x 2c000000.ethernet: Looking up vddvario-supply from device tree smsc911x 2c000000.ethernet: Looking up vddvario-supply property in node /ocp/gpmc@6e000000/ethernet@gpmc failed Fix it! Looks like commmit 6b2978ac40e4 (ARM: dts: Shared file for omap GPMC connected smsc911x) made the problem more visible by moving the smc911x configuration from the omap3-igep0020.dts file to the generic file. But it seems we've had this problem since commit d72b4415011e (ARM: dts: omap3-igep0020: Add SMSC911x LAN chip support). Tested on OMAP3 Overo platform. Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch> [tony@atomide.com: updated comments for the commits causing the problem] Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-12-02ARM: OMAP2+: Powerdomain: Fix unchecked dereference of arch_pwrdmRajendra Nayak
Commit 'cd8abed' "ARM: OMAP2+: Powerdomain: Remove the need to always have a voltdm associated to a pwrdm" leads to the following Smatch complaint: arch/arm/mach-omap2/powerdomain.c:131 _pwrdm_register() error: we previously assumed 'arch_pwrdm' could be null (see line 105) So, fix the unchecked dereference of arch_pwrdm. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Nishanth Menon <nm@ti.com> Signed-off-by: Rajendra Nayak <rnayak@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-12-02ARM: dts: omap3-beagle: Add omap-twl4030 audio supportJarkko Nikula
This adds typical McBSP2-TWL4030 audio description to the legacy Beagle Board. Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-12-02ARM: dts: omap4-sdp: Fix pin muxing for wl12xxBalaji T K
Mux mode for wlan/sdmmc5 should be MODE0 in pinmux_wl12xx_pins and Enable Pull up on sdmmc5_clk to detect SDIO card. This fixes WLAN on omap4-sdp that got broken in v3.10 when we moved omap4 to boot using device tree only as I did not have the WL12XX card in my omap4 SDP to test with. The commit that attempted to make WL12XX working on omap4 SDP was 775d2418f309 (ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus for blaze). Signed-off-by: Balaji T K <balajitk@ti.com> [tony@atomide.com: updated comments for the regression] Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-12-02ARM: dts: omap4-panda-common: Fix pin muxing for wl12xxBalaji T K
pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. Fix the following error message: pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x SDIO card is not detected after moving pin mux to omap4_pmx_core since sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card. This fixes a regression where WLAN did not work after a warm reset or after one up/down cycle that happened when we move omap4 to boot using device tree only. For reference, the kernel bug is described at: https://bugzilla.kernel.org/show_bug.cgi?id=63821 Cc: stable@vger.kernel.org # v3.10+ Signed-off-by: Balaji T K <balajitk@ti.com> [tony@atomide.com: update comments to describe the regression] Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-12-02ARM: at91/dt: remove old clk materialBoris BREZILLON
This patch removes the old main clk node which is now useless as sama5d3 SoCs and boards are no longer compatible with the old at91 clk implementations. It also remove old clock definitions (clock definitions using at91 old clk framework). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: move sama5d3 SoC to common clkBoris BREZILLON
This patch removes the selection of AT91_USE_OLD_CLK when selecting sama5d3 SoC support. This will enable automatically enable COMMON_CLK_AT91 option and add support for at91 common clk implementation. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91/dt: define sama5d3xek's main clk frequencyBoris BREZILLON
Define the main clock frequency for the new main clock node in sama5d3xcm.dtsi. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91/dt: define sama5d3 clocksBoris BREZILLON
Define sama5d3 clocks in sama5d3 device tree. Add references to the appropriate clocks in each peripheral. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: prepare common clk transition for sama5d3 SoCBoris BREZILLON
This patch encloses sama5d3 old clk registration in "#if defined(CONFIG_OLD_CLK_AT91) #endif" sections. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: prepare sama5 dt boards transition to common clkBoris BREZILLON
This patch prepare the transition to common clk for sama5 dt boards by replacing the timer init callback. Clocks registration cannot be done in early init callback (as formerly done by the old clk implementation) because it requires dynamic allocation which is not ready yet during early init. In the other hand, at91 clocks must be registered before at91sam926x_pit_init is called because PIT (Periodic Interval Timer) driver request the master clk (mck). A new function (at91sama5_dt_timer_init) is created to fullfil these needs. This function registers all at91 clks using the dt definition before calling the PIT init function. The device tree clock registration is enabled only if common clk is selected. Else the old clk registration is been done during at91_dt_initialize call. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: add new compatible strings for pmc driverBoris BREZILLON
This patch adds new compatible string for PMC node to prepare the transition to common clk. These compatible string come from pmc driver in clk subsystem and are needed to provide new device tree compatibility with old at91 clks (device tree using common clks will use the new compatible strings). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: move pit timer to common clk frameworkBoris BREZILLON
Use device tree to get the source clock of the PIT (Periodic Interval Timer). If the clock is not found in device tree (or dt is not enabled) we'll try to get it using clk_lookup definitions. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02dt: binding: add at91 clks dt bindings documentationBoris BREZILLON
This patch adds new at91 clks dt bindings documentation. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC smd clockBoris BREZILLON
This patch adds at91 smd (Soft Modem) clock implementation using common clk framework. Not used by any driver right now. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC usb clockBoris BREZILLON
This patch adds new at91 usb clock implementation using common clk framework. This clock is used to clock usb ports (ohci, ehci and udc). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC utmi clockBoris BREZILLON
This adds new at91 utmi clock implementation using common clk framework. This clock is a pll with a fixed factor (x40). It is used as a source for usb clock. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC programmable clocksBoris BREZILLON
This patch adds new at91 programmable clocks implementation using common clk framework. A programmable clock is a clock which can be exported on a given pin to clock external devices. Each programmable clock is given an id (from 0 to 8). The number of available programmable clocks depends on the SoC you're using. Programmable clock driver only implements the clock setting (clock rate and parent setting). It must be chained to a system clock in order to enable/disable the generated clock. The PCKX pins used to output the clock signals must be assigned to the appropriate peripheral (see atmel's datasheets). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC peripheral clocksBoris BREZILLON
This patch adds new at91 peripheral clock implementation using common clk framework. Almost all peripherals provided by at91 SoCs need a clock to work properly. This clock is enabled/disabled using PCER/PCDR resgisters. Each peripheral is given an id (see atmel's datasheets) which is used to define and reference peripheral clocks. Some new SoCs (at91sam9x5 and sama5d3) provide a new register (PCR) where you can configure the peripheral clock as a division of the master clock. This will help reducing the peripherals power comsumption. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC system clocksBoris BREZILLON
This patch adds new at91 system clock implementation using common clk framework. Some peripherals need to enable a "system" clock in order to work properly. Each system clock is given an id based on the bit position in SCER/SCDR registers. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC master clockBoris BREZILLON
This patch adds new at91 master clock implementation using common clk framework. The master clock layout describe the MCKR register layout. There are 2 master clock layouts: - at91rm9200 - at91sam9x5 Master clocks are given characteristics: - min/max clock output rate These characteristics are checked during rate change to avoid over/underclocking. These characteristics are described in atmel's SoC datasheet in "Electrical Characteristics" paragraph. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC pll clocksBoris BREZILLON
This patch adds new at91 pll clock implementation using common clk framework. The pll clock layout describe the PLLX register layout. There are four pll clock layouts: - at91rm9200 - at91sam9g20 - at91sam9g45 - sama5d3 PLL clocks are given characteristics: - min/max clock source rate - ranges of valid clock output rates - values to set in out and icpll fields for each supported output range These characteristics are checked during rate change to avoid over/underclocking. These characteristics are described in atmel's SoC datasheet in "Electrical Characteristics" paragraph. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC main clockBoris BREZILLON
This patch adds new at91 main oscillator clock implementation using common clk framework. If rate is not provided during clock registration it is calculated using the slow clock (main clk parent in this case) rate and MCFR register. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC macro file for dt definitionsBoris BREZILLON
This patch adds a new macro file for PMC macros. This macro file includes the definitions of SR (status register) bit offsets and will be use to reference PMC irqs. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02clk: at91: add PMC base supportBoris BREZILLON
This patch adds at91 PMC (Power Management Controller) base support. All at91 clocks managed by the PMC unit will use this framework. This framework provides the following fonctionalities: - define a new struct at91_pmc to hide PMC internals (lock, PMC memory mapping, irq domain, ...) - read/write helper functions (pmc_read/write) to access PMC registers - lock/unlock helper functions (pmc_lock/unlock) to lock/unlock access to pmc registers - a new irq domain and its associated irq chip to request PMC specific interrupts (useful for clk prepare callbacks) The PMC unit is declared as a dt clk provider (CLK_OF_DECLARE), and every clk using this framework will declare a table of of_at91_clk_init_cb_t and add it to the pmc_clk_ids table. When the pmc dt clock setup function is called (by of_clk_init function), it triggers the registration of every supported child clk (those matching the definitions in pmc_clk_ids). This patch copies at91_pmc_base (memory mapping) and at91sam9_idle (function) from arch/arm/mach-at91/clock.c (which is not compiled if COMMON_CLK_AT91 is enabled). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: add Kconfig options for common clk supportBoris BREZILLON
This patch adds the following Kconfig options to prepare the transition to common clk framework: - AT91_USE_OLD_CLK: this option is selected by every SoC which does not support new at91 clks based on common clk framework (SoC which does not define the clock tree in its device tree). This options is also selected when the user choose non dt boards support (new at91 clks can only be registered from a device tree definition). - COMMON_CLK_AT91: this option cannot be selected directly. Instead it is enabled if these 3 conditions are met: * at least one of the selected SoCs have a PMC (Power Management Controller) Unit * device tree support is enabled * the old at91 clk implementation is disabled (every selected SoC define its clks in its device tree and non dt boards support is disabled) - OLD_CLK_AT91: this option cannot be selected directly. Instead it is enabled if these 2 conditions are met: * at least one of the selected SoCs have a PMC (Power Management Controller) Unit * at least one of the selected SoCs does not define its clks in its device tree or non dt-boards support is enabled This patch selects AT91_USE_OLD_CLK in all currently supported SoCs. These selects will be removed after clk definitions are properly added in each soc's device tree. It also selects AT91_USE_OLD_CLK in all non-dt boards support. AT91_PMC_UNIT references are replaced by OLD_CLK_AT91, because PMC Unit is enabled for both old and common clk implementations, and old clk implementation should not be compiled if COMMON_CLK is enabled. To avoid future link errors, a new stub is created for at91_dt_clock_init function if OLD_CLK_AT91 is disabled. A new check is added in dt init functions (setup.c) to prepare for SoCs supporting new clk implementation. These SoCs won't setup the register_clocks callback (clk registration is done using of_clk_init). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-12-02ARM: at91: move at91_pmc.h to include/linux/clk/at91_pmc.hBoris BREZILLON
This patch moves at91_pmc.h header from machine specific directory (arch/arm/mach-at91/include/mach/at91_pmc.h) to clk include directory (include/linux/clk/at91_pmc.h). We need this to avoid reference to machine specific headers in clk drivers. Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Felipe Balbi <balbi@ti.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>