5ccbcf999d
- OTG support - Charger - WiFi 5GHz - RTC bug "fixed" (always-on interrupt - made device overheat!) - Kernel version bumped to 5.2.1 - Memory timings - New WM8994 codec board driver (fixes suspend/resume) - Camera's regulator supported now (saves power at least!) - Updated panel driver (still not in mainline, idk why) - MHL support in kernel (fixes boot times and screen, currently disabled in X, not tested) - Other minor kernel chagnes [ci:skip-build]: already built successfully in CI
60 lines
2 KiB
Diff
60 lines
2 KiB
Diff
From 6f64a6f1329e4d61da8f94b4bd68a0a2a62da305 Mon Sep 17 00:00:00 2001
|
|
From: Sergey Larin <cerg2010cerg2010@mail.ru>
|
|
Date: Thu, 20 Jun 2019 19:47:11 +0300
|
|
Subject: [PATCH] ARM: dts: tegra20-glide: Workaround RTC bugs
|
|
|
|
MAX8907 has broken RTC on this board - alarm reports
|
|
always-on IRQ, so as a workaround we use Tegra's RTC.
|
|
|
|
Signed-off-by: Sergey Larin <cerg2010cerg2010@mail.ru>
|
|
---
|
|
arch/arm/boot/dts/tegra20-glide.dts | 26 +++++++++++++++++++++++---
|
|
1 file changed, 23 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/arch/arm/boot/dts/tegra20-glide.dts b/arch/arm/boot/dts/tegra20-glide.dts
|
|
index 195ccb0a1012..107efb68c99e 100644
|
|
--- a/arch/arm/boot/dts/tegra20-glide.dts
|
|
+++ b/arch/arm/boot/dts/tegra20-glide.dts
|
|
@@ -9,8 +9,9 @@
|
|
compatible = "samsung,i927", "nvidia,tegra20";
|
|
|
|
aliases {
|
|
- rtc0 = "/i2c@7000d000/max8907@3c";
|
|
- rtc1 = "/rtc@7000e000";
|
|
+ /* MAX8907 RTC seems to be broken here, so use Tegra's */
|
|
+ rtc0 = "/rtc@7000e000";
|
|
+ rtc1 = "/i2c@7000d000/max8907@3c";
|
|
serial0 = &uartb;
|
|
serial1 = &uarta;
|
|
serial2 = &uartc;
|
|
@@ -585,7 +586,26 @@
|
|
pmic: max8907@3c {
|
|
compatible = "maxim,max8907";
|
|
reg = <0x3c>;
|
|
- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ /*
|
|
+ * Ints seem to be broken, even on downstream -
|
|
+ * on Whistler board, which uses the same PMIC,
|
|
+ * they're marked as LEVEL_HIGH, however, this
|
|
+ * makes them always-on, so we get something
|
|
+ * like "irq 301: nobody cared" - no interrupt
|
|
+ * status reg set, BUT irq line is asserted, and
|
|
+ * I don't know how to clear it. Probably it
|
|
+ * should be triggered on edge. Downstream
|
|
+ * charger driver triggers charging interrupt
|
|
+ * on TRIGGER_RISING. Oh, no docs available
|
|
+ * on the net.
|
|
+ *
|
|
+ * Downstream kernel also has broken alarm, but
|
|
+ * time readings are correct.
|
|
+ *
|
|
+ * As a workaround, we use internal Tegra RTC
|
|
+ * as a main RTC.
|
|
+ */
|
|
+ interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
maxim,system-power-controller;
|
|
|
|
--
|
|
2.22.0
|
|
|