1 /* 2 * arch/arm/mach-ep93xx/include/mach/ts72xx.h 3 */ 4 5 /* 6 * TS72xx memory map: 7 * 8 * virt phys size 9 * febff000 22000000 4K model number register (bits 0-2) 10 * febfe000 22400000 4K options register 11 * febfd000 22800000 4K options register #2 12 */ 13 14 #define TS72XX_MODEL_PHYS_BASE 0x22000000 15 #define TS72XX_MODEL_VIRT_BASE IOMEM(0xfebff000) 16 #define TS72XX_MODEL_SIZE 0x00001000 17 18 #define TS72XX_MODEL_TS7200 0x00 19 #define TS72XX_MODEL_TS7250 0x01 20 #define TS72XX_MODEL_TS7260 0x02 21 #define TS72XX_MODEL_TS7300 0x03 22 #define TS72XX_MODEL_TS7400 0x04 23 #define TS72XX_MODEL_MASK 0x07 24 25 26 #define TS72XX_OPTIONS_PHYS_BASE 0x22400000 27 #define TS72XX_OPTIONS_VIRT_BASE IOMEM(0xfebfe000) 28 #define TS72XX_OPTIONS_SIZE 0x00001000 29 30 #define TS72XX_OPTIONS_COM2_RS485 0x02 31 #define TS72XX_OPTIONS_MAX197 0x01 32 33 34 #define TS72XX_OPTIONS2_PHYS_BASE 0x22800000 35 #define TS72XX_OPTIONS2_VIRT_BASE IOMEM(0xfebfd000) 36 #define TS72XX_OPTIONS2_SIZE 0x00001000 37 38 #define TS72XX_OPTIONS2_TS9420 0x04 39 #define TS72XX_OPTIONS2_TS9420_BOOT 0x02 40 41 #define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000 42 #define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000 43 44 #ifndef __ASSEMBLY__ 45 46 static inline int ts72xx_model(void) 47 { 48 return __raw_readb(TS72XX_MODEL_VIRT_BASE) & TS72XX_MODEL_MASK; 49 } 50 51 static inline int board_is_ts7200(void) 52 { 53 return ts72xx_model() == TS72XX_MODEL_TS7200; 54 } 55 56 static inline int board_is_ts7250(void) 57 { 58 return ts72xx_model() == TS72XX_MODEL_TS7250; 59 } 60 61 static inline int board_is_ts7260(void) 62 { 63 return ts72xx_model() == TS72XX_MODEL_TS7260; 64 } 65 66 static inline int board_is_ts7300(void) 67 { 68 return ts72xx_model() == TS72XX_MODEL_TS7300; 69 } 70 71 static inline int board_is_ts7400(void) 72 { 73 return ts72xx_model() == TS72XX_MODEL_TS7400; 74 } 75 76 static inline int is_max197_installed(void) 77 { 78 return !!(__raw_readb(TS72XX_OPTIONS_VIRT_BASE) & 79 TS72XX_OPTIONS_MAX197); 80 } 81 82 static inline int is_ts9420_installed(void) 83 { 84 return !!(__raw_readb(TS72XX_OPTIONS2_VIRT_BASE) & 85 TS72XX_OPTIONS2_TS9420); 86 } 87 #endif 88