1 /* SPDX-License-Identifier: GPL-2.0 */ << 2 #ifndef LINUX_SSB_MIPSCORE_H_ 1 #ifndef LINUX_SSB_MIPSCORE_H_ 3 #define LINUX_SSB_MIPSCORE_H_ 2 #define LINUX_SSB_MIPSCORE_H_ 4 3 5 #ifdef CONFIG_SSB_DRIVER_MIPS 4 #ifdef CONFIG_SSB_DRIVER_MIPS 6 5 7 struct ssb_device; 6 struct ssb_device; 8 7 9 struct ssb_serial_port { 8 struct ssb_serial_port { 10 void *regs; 9 void *regs; 11 unsigned long clockspeed; 10 unsigned long clockspeed; 12 unsigned int irq; 11 unsigned int irq; 13 unsigned int baud_base; 12 unsigned int baud_base; 14 unsigned int reg_shift; 13 unsigned int reg_shift; 15 }; 14 }; 16 15 17 struct ssb_pflash { 16 struct ssb_pflash { 18 bool present; 17 bool present; 19 u8 buswidth; 18 u8 buswidth; 20 u32 window; 19 u32 window; 21 u32 window_size; 20 u32 window_size; 22 }; 21 }; 23 22 24 #ifdef CONFIG_SSB_SFLASH 23 #ifdef CONFIG_SSB_SFLASH 25 struct ssb_sflash { 24 struct ssb_sflash { 26 bool present; 25 bool present; 27 u32 window; 26 u32 window; 28 u32 blocksize; 27 u32 blocksize; 29 u16 numblocks; 28 u16 numblocks; 30 u32 size; 29 u32 size; 31 30 32 void *priv; 31 void *priv; 33 }; 32 }; 34 #endif 33 #endif 35 34 36 struct ssb_mipscore { 35 struct ssb_mipscore { 37 struct ssb_device *dev; 36 struct ssb_device *dev; 38 37 39 int nr_serial_ports; 38 int nr_serial_ports; 40 struct ssb_serial_port serial_ports[4] 39 struct ssb_serial_port serial_ports[4]; 41 40 42 struct ssb_pflash pflash; 41 struct ssb_pflash pflash; 43 #ifdef CONFIG_SSB_SFLASH 42 #ifdef CONFIG_SSB_SFLASH 44 struct ssb_sflash sflash; 43 struct ssb_sflash sflash; 45 #endif 44 #endif 46 }; 45 }; 47 46 48 extern void ssb_mipscore_init(struct ssb_mipsc 47 extern void ssb_mipscore_init(struct ssb_mipscore *mcore); 49 extern u32 ssb_cpu_clock(struct ssb_mipscore * 48 extern u32 ssb_cpu_clock(struct ssb_mipscore *mcore); 50 49 51 extern unsigned int ssb_mips_irq(struct ssb_de 50 extern unsigned int ssb_mips_irq(struct ssb_device *dev); 52 51 53 52 54 #else /* CONFIG_SSB_DRIVER_MIPS */ 53 #else /* CONFIG_SSB_DRIVER_MIPS */ 55 54 56 struct ssb_mipscore { 55 struct ssb_mipscore { 57 }; 56 }; 58 57 59 static inline 58 static inline 60 void ssb_mipscore_init(struct ssb_mipscore *mc 59 void ssb_mipscore_init(struct ssb_mipscore *mcore) 61 { 60 { 62 } 61 } 63 62 64 static inline unsigned int ssb_mips_irq(struct 63 static inline unsigned int ssb_mips_irq(struct ssb_device *dev) 65 { 64 { 66 return 0; 65 return 0; 67 } 66 } 68 67 69 #endif /* CONFIG_SSB_DRIVER_MIPS */ 68 #endif /* CONFIG_SSB_DRIVER_MIPS */ 70 69 71 #endif /* LINUX_SSB_MIPSCORE_H_ */ 70 #endif /* LINUX_SSB_MIPSCORE_H_ */ 72 71
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.