1a5e0454cSUlf Hansson /* SPDX-License-Identifier: GPL-2.0 */ 2a5e0454cSUlf Hansson 3a5e0454cSUlf Hansson #ifndef __CPUIDLE_PSCI_H 4a5e0454cSUlf Hansson #define __CPUIDLE_PSCI_H 5a5e0454cSUlf Hansson 6166bf835SUlf Hansson struct device; 7a65a397fSUlf Hansson struct device_node; 8a65a397fSUlf Hansson 9a65a397fSUlf Hansson void psci_set_domain_state(u32 state); 10166bf835SUlf Hansson int psci_dt_parse_state_node(struct device_node *np, u32 *state); 11a65a397fSUlf Hansson 1203175619SUlf Hansson #ifdef CONFIG_ARM_PSCI_CPUIDLE_DOMAIN 13*9d976d67SAnup Patel 14*9d976d67SAnup Patel #include "dt_idle_genpd.h" 15*9d976d67SAnup Patel psci_dt_attach_cpu(int cpu)16*9d976d67SAnup Patelstatic inline struct device *psci_dt_attach_cpu(int cpu) 17*9d976d67SAnup Patel { 18*9d976d67SAnup Patel return dt_idle_attach_cpu(cpu, "psci"); 19*9d976d67SAnup Patel } 20*9d976d67SAnup Patel psci_dt_detach_cpu(struct device * dev)21*9d976d67SAnup Patelstatic inline void psci_dt_detach_cpu(struct device *dev) 22*9d976d67SAnup Patel { 23*9d976d67SAnup Patel dt_idle_detach_cpu(dev); 24*9d976d67SAnup Patel } 25*9d976d67SAnup Patel 26a5e0454cSUlf Hansson #else psci_dt_attach_cpu(int cpu)27166bf835SUlf Hanssonstatic inline struct device *psci_dt_attach_cpu(int cpu) { return NULL; } psci_dt_detach_cpu(struct device * dev)28166bf835SUlf Hanssonstatic inline void psci_dt_detach_cpu(struct device *dev) { } 29a5e0454cSUlf Hansson #endif 30a5e0454cSUlf Hansson 31a5e0454cSUlf Hansson #endif /* __CPUIDLE_PSCI_H */ 32