2013-11-09 20:33:48 +08:00
|
|
|
config ARCH_SHMOBILE
|
|
|
|
bool
|
2015-11-10 08:06:41 +08:00
|
|
|
|
2014-08-25 11:04:01 +08:00
|
|
|
config PM_RMOBILE
|
|
|
|
bool
|
ARM: shmobile: Enable PM and PM_GENERIC_DOMAINS for SoCs with PM Domains
All supported Renesas ARM SoCs (except for Emma Mobile EV2) have clock
domains. Some SoCs also have power domains. To ensure proper operation
of on-SoC modules, module clocks must be ungated, and power domains must
be powered up when needed.
Currently the user can choose to build a kernel with power management
enabled or disabled:
- If CONFIG_PM=y, power domains and/or module clocks are handled
dynamically by Runtime PM and the generic power domain.
- If CONFIG_PM=n, power domains are assumed to be powered up by reset
state or by the boot loader, and module clocks are handled by the
legacy clock domain on driver (un)bind.
The latter is implemented using a platform bus notifier, which
applies not only to all on-SoC devices, but to all platform devices
present in the system.
To remove the dependency on implicit assumptions, and to get rid of the
peculiarities of the legacy clock domain, enable CONFIG_PM and
CONFIG_PM_GENERIC_DOMAINS unconditionally, for all Renesas ARM SoCs with
clock and/or power domains.
This does cause an increase in kernel size. Given bloat-o-meter reports
a modest increase of 26 KiB for an RZ/A1H kernel, this should not be a
problem, even when used on RZ/A1H with XIP and internal RAM only.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2016-02-16 23:31:49 +08:00
|
|
|
select PM
|
2014-12-03 21:41:45 +08:00
|
|
|
select PM_GENERIC_DOMAINS
|
2014-08-25 11:04:01 +08:00
|
|
|
|
2014-08-25 11:03:34 +08:00
|
|
|
config ARCH_RCAR_GEN1
|
|
|
|
bool
|
2016-04-20 20:02:36 +08:00
|
|
|
select PM
|
|
|
|
select PM_GENERIC_DOMAINS
|
2014-08-25 11:03:34 +08:00
|
|
|
select RENESAS_INTC_IRQPIN
|
|
|
|
select SYS_SUPPORTS_SH_TMU
|
|
|
|
|
2014-08-25 11:03:43 +08:00
|
|
|
config ARCH_RCAR_GEN2
|
|
|
|
bool
|
2016-04-20 20:02:36 +08:00
|
|
|
select PM
|
|
|
|
select PM_GENERIC_DOMAINS
|
2014-08-25 11:03:43 +08:00
|
|
|
select RENESAS_IRQC
|
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
|
2014-08-25 11:03:25 +08:00
|
|
|
config ARCH_RMOBILE
|
|
|
|
bool
|
ARM: shmobile: Enable PM and PM_GENERIC_DOMAINS for SoCs with PM Domains
All supported Renesas ARM SoCs (except for Emma Mobile EV2) have clock
domains. Some SoCs also have power domains. To ensure proper operation
of on-SoC modules, module clocks must be ungated, and power domains must
be powered up when needed.
Currently the user can choose to build a kernel with power management
enabled or disabled:
- If CONFIG_PM=y, power domains and/or module clocks are handled
dynamically by Runtime PM and the generic power domain.
- If CONFIG_PM=n, power domains are assumed to be powered up by reset
state or by the boot loader, and module clocks are handled by the
legacy clock domain on driver (un)bind.
The latter is implemented using a platform bus notifier, which
applies not only to all on-SoC devices, but to all platform devices
present in the system.
To remove the dependency on implicit assumptions, and to get rid of the
peculiarities of the legacy clock domain, enable CONFIG_PM and
CONFIG_PM_GENERIC_DOMAINS unconditionally, for all Renesas ARM SoCs with
clock and/or power domains.
This does cause an increase in kernel size. Given bloat-o-meter reports
a modest increase of 26 KiB for an RZ/A1H kernel, this should not be a
problem, even when used on RZ/A1H with XIP and internal RAM only.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2016-02-16 23:31:49 +08:00
|
|
|
select PM_RMOBILE
|
2014-08-25 11:03:25 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
select SYS_SUPPORTS_SH_TMU
|
|
|
|
|
2015-11-10 08:06:41 +08:00
|
|
|
menuconfig ARCH_RENESAS
|
ARM: use "depends on" for SoC configs instead of "if" after prompt
Many ARM sub-architectures use prompts followed by "if" conditional,
but it is wrong.
Please notice the difference between
config ARCH_FOO
bool "Foo SoCs" if ARCH_MULTI_V7
and
config ARCH_FOO
bool "Foo SoCs"
depends on ARCH_MULTI_V7
These two are *not* equivalent!
In the former statement, it is not ARCH_FOO, but its prompt that
depends on ARCH_MULTI_V7. So, it is completely valid that ARCH_FOO
is selected by another, but ARCH_MULTI_V7 is still disabled. As it is
not unmet dependency, Kconfig never warns. This is probably not what
you want.
The former should be used only when you need to do so, and you really
understand what you are doing. (In most cases, it should be wrong!)
For enabling/disabling sub-architectures, the latter is always correct.
As a good side effect, this commit fixes some entries over 80 columns
(mach-imx, mach-integrator, mach-mbevu).
[Arnd: I note that there is not really a bug here, according to
the discussion that followed, but I can see value in being consistent
and in making the lines shorter]
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Patrice Chotard <patrice.chotard@st.com>
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>
Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Jun Nie <jun.nie@linaro.org>
Acked-by: Matthias Brugger <matthias.bgg@gmail.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Krzysztof Halasa <khc@piap.pl>
Acked-by: Maxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-11-16 11:06:10 +08:00
|
|
|
bool "Renesas ARM SoCs"
|
|
|
|
depends on ARCH_MULTI_V7 && MMU
|
2016-09-23 16:28:40 +08:00
|
|
|
select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
|
2013-11-09 20:33:48 +08:00
|
|
|
select ARCH_SHMOBILE
|
2016-09-23 16:28:40 +08:00
|
|
|
select ARM_GIC
|
|
|
|
select GPIOLIB
|
2013-07-18 04:31:09 +08:00
|
|
|
select HAVE_ARM_SCU if SMP
|
2014-02-02 06:35:44 +08:00
|
|
|
select HAVE_ARM_TWD if SMP
|
2014-04-08 06:39:19 +08:00
|
|
|
select NO_IOPORT_MAP
|
2013-07-18 04:31:09 +08:00
|
|
|
select PINCTRL
|
2016-11-15 02:37:08 +08:00
|
|
|
select SOC_BUS
|
2015-11-10 08:06:41 +08:00
|
|
|
select ZONE_DMA if ARM_LPAE
|
2013-07-18 04:31:09 +08:00
|
|
|
|
2015-11-10 08:06:41 +08:00
|
|
|
if ARCH_RENESAS
|
2013-07-18 04:31:09 +08:00
|
|
|
|
2014-06-10 22:06:10 +08:00
|
|
|
#comment "Renesas ARM SoCs System Type"
|
2013-07-18 04:31:09 +08:00
|
|
|
|
2013-07-18 04:31:18 +08:00
|
|
|
config ARCH_EMEV2
|
|
|
|
bool "Emma Mobile EV2"
|
2014-02-20 19:54:46 +08:00
|
|
|
select SYS_SUPPORTS_EM_STI
|
2013-07-18 04:31:18 +08:00
|
|
|
|
2013-11-07 07:31:25 +08:00
|
|
|
config ARCH_R7S72100
|
|
|
|
bool "RZ/A1H (R7S72100)"
|
ARM: shmobile: Enable PM and PM_GENERIC_DOMAINS for SoCs with PM Domains
All supported Renesas ARM SoCs (except for Emma Mobile EV2) have clock
domains. Some SoCs also have power domains. To ensure proper operation
of on-SoC modules, module clocks must be ungated, and power domains must
be powered up when needed.
Currently the user can choose to build a kernel with power management
enabled or disabled:
- If CONFIG_PM=y, power domains and/or module clocks are handled
dynamically by Runtime PM and the generic power domain.
- If CONFIG_PM=n, power domains are assumed to be powered up by reset
state or by the boot loader, and module clocks are handled by the
legacy clock domain on driver (un)bind.
The latter is implemented using a platform bus notifier, which
applies not only to all on-SoC devices, but to all platform devices
present in the system.
To remove the dependency on implicit assumptions, and to get rid of the
peculiarities of the legacy clock domain, enable CONFIG_PM and
CONFIG_PM_GENERIC_DOMAINS unconditionally, for all Renesas ARM SoCs with
clock and/or power domains.
This does cause an increase in kernel size. Given bloat-o-meter reports
a modest increase of 26 KiB for an RZ/A1H kernel, this should not be a
problem, even when used on RZ/A1H with XIP and internal RAM only.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2016-02-16 23:31:49 +08:00
|
|
|
select PM
|
|
|
|
select PM_GENERIC_DOMAINS
|
2014-02-20 19:54:46 +08:00
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2017-01-28 04:02:15 +08:00
|
|
|
select RENESAS_OSTM
|
2013-11-07 07:31:25 +08:00
|
|
|
|
2014-12-18 00:18:17 +08:00
|
|
|
config ARCH_R8A73A4
|
|
|
|
bool "R-Mobile APE6 (R8A73A40)"
|
|
|
|
select ARCH_RMOBILE
|
2016-10-27 15:00:06 +08:00
|
|
|
select ARM_ERRATA_798181 if SMP
|
2014-12-18 00:18:17 +08:00
|
|
|
select RENESAS_IRQC
|
|
|
|
|
2014-08-25 11:36:53 +08:00
|
|
|
config ARCH_R8A7740
|
|
|
|
bool "R-Mobile A1 (R8A77400)"
|
|
|
|
select ARCH_RMOBILE
|
|
|
|
select RENESAS_INTC_IRQPIN
|
|
|
|
|
2016-10-06 05:37:08 +08:00
|
|
|
config ARCH_R8A7743
|
|
|
|
bool "RZ/G1M (R8A77430)"
|
|
|
|
select ARCH_RCAR_GEN2
|
2016-10-27 15:00:06 +08:00
|
|
|
select ARM_ERRATA_798181 if SMP
|
2016-10-06 05:37:08 +08:00
|
|
|
|
2016-11-05 05:49:55 +08:00
|
|
|
config ARCH_R8A7745
|
|
|
|
bool "RZ/G1E (R8A77450)"
|
|
|
|
select ARCH_RCAR_GEN2
|
|
|
|
|
2015-02-27 00:42:13 +08:00
|
|
|
config ARCH_R8A7778
|
|
|
|
bool "R-Car M1A (R8A77781)"
|
|
|
|
select ARCH_RCAR_GEN1
|
|
|
|
|
2014-05-15 19:32:05 +08:00
|
|
|
config ARCH_R8A7779
|
|
|
|
bool "R-Car H1 (R8A77790)"
|
2014-08-25 11:03:34 +08:00
|
|
|
select ARCH_RCAR_GEN1
|
2014-05-15 19:32:05 +08:00
|
|
|
|
2013-12-11 22:13:52 +08:00
|
|
|
config ARCH_R8A7790
|
|
|
|
bool "R-Car H2 (R8A77900)"
|
2014-08-25 11:03:43 +08:00
|
|
|
select ARCH_RCAR_GEN2
|
2016-10-27 15:00:06 +08:00
|
|
|
select ARM_ERRATA_798181 if SMP
|
ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk
The r8a7790/lager and r8a7791/koelsch development boards have da9063 and
da9210 regulators. Both regulators have their interrupt request lines
tied to the same interrupt pin (IRQ2) on the SoC.
After cold boot or da9063-induced restart, both the da9063 and da9210
seem to assert their interrupt request lines. Hence as soon as one
driver requests this irq, it gets stuck in an interrupt storm, as it
only manages to deassert its own interrupt request line, and the other
driver hasn't installed an interrupt handler yet.
To handle this, install a quirk that masks the interrupts in both the
da9063 and da9210. This quirk has to run after the i2c master driver
has been initialized, but before the i2c slave drivers are initialized.
As it depends on i2c, select I2C if one of the affected platforms is
enabled in the kernel config.
On koelsch, the following happens:
- Cold boot or reboot using the da9063 restart handler:
IRQ2 is asserted, installing da9063/da9210 regulator quirk
...
i2c i2c-6: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
i2c 6-0058: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
i2c 6-0058: Detected da9063
i2c 6-0058: Masking da9063 interrupt sources
i2c 6-0068: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
i2c 6-0068: Detected da9210
i2c 6-0068: Masking da9210 interrupt sources
i2c 6-0068: IRQ2 is not asserted, removing quirk
- Warm boot (reset button):
rcar_gen2_regulator_quirk: IRQ2 is not asserted, not installing quirk
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-03-10 03:50:40 +08:00
|
|
|
select I2C
|
2013-12-11 22:13:52 +08:00
|
|
|
|
2013-11-06 18:40:01 +08:00
|
|
|
config ARCH_R8A7791
|
2014-08-28 16:28:09 +08:00
|
|
|
bool "R-Car M2-W (R8A77910)"
|
2014-08-25 11:03:43 +08:00
|
|
|
select ARCH_RCAR_GEN2
|
2016-10-27 15:00:06 +08:00
|
|
|
select ARM_ERRATA_798181 if SMP
|
ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk
The r8a7790/lager and r8a7791/koelsch development boards have da9063 and
da9210 regulators. Both regulators have their interrupt request lines
tied to the same interrupt pin (IRQ2) on the SoC.
After cold boot or da9063-induced restart, both the da9063 and da9210
seem to assert their interrupt request lines. Hence as soon as one
driver requests this irq, it gets stuck in an interrupt storm, as it
only manages to deassert its own interrupt request line, and the other
driver hasn't installed an interrupt handler yet.
To handle this, install a quirk that masks the interrupts in both the
da9063 and da9210. This quirk has to run after the i2c master driver
has been initialized, but before the i2c slave drivers are initialized.
As it depends on i2c, select I2C if one of the affected platforms is
enabled in the kernel config.
On koelsch, the following happens:
- Cold boot or reboot using the da9063 restart handler:
IRQ2 is asserted, installing da9063/da9210 regulator quirk
...
i2c i2c-6: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
i2c 6-0058: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
i2c 6-0058: Detected da9063
i2c 6-0058: Masking da9063 interrupt sources
i2c 6-0068: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
i2c 6-0068: Detected da9210
i2c 6-0068: Masking da9210 interrupt sources
i2c 6-0068: IRQ2 is not asserted, removing quirk
- Warm boot (reset button):
rcar_gen2_regulator_quirk: IRQ2 is not asserted, not installing quirk
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2015-03-10 03:50:40 +08:00
|
|
|
select I2C
|
2013-11-06 18:40:01 +08:00
|
|
|
|
2016-06-13 05:01:49 +08:00
|
|
|
config ARCH_R8A7792
|
|
|
|
bool "R-Car V2H (R8A77920)"
|
|
|
|
select ARCH_RCAR_GEN2
|
2016-10-27 15:00:06 +08:00
|
|
|
select ARM_ERRATA_798181 if SMP
|
2016-06-13 05:01:49 +08:00
|
|
|
|
2015-06-01 22:22:54 +08:00
|
|
|
config ARCH_R8A7793
|
|
|
|
bool "R-Car M2-N (R8A7793)"
|
|
|
|
select ARCH_RCAR_GEN2
|
2016-10-27 15:00:06 +08:00
|
|
|
select ARM_ERRATA_798181 if SMP
|
2015-06-01 22:22:57 +08:00
|
|
|
select I2C
|
2015-06-01 22:22:54 +08:00
|
|
|
|
2014-09-04 22:02:28 +08:00
|
|
|
config ARCH_R8A7794
|
|
|
|
bool "R-Car E2 (R8A77940)"
|
|
|
|
select ARCH_RCAR_GEN2
|
2013-07-18 04:31:18 +08:00
|
|
|
|
2015-01-09 21:08:50 +08:00
|
|
|
config ARCH_SH73A0
|
|
|
|
bool "SH-Mobile AG5 (R8A73A00)"
|
|
|
|
select ARCH_RMOBILE
|
|
|
|
select RENESAS_INTC_IRQPIN
|
2013-07-18 04:31:09 +08:00
|
|
|
endif
|