Hi,
I have a board featuring an AM6225 and a TPS65219 and whose design is based on the AM62LP SK. I'm getting error messages like below right after booting my yocto custom built Linux distribution built on SDK 09.00.00.009 :
[ 15.513608] irq 27: nobody cared (try booting with the "irqpoll" option)
[ 15.520339] CPU: 0 PID: 114 Comm: irq/27-tps65219 Tainted: G O 6.1.46-gf8110d9ce8 #1
[ 15.529459] Hardware name: Secheron sep-disp (DT)
[ 15.534152] Call trace:
[ 15.536592] dump_backtrace.part.0+0xdc/0xf0
[ 15.540878] show_stack+0x18/0x30
[ 15.544190] dump_stack_lvl+0x68/0x84
[ 15.547854] dump_stack+0x18/0x34
[ 15.551165] __report_bad_irq+0x4c/0xdc
[ 15.554998] note_interrupt+0x33c/0x3a0
[ 15.558833] handle_irq_event+0x9c/0xbc
[ 15.562663] handle_fasteoi_irq+0xa4/0x1f4
[ 15.566753] generic_handle_domain_irq+0x2c/0x44
[ 15.571362] gic_handle_irq+0x50/0x124
[ 15.575108] call_on_irq_stack+0x24/0x4c
[ 15.579023] do_interrupt_handler+0x80/0x84
[ 15.583199] el1_interrupt+0x34/0x70
[ 15.586767] el1h_64_irq_handler+0x18/0x2c
[ 15.590854] el1h_64_irq+0x64/0x68
[ 15.594248] _raw_spin_unlock_irq+0x18/0x50
[ 15.598428] irq_thread_fn+0x60/0xb0
[ 15.601995] irq_thread+0x168/0x24c
[ 15.605476] kthread+0x10c/0x110
[ 15.608702] ret_from_fork+0x10/0x20
[ 15.612271] handlers:
[ 15.614534] [<000000002a2a9710>] irq_default_primary_handler threaded [<000000001f5882ff>] regmap_irq_thread
[ 15.624367] Disabling IRQ #27
Here's what /proc/interrupts looks like:
root@dan:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
11: 104427 32724 265833 237466 GICv3 30 Level arch_timer
14: 9 0 0 0 GICv3 108 Level mbox-m4-0, mbox-r5-0
15: 0 0 0 0 GICv3 23 Level arm-pmu
16: 0 0 0 0 GICv3 130 Level pinctrl
17: 110833 0 0 0 GICv3 66 Level 4d000000.mailbox thr_012
26: 326058 0 0 0 GICv3 193 Level 20000000.i2c
27: 100001 0 0 0 GICv3 256 Level tps65219_irq
28: 0 0 0 0 tps65219_irq 0 Edge LDO3_SCG
29: 0 0 0 0 tps65219_irq 1 Edge LDO3_OC
30: 0 0 0 0 tps65219_irq 2 Edge LDO3_UV
31: 0 0 0 0 tps65219_irq 3 Edge LDO4_SCG
32: 0 0 0 0 tps65219_irq 4 Edge LDO4_OC
33: 0 0 0 0 tps65219_irq 5 Edge LDO4_UV
34: 0 0 0 0 tps65219_irq 6 Edge LDO1_SCG
35: 0 0 0 0 tps65219_irq 7 Edge LDO1_OC
36: 0 0 0 0 tps65219_irq 8 Edge LDO1_UV
37: 0 0 0 0 tps65219_irq 9 Edge LDO2_SCG
38: 0 0 0 0 tps65219_irq 10 Edge LDO2_OC
39: 0 0 0 0 tps65219_irq 11 Edge LDO2_UV
40: 0 0 0 0 tps65219_irq 12 Edge BUCK3_SCG
41: 0 0 0 0 tps65219_irq 13 Edge BUCK3_OC
42: 0 0 0 0 tps65219_irq 14 Edge BUCK3_NEG_OC
43: 0 0 0 0 tps65219_irq 15 Edge BUCK3_UV
44: 0 0 0 0 tps65219_irq 16 Edge BUCK1_SCG
45: 0 0 0 0 tps65219_irq 17 Edge BUCK1_OC
46: 0 0 0 0 tps65219_irq 18 Edge BUCK1_NEG_OC
47: 0 0 0 0 tps65219_irq 19 Edge BUCK1_UV
48: 0 0 0 0 tps65219_irq 20 Edge BUCK2_SCG
49: 0 0 0 0 tps65219_irq 21 Edge BUCK2_OC
50: 0 0 0 0 tps65219_irq 22 Edge BUCK2_NEG_OC
51: 0 0 0 0 tps65219_irq 23 Edge BUCK2_UV
52: 0 0 0 0 tps65219_irq 32 Edge BUCK1_RV
53: 0 0 0 0 tps65219_irq 33 Edge BUCK2_RV
54: 0 0 0 0 tps65219_irq 34 Edge BUCK3_RV
55: 0 0 0 0 tps65219_irq 35 Edge LDO1_RV
56: 0 0 0 0 tps65219_irq 36 Edge LDO2_RV
57: 0 0 0 0 tps65219_irq 37 Edge LDO3_RV
58: 0 0 0 0 tps65219_irq 38 Edge LDO4_RV
59: 0 0 0 0 tps65219_irq 39 Edge BUCK1_RV_SD
60: 0 0 0 0 tps65219_irq 40 Edge BUCK2_RV_SD
61: 0 0 0 0 tps65219_irq 41 Edge BUCK3_RV_SD
62: 0 0 0 0 tps65219_irq 42 Edge LDO1_RV_SD
63: 0 0 0 0 tps65219_irq 43 Edge LDO2_RV_SD
64: 0 0 0 0 tps65219_irq 44 Edge LDO3_RV_SD
65: 0 0 0 0 tps65219_irq 45 Edge LDO4_RV_SD
66: 0 0 0 0 tps65219_irq 46 Edge TIMEOUT
67: 0 0 0 0 tps65219_irq 24 Edge SENSOR_3_WARM
68: 0 0 0 0 tps65219_irq 25 Edge SENSOR_2_WARM
69: 0 0 0 0 tps65219_irq 26 Edge SENSOR_1_WARM
70: 0 0 0 0 tps65219_irq 27 Edge SENSOR_0_WARM
71: 0 0 0 0 tps65219_irq 28 Edge SENSOR_3_HOT
72: 0 0 0 0 tps65219_irq 29 Edge SENSOR_2_HOT
73: 0 0 0 0 tps65219_irq 30 Edge SENSOR_1_HOT
74: 0 0 0 0 tps65219_irq 31 Edge SENSOR_0_HOT
75: 0 0 0 0 tps65219_irq 47 Edge tps65219-pwrbutton.2.auto
76: 0 0 0 0 tps65219_irq 48 Edge tps65219-pwrbutton.2.auto
77: 46 0 0 0 GICv3 194 Level 20010000.i2c
78: 32770 0 0 0 GICv3 171 Level fc40000.spi
79: 14 0 0 0 MSI-INTA 1713152 Level 485c0100.dma-controller chan0
167: 1 0 16 0 MSI-INTA 1970707 Level 8000000.ethernet-tx0
239: 0 0 0 0 MSI-INTA 1970779 Level 485c0000.dma-controller chan2
257: 27 25722 0 0 MSI-INTA 1971731 Level 8000000.ethernet
281: 0 0 0 0 MSI-INTA 1971755 Level 485c0000.dma-controller chan0
282: 0 0 0 0 MSI-INTA 1971756 Level 485c0000.dma-controller chan1
289: 1902 0 0 0 GICv3 210 Level 2800000.serial
290: 0 0 0 0 pinctrl 456 Edge 2800000.serial:wakeup
291: 0 0 0 0 GICv3 134 Level 8000000.ethernet
295: 277 0 0 0 GICv3 165 Level mmc0
427: 0 0 0 0 GPIO 4 Edge -davinci_gpio 1-0020
476: 5605 0 0 0 GICv3 115 Level mmc1
480: 2 0 0 0 GICv3 132 Level 2b1f0000.rtc
481: 564 0 0 0 GICv3 116 Level tidss
482: 3 0 0 0 GICv3 118 Level pvrsrvkm
491: 39 0 0 0 GICv3 220 Level xhci-hcd:usb1
492: 25731 0 0 0 GICv3 258 Level dwc3
IPI0: 453 2528 919 1276 Rescheduling interrupts
IPI1: 11728 152851 19125 24243 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 25364 720 9274 1270 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
Err: 0
Here's the associated DTS part:
tps65219: pmic@30 {
compatible = "ti,tps65219";
reg = <0x30>;
buck1-supply = <&vcc_3v3_main>;
buck2-supply = <&vcc_3v3_main>;
buck3-supply = <&vcc_3v3_main>;
ldo1-supply = <&vcc_3v3_main>;
ldo2-supply = <&vcc_1v8>;
ldo3-supply = <&vcc_3v3_main>;
ldo4-supply = <&vcc_3v3_main>;
pinctrl-names = "default";
pinctrl-0 = <&main_gpio1_pmic_intr_pins_default>;
interrupt-parent = <&gic500>;
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <1>;
ti,power-button;
regulators {
vdd_core: buck1 {
regulator-name = "VDD_CORE";
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <750000>;
regulator-boot-on;
regulator-always-on;
};
vcc_1v8: buck2 {
regulator-name = "VCC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
vdd_ddr4: buck3 {
regulator-name = "VDD_DDR4";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1200000>;
regulator-boot-on;
regulator-always-on;
};
vddshv_sdio: ldo1 {
regulator-name = "VDDSHV_SDIO";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};
vddr_core: ldo2 {
regulator-name = "VDDR_CORE";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-boot-on;
regulator-always-on;
};
vdda_1v8: ldo3 {
regulator-name = "VDDA_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
vdd_2v5: ldo4 {
regulator-name = "VDD_2V5";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
regulator-boot-on;
regulator-always-on;
};
};
};
And here's the associated schematics, PMIC_INTn arrives on ball D16:

Adding "irqpoll" to Linux bootargs solve the issue but I would prefer getting to the bottom of the issue. Could it be a driver issue ? Something wrong with the DTS ? Any idea is welcome.
Regards
Pierre Buffo