- Mar 18, 2013
-
-
Magnus Damm authored
Adjust the sh73a0 IRQ code to make use of the INTC External IRQ pin driver for external interrupt pins IRQ0 -> IRQ31. This removes quite a bit of special-case code in intc-sh73a0.c but the number of lines get replaced with platform device information in setup-sh73a0.c. The PFC code is also adjusted to make gpio_to_irq() return the correct interrupt number. At this point the DT reference implementations are not covered. In the future such code shall tie in the INTC External IRQ pin driver via DT, so this kind of verbose code is not needed for the long term DT case. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Add the macro irq_pin() to let board-specific code using platform devices tie in external IRQn pins in a common way. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
This patch adds a driver for external IRQ pins connected to the INTC block on recent SoCs from Renesas. The INTC hardware block usually contains a rather wide range of features ranging from external IRQ pin handling to legacy interrupt controller support. On older SoCs the INTC is used as a general purpose interrupt controller both for external IRQ pins and on-chip devices. On more recent ARM based SoCs with Cortex-A9 the main interrupt controller is the GIC, but IRQ trigger setup still need to happen in the INTC hardware block. This driver implements the glue code needed to configure IRQ trigger and also handle mask/unmask and demux of external IRQ pins hooked up from the INTC to the GIC. Tested on sh73a0 and r8a7779. The hardware varies quite a bit with SoC model, for instance register width and bitfield widths vary wildly. The driver requires one GIC SPI per external IRQ pin to operate. Each driver instance will handle up to 8 external IRQ pins. The SoCs using this driver are currently mainly used together with regular platform devices so this driver allows configuration via platform data to support things like static interrupt base address. DT support will be added incrementally in the not so distant future. Signed-off-by:
Magnus Damm <damm@opensource.se> Acked-by:
Thomas Gleixner <tglx@linutronix.de> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Phil Edworthy authored
Signed-off-by:
Phil Edworthy <phil.edworthy@renesas.com> [Rename device from to rcarfb to rcar-du] Signed-off-by:
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> [Manual conflict resolution] Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
- Mar 13, 2013
-
-
Sergei Shtylyov authored
Commit "ARM: shmobile: r8a7779: use gic_iid macro" switched R8A7779 platform devices to using gic_iid() macro instead of gic_spi() but commit "ARM: mach- shmobile: r8a7779: add SATA support" added another use of gic_spi(). Convert the SATA IRQ resource to using gic_iid(). Signed-off-by:
Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Acked-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Vladimir Barinov authored
Add SATA clock for r8a7779 SoC (for both device tree and usual cases). Register SATA controller as a "late" platform device on r8a7779 SoC. Signed-off-by:
Vladimir Barinov <vladimir.barinov@cogentembedded.com> Signed-off-by:
Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Vladimir Barinov authored
Allow configuration of the r8a7779 SoC SATA controller using a flattened device tree. Signed-off-by:
Vladimir Barinov <vladimir.barinov@cogentembedded.com> Signed-off-by:
Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Kuninori Morimoto authored
76cc1887 (thermal: rcar: add Device Tree support) supported rcar_thermal DT probing. rcar thermal driver doesn't support IRQ on r8a7779 chip since it is using old design IRQ. R-Car/R-Mobile next generation chips are using new design IRQ, and rcar thermal driver is supporting these. This patch adds rcar_thermal DT support for r8a7779 without IRQ. Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Kuninori Morimoto authored
move r8a7740_meram_workaround() to r8a7740 area from r8a7779 area Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Kuninori Morimoto authored
"ARM: shmobile: add gic_iid macro for ICCIAR / interrupt ID" enabled to use gic_iid macro. This patch exchange current GIC interrupt setting from gic_spi() to gic_iid() Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> [ horms+renesas@verge.net.au: Updated git commit id in changelog ] Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Kuninori Morimoto authored
r8a7779 is not sh73a0 Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Kuninori Morimoto authored
r8a7779 is not r8a7740 chip Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Kuninori Morimoto authored
R-Car H1 datasheet GIC number is indicating GIC ICCIAR / interrupt ID number, not SPI number, but current marzen board code is using gic_spi() with un-understandable calculation. This patch adds new gic_iid() macro which means ICCIAR / interrupt ID, and used the number currently written on datasheet. Signed-off-by:
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> [ horms+renesas@verge.net.au: Split board-marzen.c portion into a separate patch ] Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Bastian Hecht authored
This adds temporarily the alternative device names to the clock list that are used when booting via Device Tree setup. Signed-off-by:
Bastian Hecht <hechtb+renesas@gmail.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Each CPU Hotplug implementation for mach-shmobile is now self-contained, so this change removes unused helper code in hotplug.c. The two CPU Hotplug capable SoCs sh73a0 and r8a7779 remain unchanged. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Update the r8a7779 SMP code and CPU Hotplug in particular to follow the same style as sh73a0. This means dropping __maybe_unused for #ifdef CONFIG_HOTPLUG_CPU. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Convert the sh73a0 CPU Hotplug code to use a local implementation of ->cpu_disable(). With this change in place the sh73a0 SMP code does no longer depend on hotplug.c. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Update the SMP code for R8A7779 to make use of the shared SCU function scu_power_mode() together with the early setup code in shmobile_secondary_vector_scu. With this patch in place the secondary CPUs modify the SCU setting during early boot instead of letting other CPUs deal with the coherency setting before boot. In other words, we used to setup coherency before boot in r8a7779_boot_secondary() but that bit is now instead handled by the code in shmobile_secondary_vector_scu. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Update the r8a7779 CPU Hotplug code to use SCU PSR to wait for the target CPU core. Previously the shared code in hotplug.c was used to let cpu_kill() wait for cpu_die(). With this change in place the r8a7779 SMP code does not depend on hotplug.c anymore. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Rework the IOMEM() usage for the SCU base address in the case of r8a7779. Adjusts the TWD to use R8A7779_SCU_BASE. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Rework the IOMEM() usage for the SCU base address in the case of sh73a0. Removes recently introduced build warnings: arch/arm/mach-shmobile/smp-sh73a0.c:45:15: warning: initialization makes integer from pointer without a cast [enabled by default] arch/arm/mach-shmobile/smp-sh73a0.c:45:15: warning: (near initialization for 'twd_local_timer.res[0].start') [enabled by default] arch/arm/mach-shmobile/smp-sh73a0.c:45:15: warning: initialization makes integer from pointer without a cast [enabled by default] /arch/arm/mach-shmobile/smp-sh73a0.c:45:15: warning: (near initialization for 'twd_local_timer.res[0].end') [enabled by default] Reported-by:
Arnd Bergmann <arnd@arndb.de> Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Rework the early SCU setup code in headsmp-scu.S to read the base address in the same way as we use to fetch the address of the invalidation function. Reported-by:
Bastian Hecht <hechtb@gmail.com> Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
The ethernet controller is not part of the r8a7779 SoC. Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
It is sufficient to initialise i2c as a late device. Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
Do not initialise any early devices when using the minimal DT reference code. Only the delay needs to be initialised. Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
Do not initialise any early devices when using the minimal DT reference code. Only the delay needs to be initialised. Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
Remove warning about SMP not working with the clock initialisation sheme used for reference DT. This is resolved by not selecting CONFIG_PREEMPT. Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
This a board to be brought up with SMP enabled without a board file present. Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
This is not needed as irq_set_wake is only used for suspend to ram which is not a requirement for bringing up boards using DT. Reported-by:
Magnus Damm <magnus.damm@gmail.com> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Guennadi Liakhovetski authored
Z and ZG clocks on sh73a0 have pll0 as their parent, not pll1. Signed-off-by:
Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Adjust emev2_init_delay() and emev2_add_standard_devices_dt() to become static. They are not used outside this file anyway. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Update the SMP code for EMEV2 to make use of the shared SCU function scu_power_mode() together with the early setup code in shmobile_secondary_vector_scu. With this patch in place the secondary CPUs modify the SCU setting during early boot instead of letting other CPUs deal with the coherency setting before boot. In other words, we used to setup coherency before boot in emev2_boot_secondary() but that bit is now instead handled by the code in shmobile_secondary_vector_scu. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Update the code in headsmp-scu.S to use a global shmobile_scu_base variable both for convenient SCU base address storage and for the early SCU setup code in shmobile_secondary_vector_scu. With this patch applied r8a7779, sh73a0 and EMEV2 all make use of the global shmobile_scu_base variable. However only sh73a0 makes use of the SCU bring up code in shmobile_secondary_vector_scu. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Rename headsmp-sh73a0.S into headsmp-scu.S and introduce shmobile_secondary_vector_scu(). The goal is to be able to share the function above between all mach-shmobile SoCs that use SCU for SMP. So far only sh73a0 use this. At this time the SCU base address is still hard coded in headsmp-scu.S to 0xf0000000, but this will be changed in the future. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Rename the static scu_base variable into shmobile_scu_base. Later in the series the shmobile_scu_base variable will be made into a global variable so this is preparation only. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Replace scu_base_addr() with a static shmobile_scu_base variable and introduce R8A7779_SCU_BASE. Later in the series the shmobile_scu_base variable will be made into a global variable so this is preparation only. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Magnus Damm authored
Replace scu_base_addr() with a static shmobile_scu_base variable and introduce SH73A0_SCU_BASE. Later in the series the shmobile_scu_base variable will be made into a global variable so this is preparation only. Signed-off-by:
Magnus Damm <damm@opensource.se> Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
Allow a minimal setup of the r8a7779 SoC using a flattened device tree. In particular, configure the i2c and ethernet controllers using a flattened device tree. SCI serial controller and TMU clock source, whose drivers do not yet support configuration using a flattened device tree, are still configured using C code in order to allow booting of a board with this SoC. The ethernet controller also requires a regulator which is a board property. A sample snippet DT for the marzen board is as follows: /dts-v1/; /include/ "r8a7779.dtsi" / { fixedregulator3v3: fixedregulator@0 { compatible = "regulator-fixed"; regulator-name = "fixed-3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; }; }; &lan0 { vddvario-supply = <&fixedregulator3v3>; vdd33a-supply = <&fixedregulator3v3>; }; Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-
Simon Horman authored
This allows the GIC interrupt controller of the r8a7779 SoC to be initialised using a flattened device tree blob. Signed-off-by:
Simon Horman <horms+renesas@verge.net.au> --- v3 * Fix copy-paste error and use unique reg values for each CPU v2 As suggested by Mark Rutland * Add reg and device_type to cpus * Remove #address-cells from gic
-
Guennadi Liakhovetski authored
Add clock lookup entries for SDHI and MMCIF device names, for the FDT case. Signed-off-by:
Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by:
Linus Walleij <linus.walleij@linaro.org> [horms+renesas@verge.net.au: resolved trivial conflict in clock-r8a7740.c] Signed-off-by:
Simon Horman <horms+renesas@verge.net.au>
-