ARM: dts: aspeed: add LCLK setting into LPC IBT node
authorJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Mon, 8 Nov 2021 19:01:55 +0000 (11:01 -0800)
committerJoel Stanley <joel@jms.id.au>
Tue, 21 Dec 2021 05:01:57 +0000 (15:31 +1030)
If LPC BT driver is registered ahead of lpc-ctrl module, LPC BT
hardware block will be enabled without heart beating of LCLK until
lpc-ctrl enables the LCLK. This issue causes improper handling on
host interrupts when the host sends interrupts in that time frame.
Then kernel eventually forcibly disables the interrupt with
dumping stack and printing a 'nobody cared this irq' message out.

To prevent this issue, all LPC sub drivers should enable LCLK
individually so this patch adds 'clocks' property setting into LPC
IBT node as one of required properties to enable the LCLK by the
LPC IBT driver.

Note: dtbs should be re-compiled after applying this change since
it's adding a new required property otherwise the driver will not
be probed correctly.

Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
Link: https://lore.kernel.org/r/20211108190200.290957-2-jae.hyun.yoo@intel.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
arch/arm/boot/dts/aspeed-g4.dtsi
arch/arm/boot/dts/aspeed-g5.dtsi
arch/arm/boot/dts/aspeed-g6.dtsi

index b313a1cf5f73f5e82113b61c69aa71781c11efc9..f14dace34c5aae0ea536bed890548a51e5bad487 100644 (file)
                                        compatible = "aspeed,ast2400-ibt-bmc";
                                        reg = <0x140 0x18>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
index c7049454c7cbd14092408489687a3db3cc7eece0..d0cc4be2de59fd403bf5ee49fda8b4cbc637dc31 100644 (file)
                                        compatible = "aspeed,ast2500-ibt-bmc";
                                        reg = <0x140 0x18>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
                        };
index 16b36c13695af69ee33c1bbf184943a55b4f77e5..539edbd7aaeefc293b8b84e698e51c26d708d00b 100644 (file)
                                        compatible = "aspeed,ast2600-ibt-bmc";
                                        reg = <0x140 0x18>;
                                        interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
                        };