Skip to content

Commit 45cd8bb

Browse files
jaehyooshenki
authored andcommitted
ARM: dts: aspeed: add LCLK setting into LPC KCS nodes
If LPC KCS driver is registered ahead of lpc-ctrl module, LPC KCS 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 KCS node as one of required properties to enable the LCLK by the LPC KCS 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-5-jae.hyun.yoo@intel.com Signed-off-by: Joel Stanley <joel@jms.id.au>
1 parent 002c42d commit 45cd8bb

2 files changed

Lines changed: 8 additions & 0 deletions

File tree

arch/arm/boot/dts/aspeed-g5.dtsi

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,27 +446,31 @@
446446
compatible = "aspeed,ast2500-kcs-bmc-v2";
447447
reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
448448
interrupts = <8>;
449+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
449450
status = "disabled";
450451
};
451452

452453
kcs2: kcs@28 {
453454
compatible = "aspeed,ast2500-kcs-bmc-v2";
454455
reg = <0x28 0x1>, <0x34 0x1>, <0x40 0x1>;
455456
interrupts = <8>;
457+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
456458
status = "disabled";
457459
};
458460

459461
kcs3: kcs@2c {
460462
compatible = "aspeed,ast2500-kcs-bmc-v2";
461463
reg = <0x2c 0x1>, <0x38 0x1>, <0x44 0x1>;
462464
interrupts = <8>;
465+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
463466
status = "disabled";
464467
};
465468

466469
kcs4: kcs@114 {
467470
compatible = "aspeed,ast2500-kcs-bmc-v2";
468471
reg = <0x114 0x1>, <0x118 0x1>, <0x11c 0x1>;
469472
interrupts = <8>;
473+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
470474
status = "disabled";
471475
};
472476

arch/arm/boot/dts/aspeed-g6.dtsi

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,7 @@
525525
compatible = "aspeed,ast2500-kcs-bmc-v2";
526526
reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
527527
interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
528+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
528529
kcs_chan = <1>;
529530
status = "disabled";
530531
};
@@ -533,20 +534,23 @@
533534
compatible = "aspeed,ast2500-kcs-bmc-v2";
534535
reg = <0x28 0x1>, <0x34 0x1>, <0x40 0x1>;
535536
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
537+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
536538
status = "disabled";
537539
};
538540

539541
kcs3: kcs@2c {
540542
compatible = "aspeed,ast2500-kcs-bmc-v2";
541543
reg = <0x2c 0x1>, <0x38 0x1>, <0x44 0x1>;
542544
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
545+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
543546
status = "disabled";
544547
};
545548

546549
kcs4: kcs@114 {
547550
compatible = "aspeed,ast2500-kcs-bmc-v2";
548551
reg = <0x114 0x1>, <0x118 0x1>, <0x11c 0x1>;
549552
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
553+
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
550554
status = "disabled";
551555
};
552556

0 commit comments

Comments
 (0)