Loading drivers/mfd/db8500-prcmu.c +20 −0 Original line number Diff line number Diff line Loading @@ -883,6 +883,26 @@ bool db8500_prcmu_gic_pending_irq(void) return false; } /* * This function checks if there are pending interrupt on the * prcmu which has been delegated to monitor the irqs with the * db8500_prcmu_copy_gic_settings function. */ bool db8500_prcmu_pending_irq(void) { u32 it, im; int i; for (i = 0; i < PRCMU_GIC_NUMBER_REGS - 1; i++) { it = readl(PRCM_ARMITVAL31TO0 + i * 4); im = readl(PRCM_ARMITMSK31TO0 + i * 4); if (it & im) return true; /* There is a pending interrupt */ } return false; } /* * This function copies the gic SPI settings to the prcmu in order to * monitor them and abort/finish the retention/off sequence or state. Loading include/linux/mfd/db8500-prcmu.h +1 −0 Original line number Diff line number Diff line Loading @@ -584,6 +584,7 @@ int db8500_prcmu_gic_decouple(void); int db8500_prcmu_gic_recouple(void); int db8500_prcmu_copy_gic_settings(void); bool db8500_prcmu_gic_pending_irq(void); bool db8500_prcmu_pending_irq(void); void db8500_prcmu_enable_wakeups(u32 wakeups); int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state); int db8500_prcmu_request_clock(u8 clock, bool enable); Loading include/linux/mfd/dbx500-prcmu.h +8 −0 Original line number Diff line number Diff line Loading @@ -313,6 +313,14 @@ static inline int prcmu_copy_gic_settings(void) return db8500_prcmu_copy_gic_settings(); } static inline bool prcmu_pending_irq(void) { if (cpu_is_u5500()) return -EINVAL; else return db8500_prcmu_pending_irq(); } static inline int prcmu_set_epod(u16 epod_id, u8 epod_state) { if (cpu_is_u5500()) Loading Loading
drivers/mfd/db8500-prcmu.c +20 −0 Original line number Diff line number Diff line Loading @@ -883,6 +883,26 @@ bool db8500_prcmu_gic_pending_irq(void) return false; } /* * This function checks if there are pending interrupt on the * prcmu which has been delegated to monitor the irqs with the * db8500_prcmu_copy_gic_settings function. */ bool db8500_prcmu_pending_irq(void) { u32 it, im; int i; for (i = 0; i < PRCMU_GIC_NUMBER_REGS - 1; i++) { it = readl(PRCM_ARMITVAL31TO0 + i * 4); im = readl(PRCM_ARMITMSK31TO0 + i * 4); if (it & im) return true; /* There is a pending interrupt */ } return false; } /* * This function copies the gic SPI settings to the prcmu in order to * monitor them and abort/finish the retention/off sequence or state. Loading
include/linux/mfd/db8500-prcmu.h +1 −0 Original line number Diff line number Diff line Loading @@ -584,6 +584,7 @@ int db8500_prcmu_gic_decouple(void); int db8500_prcmu_gic_recouple(void); int db8500_prcmu_copy_gic_settings(void); bool db8500_prcmu_gic_pending_irq(void); bool db8500_prcmu_pending_irq(void); void db8500_prcmu_enable_wakeups(u32 wakeups); int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state); int db8500_prcmu_request_clock(u8 clock, bool enable); Loading
include/linux/mfd/dbx500-prcmu.h +8 −0 Original line number Diff line number Diff line Loading @@ -313,6 +313,14 @@ static inline int prcmu_copy_gic_settings(void) return db8500_prcmu_copy_gic_settings(); } static inline bool prcmu_pending_irq(void) { if (cpu_is_u5500()) return -EINVAL; else return db8500_prcmu_pending_irq(); } static inline int prcmu_set_epod(u16 epod_id, u8 epod_state) { if (cpu_is_u5500()) Loading