summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Hunter <jonathanh@nvidia.com>2018-07-03 09:59:47 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-09 20:07:56 +0200
commit8c6a5c96a60dcdb209e4b6e8373fb6207a9fb69c (patch)
treec18a20c1482aa491719b05ebd92ef51848fd2eae
parent86e40c0ccb044d265fdc54c5865b4adaea8d3841 (diff)
downloadlinux-stable-8c6a5c96a60dcdb209e4b6e8373fb6207a9fb69c.tar.gz
linux-stable-8c6a5c96a60dcdb209e4b6e8373fb6207a9fb69c.tar.bz2
linux-stable-8c6a5c96a60dcdb209e4b6e8373fb6207a9fb69c.zip
ARM: tegra: Fix Tegra30 Cardhu PCA954x reset
commit 6e1811900b6fe6f2b4665dba6bd6ed32c6b98575 upstream. On all versions of Tegra30 Cardhu, the reset signal to the NXP PCA9546 I2C mux is connected to the Tegra GPIO BB0. Currently, this pin on the Tegra is not configured as a GPIO but as a special-function IO (SFIO) that is multiplexing the pin to an I2S controller. On exiting system suspend, I2C commands sent to the PCA9546 are failing because there is no ACK. Although it is not possible to see exactly what is happening to the reset during suspend, by ensuring it is configured as a GPIO and driven high, to de-assert the reset, the failures are no longer seen. Please note that this GPIO is also used to drive the reset signal going to the camera connector on the board. However, given that there is no camera support currently for Cardhu, this should not have any impact. Fixes: 40431d16ff11 ("ARM: tegra: enable PCA9546 on Cardhu") Cc: stable@vger.kernel.org Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--arch/arm/boot/dts/tegra30-cardhu.dtsi1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi
index a1b682ea01bd..224a7605877e 100644
--- a/arch/arm/boot/dts/tegra30-cardhu.dtsi
+++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi
@@ -200,6 +200,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
+ reset-gpio = <&gpio TEGRA_GPIO(BB, 0) GPIO_ACTIVE_LOW>;
};
};