1 #ifndef __ASM_R8A7779_H__ 2 #define __ASM_R8A7779_H__ 3 4 #include <linux/sh_clk.h> 5 #include <linux/pm_domain.h> 6 #include <linux/sh_eth.h> 7 8 struct platform_device; 9 10 struct r8a7779_pm_ch { 11 unsigned long chan_offs; 12 unsigned int chan_bit; 13 unsigned int isr_bit; 14 }; 15 16 struct r8a7779_pm_domain { 17 struct generic_pm_domain genpd; 18 struct r8a7779_pm_ch ch; 19 }; 20 to_r8a7779_ch(struct generic_pm_domain * d)21static inline struct r8a7779_pm_ch *to_r8a7779_ch(struct generic_pm_domain *d) 22 { 23 return &container_of(d, struct r8a7779_pm_domain, genpd)->ch; 24 } 25 26 extern void r8a7779_init_delay(void); 27 extern void r8a7779_init_irq(void); 28 extern void r8a7779_init_irq_extpin(int irlm); 29 extern void r8a7779_init_irq_dt(void); 30 extern void r8a7779_map_io(void); 31 extern void r8a7779_earlytimer_init(void); 32 extern void r8a7779_add_early_devices(void); 33 extern void r8a7779_add_standard_devices(void); 34 extern void r8a7779_add_standard_devices_dt(void); 35 extern void r8a7779_add_ether_device(struct sh_eth_plat_data *pdata); 36 extern void r8a7779_clock_init(void); 37 extern void r8a7779_pinmux_init(void); 38 extern void r8a7779_pm_init(void); 39 extern void r8a7779_register_twd(void); 40 extern int r8a7779_sysc_power_down(struct r8a7779_pm_ch *r8a7779_ch); 41 extern int r8a7779_sysc_power_up(struct r8a7779_pm_ch *r8a7779_ch); 42 43 #ifdef CONFIG_PM 44 extern void __init r8a7779_init_pm_domains(void); 45 #else r8a7779_init_pm_domains(void)46static inline void r8a7779_init_pm_domains(void) {} 47 #endif /* CONFIG_PM */ 48 49 extern struct smp_operations r8a7779_smp_ops; 50 51 #endif /* __ASM_R8A7779_H__ */ 52