Other Parts Discussed in Thread: TPS65910, AM3352
Currently, I'm using the AM3352 platform and the TPS65910 PMIC for development. I want to automatically load the tps65910-rtc driver during system boot.
During the boot process, I encountered the following issue:
# dmesg | grep rtc
[ 3.928888] tps65910-rtc tps65910-rtc: IRQ is not free.
[ 3.934367] tps65910-rtc: probe of tps65910-rtc failed with error -22
[ 3.955576] hctosys: unable to open rtc device (rtc0)
[ 4.775031] omap_rtc 44e3e000.rtc: already running
[ 4.780437] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[ 5.119240] PM: bootloader does not support rtc-only!
# dmesg | grep 65910
[ 3.888277] tps65910 0-002d: No interrupt support, no core IRQ
[ 3.894590] tps65910-gpio tps65910-gpio: ti,en-gpio-sleep not specified
[ 3.894744] gpiochip_add: registered GPIOs 504 to 509 on device: tps65910
[ 3.928888] tps65910-rtc tps65910-rtc: IRQ is not free.
[ 3.934367] tps65910-rtc: probe of tps65910-rtc failed with error -22
Based on the error message, it seems like the interrupt number for tps65910-rtc is being used by another device. How can I resolve this issue?
Other related messages:
Platform:Linux
Kernel Version:Linux-4.1.18
# CONFIG_RTC_DRV_OMAP is not set
CONFIG_GPIO_TPS65910=y
CONFIG_MFD_TPS65910=y
CONFIG_REGULATOR_TPS65910=y
CONFIG_RTC_DRV_TPS65910=y
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
clock-frequency = <400000>;
tps: tps@2d {
reg = <0x2d>;
interrupts = <&gpio3 0>;
}
};
&tps {
vcc1-supply = <&vbat>;
vcc2-supply = <&vbat>;
vcc3-supply = <&vbat>;
vcc4-supply = <&vbat>;
vcc5-supply = <&vbat>;
vcc6-supply = <&vbat>;
vcc7-supply = <&vbat>;
vccio-supply = <&vbat>;
regulators {
vrtc_reg: regulator@0 {
regulator-always-on;
};
vio_reg: regulator@1 {
regulator-always-on;
};
vdd1_reg: regulator@2 {
/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
regulator-name = "vdd_mpu";
regulator-min-microvolt = <912500>;
regulator-max-microvolt = <1351500>;
regulator-boot-on;
regulator-always-on;
};
vdd2_reg: regulator@3 {
/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
regulator-name = "vdd_core";
regulator-min-microvolt = <912500>;
regulator-max-microvolt = <1150000>;
regulator-boot-on;
regulator-always-on;
};
vdd3_reg: regulator@4 {
regulator-always-on;
};
vdig1_reg: regulator@5 {
regulator-always-on;
};
vdig2_reg: regulator@6 {
regulator-always-on;
};
vpll_reg: regulator@7 {
regulator-always-on;
};
vdac_reg: regulator@8 {
regulator-always-on;
};
vaux1_reg: regulator@9 {
regulator-always-on;
};
vaux2_reg: regulator@10 {
regulator-always-on;
};
vaux33_reg: regulator@11 {
regulator-always-on;
};
vmmc_reg: regulator@12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};



