From 8d22020a7e1e540592e801a0aa0aebe938599f47 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 12 Dec 2018 11:54:35 +0100 Subject: ARM: shmobile: Add missing dts files to MAINTAINERS Add some more patterns to the ARM/SHMOBILE ARM ARCHITECTURE section of MAINTAINERS to complete the list of maintained dts files. As of writing dts files covered are: * arch/arm/boot/dts/gr-peach-audiocamerashield.dtsi * arch/arm/boot/dts/iwg20d-q7-common.dtsi * arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 32d444476a90..f4c805c1a34b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2109,6 +2109,8 @@ Q: http://patchwork.kernel.org/project/linux-renesas-soc/list/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next S: Supported F: arch/arm/boot/dts/emev2* +F: arch/arm/boot/dts/gr-peach* +F: arch/arm/boot/dts/iwg20d-q7* F: arch/arm/boot/dts/r7s* F: arch/arm/boot/dts/r8a* F: arch/arm/boot/dts/r9a* -- cgit v1.2.3 From 5347a0203709d5039a74d7c94e23519eee478094 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 7 Dec 2018 21:28:58 +0100 Subject: ARM: shmobile: Fix R-Car Gen2 regulator quirk The quirk code currently detects all compatible I2C chips with a shared IRQ line on all I2C busses, adds them into a list, and registers a bus notifier. For every chip for which the bus notifier triggers, the quirk code performs I2C transfer on that I2C bus for all addresses in the list. The problem is that this may generate transfers to non-existing chips on systems with multiple I2C busses. This patch adds a check to verify that the I2C bus to which the chip with shared IRQ is attached to matches the I2C bus of the chip which triggered the bus notifier and only starts the I2C transfer if they match. Signed-off-by: Marek Vasut Tested-by: Nguyen Viet Dung Signed-off-by: Simon Horman --- arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c index 8e50daa99151..dc526ef2e9b3 100644 --- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c @@ -40,6 +40,7 @@ struct regulator_quirk { struct list_head list; const struct of_device_id *id; + struct device_node *np; struct of_phandle_args irq_args; struct i2c_msg i2c_msg; bool shared; /* IRQ line is shared */ @@ -101,6 +102,9 @@ static int regulator_quirk_notify(struct notifier_block *nb, if (!pos->shared) continue; + if (pos->np->parent != client->dev.parent->of_node) + continue; + dev_info(&client->dev, "clearing %s@0x%02x interrupts\n", pos->id->compatible, pos->i2c_msg.addr); @@ -165,6 +169,7 @@ static int __init rcar_gen2_regulator_quirk(void) memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); quirk->id = id; + quirk->np = np; quirk->i2c_msg.addr = addr; ret = of_irq_parse_one(np, 0, argsa); -- cgit v1.2.3