aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-sunxi
AgeCommit message (Collapse)Author
2013-08-16ARM: sunxi: Introduce Allwinner A20 supportMaxime Ripard
The Allwinner A20 is a dual-core Cortex-A7-based SoC. It is pin-compatible with the A10, and re-uses most of the IPs found in it, plus some additional ones like a Gigabit Ethernet controller. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-08-16ARM: sun6i: Add restart code for the A31Maxime Ripard
The Allwinner A31 has a different watchdog, with a slightly different register layout, that requires a different restart code. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-08-16ARM: sunxi: Add the Allwinner A31 compatible to the machine definitionMaxime Ripard
The Allwinner A31 is a quad-Cortex-A7 based SoC, which shares a lot of IPs with the previous SoCs from Allwinner, like the PIO, I2C, UARTs, timers, watchdog IPs, but also differs by dropping the WEMAC ethernet controller and most notably dropping the in-house IRQ controller in favor of a ARM GIC one. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-07-29ARM: sunxi: Remove Makefile.boot fileMaxime Ripard
Since we've been a multi-platform enabled kernel from the beginning, Makefile.boot has always been dead code. Remove it. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-07-09reboot: arm: change reboot_mode to use enum reboot_modeRobin Holt
Preparing to move the parsing of reboot= to generic kernel code forces the change in reboot_mode handling to use the enum. [akpm@linux-foundation.org: fix arch/arm/mach-socfpga/socfpga.c] Signed-off-by: Robin Holt <holt@sgi.com> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Russ Anderson <rja@sgi.com> Cc: Robin Holt <holt@sgi.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-07-02Merge tag 'soc-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC specific changes from Arnd Bergmann: "These changes are all to SoC-specific code, a total of 33 branches on 17 platforms were pulled into this. Like last time, Renesas sh-mobile is now the platform with the most changes, followed by OMAP and EXYNOS. Two new platforms, TI Keystone and Rockchips RK3xxx are added in this branch, both containing almost no platform specific code at all, since they are using generic subsystem interfaces for clocks, pinctrl, interrupts etc. The device drivers are getting merged through the respective subsystem maintainer trees. One more SoC (u300) is now multiplatform capable and several others (shmobile, exynos, msm, integrator, kirkwood, clps711x) are moving towards that goal with this series but need more work. Also noteworthy is the work on PCI here, which is traditionally part of the SoC specific code. With the changes done by Thomas Petazzoni, we can now more easily have PCI host controller drivers as loadable modules and keep them separate from the platform code in drivers/pci/host. This has already led to the discovery that three platforms (exynos, spear and imx) are actually using an identical PCIe host controller and will be able to share a driver once support for spear and imx is added." * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (480 commits) ARM: integrator: let pciv3 use mem/premem from device tree ARM: integrator: set local side PCI addresses right ARM: dts: Add pcie controller node for exynos5440-ssdk5440 ARM: dts: Add pcie controller node for Samsung EXYNOS5440 SoC ARM: EXYNOS: Enable PCIe support for Exynos5440 pci: Add PCIe driver for Samsung Exynos ARM: OMAP5: voltagedomain data: remove temporary OMAP4 voltage data ARM: keystone: Move CPU bringup code to dedicated asm file ARM: multiplatform: always pick one CPU type ARM: imx: select syscon for IMX6SL ARM: keystone: select ARM_ERRATA_798181 only for SMP ARM: imx: Synertronixx scb9328 needs to select SOC_IMX1 ARM: OMAP2+: AM43x: resolve SMP related build error dmaengine: edma: enable build for AM33XX ARM: edma: Add EDMA crossbar event mux support ARM: edma: Add DT and runtime PM support to the private EDMA API dmaengine: edma: Add TI EDMA device tree binding arm: add basic support for Rockchip RK3066a boards arm: add debug uarts for rockchip rk29xx and rk3xxx series arm: Add basic clocks for Rockchip rk3066a SoCs ...
2013-06-20Merge tag 'sunxi-core-for-3.11-2' of git://github.com/mripard/linux into ↵Arnd Bergmann
next/soc From Maxime Ripard: Allwinner platform additions, take 2 Adds machine support for the Allwinner A10s SoC * tag 'sunxi-core-for-3.11-2' of git://github.com/mripard/linux: ARM: sunxi: Add Allwinner A10s machine compatible Depends on the sunxi/cleanup branch Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-16ARM: sunxi: Add Allwinner A10s machine compatibleMaxime Ripard
The A10s is a SoC member of the Allwinner sun5i family. It is basically an A13 with an EMAC and an HDMI controller. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-06-14Merge tag 'sunxi-core-for-3.11' of git://github.com/mripard/linux into ↵Olof Johansson
next/cleanup From Maxime Ripard: Allwinner SoCs platform additions for 3.11 - Various cleanups and documentation updates * tag 'sunxi-core-for-3.11' of git://github.com/mripard/linux: ARM: sunxi: irqchip: Update the documentation ARM: sunxi: Update datasheet documentation ARM: sunxi: Remove init_irq declaration in machine description Signed-off-by: Olof Johansson <olof@lixom.net> #
2013-05-31Merge tag 'arm-soc-cleanups-for-3.11' of git://github.com/mripard/linux into ↵Olof Johansson
next/cleanup From Maxime Ripard: Cleanups in various machine definitions - Patches to remove the .init_irq definition when using irqchip_init - Make the ARM core code call debug_ll_io_init when no map_io callback is declared - Remove the .map_io definition in the various machines using it (Some of these go through the platform maintainers, these are the ones who got explicitly acked and not picked up by anyone else) Signed-off-by: Olof Johansson <olof@lixom.net> * tag 'arm-soc-cleanups-for-3.11' of git://github.com/mripard/linux: ARM: sunxi: Remove the .map_io function declaration ARM: mxs: remove the .map_io declaration ARM: highbank: remove the .map_io declaration ARM: mmu: Call debug_ll_io_init if no map_io function is specified ARM: vt8500: Remove init_irq declaration in machine description ARM: virt: Remove init_irq declaration in machine description ARM: vexpress: Remove init_irq declaration in machine description ARM: sirf: Remove init_irq declaration in machine description ARM: spear: Remove init_irq declaration in machine description ARM: nomadik: Remove init_irq declaration in machine description
2013-05-24ARM: sunxi: Remove the .map_io function declarationMaxime Ripard
debug_ll_io_init should be enough to map the needed addresses at boot, so remove the trivial map_io code, and let the core call debug_ll_io_init. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-05-15ARM: sunxi: Remove init_irq declaration in machine descriptionMaxime Ripard
Commit ebafed7a ("ARM: irq: Call irqchip_init if no init_irq function is specified") removed the need to explictly setup the init_irq field in the machine description when using only irqchip_init. Remove that declaration for sunxi as well. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-05-15ARM: sunxi: select ARCH_REQUIRE_GPIOLIBMaxime Ripard
CONFIG_ARCH_SUNXI currently doesn't enable a gpiolib, which causes build problems when building a kernel with only the sunxi platform enabled. Select ARCH_REQUIRE_GPIOLIB to solve this. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Tested-by: Emilio López <emilio@elopez.com.ar>
2013-04-08ARM: sunxi: Rework the restart codeMaxime Ripard
The Allwinner sun6i (A31) has a slightly different watchdog, that doesn't allow to use the already existing restart code. Rework a bit the restart code to allow to plug in more easily different restart handlers depending on the device tree. In the past, we were also meaning sunxi as a generic name covering all Allwinner SoCs. This won't be true anymore with the A31 (sun6i) that differs pretty much from sun4i and sun5i, and we will end up having sunxi, for sun4i and sun5i, and sun6i, which is neither consistent nor convenient. So, while we're at it, also change sunxi to sun4i. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-04-08irqchip: sunxi: Make use of the IRQCHIP_DECLARE macroMaxime Ripard
This allows to remove some boilerplate code. At the same time, call the set_handle_irq function in the initialization function of the irqchip, so that we can remove it from the machine declaration. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-04-08clocksource: sunxi: Rename sunxi to sun4iMaxime Ripard
During the introduction of the Allwinner SoC platforms, sunxi was initially meant as a generic name for all the variants of the Allwinner SoC. It was ok at the time of the support of only the A10 and A13 that looks pretty much the same, but it's beginning to be troublesome with the future addition of the Allwinner A31 (sun6i) that is quite different, and would introduce some weird logic, where sunxi would actually mean in some case sun4i and sun5i but without sun6i... Moreover, it makes the compatible strings naming scheme not consistent with other architectures, where usually for this kind of compability, we just use the oldest SoC name that has this IP, so let's do just this. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-04-08clocksource: sunxi: make use of CLKSRC_OFMaxime Ripard
Using CLKSRC_OF allows to remove the SoC specific sunxi_timer.h header, and instead of using a custom init function in the machine definition use the standard clocksource_of_init function. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2013-02-21Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-socLinus Torvalds
Pull ARM SoC cleanups from Arnd Bergmann: "A large number of cleanups, all over the platforms. This is dominated largely by the Samsung platforms (s3c, s5p, exynos) and a few of the others moving code out of arch/arm into more appropriate subsystems. The clocksource and irqchip drivers are now abstracted to the point where platforms that are already cleaned up do not need to even specify the driver they use, it can all get configured from the device tree as we do for normal device drivers. The clocksource changes basically touch every single platform in the process. We further clean up the use of platform specific header files here, with the goal of turning more of the platforms over to being "multiplatform" enabled, which implies that they cannot expose their headers to architecture independent code any more. It is expected that no functional changes are part of the cleanup. The overall reduction in total code lines is mostly the result of removing broken and obsolete code." * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (133 commits) ARM: mvebu: correct gated clock documentation ARM: kirkwood: add missing include for nsa310 ARM: exynos: move exynos4210-combiner to drivers/irqchip mfd: db8500-prcmu: update resource passing drivers/db8500-cpufreq: delete dangling include ARM: at91: remove NEOCORE 926 board sunxi: Cleanup the reset code and add meaningful registers defines ARM: S3C24XX: header mach/regs-mem.h local ARM: S3C24XX: header mach/regs-power.h local ARM: S3C24XX: header mach/regs-s3c2412-mem.h local ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/ ARM: S3C24XX: transform s3c2443 subirqs into new structure ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs ARM: S3C24XX: move s3c2443 irq code to irq.c ARM: S3C24XX: transform s3c2416 irqs into new structure ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs ARM: S3C24XX: move s3c2416 irq init to common irq code ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property ARM: S3C24XX: Move irq syscore-ops to irq-pm clocksource: always define CLOCKSOURCE_OF_DECLARE ...
2013-02-05sunxi: Cleanup the reset code and add meaningful registers definesMaxime Ripard
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2013-01-22ARM: sunxi: Add pinctrl driver for Allwinner SoCsMaxime Ripard
The Allwinner SoCs have an IP module that handle both the muxing and the GPIOs. This IP has 8 banks of 32 bits, with a number of pins actually useful for each of these banks varying from one to another, and depending on the SoC used on the board. This driver only implements the pinctrl part, the gpio part will come eventually. Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Olof Johansson <olof@lixom.net> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-01-14Merge tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux ↵Olof Johansson
into next/cleanup From Rob Herring: Initial irqchip init infrastructure and GIC and VIC clean-ups This creates irqchip initialization infrastructure from Thomas Petazzoni. The VIC and GIC irqchip code is moved to drivers/irqchips and adapted to use the new infrastructure. All DT enabled platforms using GIC and VIC are converted over to use the new irqchip_init. * tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux: irqchip: Move ARM vic.h to include/linux/irqchip/arm-vic.h ARM: picoxcell: use common irqchip_init function ARM: spear: use common irqchip_init function irqchip: Move ARM VIC to drivers/irqchip ARM: samsung: remove unused tick.h ARM: remove unneeded vic.h includes ARM: remove mach .handle_irq for VIC users ARM: VIC: set handle_arch_irq in VIC initialization ARM: VIC: shrink down vic.h irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h ARM: use common irqchip_init for GIC init irqchip: Move ARM GIC to drivers/irqchip ARM: remove mach .handle_irq for GIC users ARM: GIC: set handle_arch_irq in GIC initialization ARM: GIC: remove direct use of gic_raise_softirq ARM: GIC: remove assembly ifdefs from gic.h ARM: mach-ux500: use SGI0 to wake up the other core arm: add set_handle_irq() to register the parent IRQ controller handler function irqchip: add basic infrastructure irqchip: add to the directories part of the IRQ subsystem in MAINTAINERS Fixed up massive merge conflicts with the timer cleanup due to adjacent changes: Signed-off-by: Olof Johansson <olof@lixom.net> Conflicts: arch/arm/mach-bcm/board_bcm.c arch/arm/mach-cns3xxx/cns3420vb.c arch/arm/mach-ep93xx/adssphere.c arch/arm/mach-ep93xx/edb93xx.c arch/arm/mach-ep93xx/gesbc9312.c arch/arm/mach-ep93xx/micro9.c arch/arm/mach-ep93xx/simone.c arch/arm/mach-ep93xx/snappercl15.c arch/arm/mach-ep93xx/ts72xx.c arch/arm/mach-ep93xx/vision_ep9307.c arch/arm/mach-highbank/highbank.c arch/arm/mach-imx/mach-imx6q.c arch/arm/mach-msm/board-dt-8960.c arch/arm/mach-netx/nxdb500.c arch/arm/mach-netx/nxdkn.c arch/arm/mach-netx/nxeb500hmi.c arch/arm/mach-nomadik/board-nhk8815.c arch/arm/mach-picoxcell/common.c arch/arm/mach-realview/realview_eb.c arch/arm/mach-realview/realview_pb1176.c arch/arm/mach-realview/realview_pb11mp.c arch/arm/mach-realview/realview_pba8.c arch/arm/mach-realview/realview_pbx.c arch/arm/mach-socfpga/socfpga.c arch/arm/mach-spear13xx/spear1310.c arch/arm/mach-spear13xx/spear1340.c arch/arm/mach-spear13xx/spear13xx.c arch/arm/mach-spear3xx/spear300.c arch/arm/mach-spear3xx/spear310.c arch/arm/mach-spear3xx/spear320.c arch/arm/mach-spear3xx/spear3xx.c arch/arm/mach-spear6xx/spear6xx.c arch/arm/mach-tegra/board-dt-tegra20.c arch/arm/mach-tegra/board-dt-tegra30.c arch/arm/mach-u300/core.c arch/arm/mach-ux500/board-mop500.c arch/arm/mach-ux500/cpu-db8500.c arch/arm/mach-versatile/versatile_ab.c arch/arm/mach-versatile/versatile_dt.c arch/arm/mach-versatile/versatile_pb.c arch/arm/mach-vexpress/v2m.c include/asm-generic/vmlinux.lds.h
2013-01-12ARM: remove unneeded vic.h includesRob Herring
Numerous includes of asm/hardware/vic.h aren't needed, so remove them. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ryan Mallon <rmallon@gmail.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Hubert Feurstein <hubert.feurstein@contec.at> Cc: Alessandro Rubini <rubini@unipv.it> Acked-by: Linus Walleij <linus.walleij@linaro.org> Cc: STEricsson <STEricsson_nomadik_linux@list.st.com> Cc: Ben Dooks <ben-linux@fluff.org> Cc: Kukjin Kim <kgene.kim@samsung.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Acked-By: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: linux-samsung-soc@vger.kernel.org Cc: patches@opensource.wolfsonmicro.com Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-01-08Merge branch 'timer/cleanup' into next/cleanupOlof Johansson
Adding a manually applied bugfix for sunxi. * timer/cleanup: ARM: sunxi: fix struct sys_timer removal Signed-off-by: Olof Johansson <olof@lixom.net>
2013-01-08ARM: sunxi: fix struct sys_timer removalStephen Warren
Commit 6bb27d7 "ARM: delete struct sys_timer" removed struct sys_timer, but didn't update mach-sunxi/sunxi.c for this change, even though the sunxi timer implementation itself was updated. This caused a build break: arch/arm/mach-sunxi/sunxi.c:94:2: error: unknown field 'timer' specified in initializer arch/arm/mach-sunxi/sunxi.c:94:12: error: 'sunxi_timer' undeclared here (not in a function) Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2012-12-23sunxi: Change the machine compatible string.Maxime Ripard
Commit 68136b10 ("ARM: sunxi: Change device tree naming scheme for sunxi") changed the naming scheme and the compatible strings used in the device trees related to the sunXi platform, but forgot to change the compatible string in the DT machine definition. This prevents the kernel from booting on these boards. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2012-11-30ARM: sunxi: add missing include for mdelay()Josh Cartwright
CC arch/arm/mach-sunxi/sunxi.o ./arch/arm/mach-sunxi/sunxi.c: In function 'sunxi_restart': ./arch/arm/mach-sunxi/sunxi.c:55:3: error: implicit declaration of function 'mdelay' [-Werror=implicit-function-declaration] Signed-off-by: Josh Cartwright <josh.cartwright@ni.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-21ARM: sunxi: Add sunxi restart function via onchip watchdogMaxime Ripard
Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2012-11-20ARM: sunxi: Add sun4i and cubieboard supportStefan Roese
This patch adds support for the Cubieboard based on the Allwinner A10/sun4i SoC. Currently only UART is supported. Other devices will eventually follow. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2012-11-16ARM: sunxi: Add basic support for Allwinner A1x SoCsMaxime Ripard
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Stefan Roese <sr@denx.de>