aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2015-03-16 10:36:44 -0400
committerArnd Bergmann <arnd@arndb.de>2015-03-16 10:36:44 -0400
commitffe971ef40ca147ab0443ea12ed4fc552bb28498 (patch)
tree000c170cf82bc5beba049f326f92e6f8aaae9cf2 /arch/arm/boot/dts
parenteff506faec227e763d3cb45d3c4c456efe4823b7 (diff)
parent46dd8a809effdc7ebe6ec760e3e421d5ac2a40f1 (diff)
Merge tag 'renesas-da9063-da9210-quirk-for-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc
Merge "Renesas ARM Based SoC da9063/da9210 Regulator Quirk for v4.1" from Simon Horman: 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. * tag 'renesas-da9063-da9210-quirk-for-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: lager: Add da9063 PMIC device node for system restart ARM: shmobile: lager dts: Add da9210 regulator interrupt ARM: shmobile: koelsch: Add da9063 PMIC device node for system restart ARM: shmobile: koelsch dts: Add da9210 regulator interrupt ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk
Diffstat (limited to 'arch/arm/boot/dts')
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts18
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts18
2 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 0c3b6783b72a..2a0f895c48d0 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -513,9 +513,27 @@
513 pinctrl-0 = <&iic3_pins>; 513 pinctrl-0 = <&iic3_pins>;
514 status = "okay"; 514 status = "okay";
515 515
516 pmic@58 {
517 compatible = "dlg,da9063";
518 reg = <0x58>;
519 interrupt-parent = <&irqc0>;
520 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
521 interrupt-controller;
522
523 rtc {
524 compatible = "dlg,da9063-rtc";
525 };
526
527 wdt {
528 compatible = "dlg,da9063-watchdog";
529 };
530 };
531
516 vdd_dvfs: regulator@68 { 532 vdd_dvfs: regulator@68 {
517 compatible = "dlg,da9210"; 533 compatible = "dlg,da9210";
518 reg = <0x68>; 534 reg = <0x68>;
535 interrupt-parent = <&irqc0>;
536 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
519 537
520 regulator-min-microvolt = <1000000>; 538 regulator-min-microvolt = <1000000>;
521 regulator-max-microvolt = <1000000>; 539 regulator-max-microvolt = <1000000>;
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index a3c27807f6c5..b2dcf640d583 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -517,9 +517,27 @@
517 status = "okay"; 517 status = "okay";
518 clock-frequency = <100000>; 518 clock-frequency = <100000>;
519 519
520 pmic@58 {
521 compatible = "dlg,da9063";
522 reg = <0x58>;
523 interrupt-parent = <&irqc0>;
524 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
525 interrupt-controller;
526
527 rtc {
528 compatible = "dlg,da9063-rtc";
529 };
530
531 wdt {
532 compatible = "dlg,da9063-watchdog";
533 };
534 };
535
520 vdd_dvfs: regulator@68 { 536 vdd_dvfs: regulator@68 {
521 compatible = "dlg,da9210"; 537 compatible = "dlg,da9210";
522 reg = <0x68>; 538 reg = <0x68>;
539 interrupt-parent = <&irqc0>;
540 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
523 541
524 regulator-min-microvolt = <1000000>; 542 regulator-min-microvolt = <1000000>;
525 regulator-max-microvolt = <1000000>; 543 regulator-max-microvolt = <1000000>;