diff options
Diffstat (limited to 'arch/arm/mach-ep93xx/ts72xx.h')
-rw-r--r-- | arch/arm/mach-ep93xx/ts72xx.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/arch/arm/mach-ep93xx/ts72xx.h b/arch/arm/mach-ep93xx/ts72xx.h new file mode 100644 index 000000000000..071feaa30adc --- /dev/null +++ b/arch/arm/mach-ep93xx/ts72xx.h | |||
@@ -0,0 +1,98 @@ | |||
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 | * febf9000 10800000 4K TS-5620 RTC index register | ||
13 | * febf8000 11700000 4K TS-5620 RTC data register | ||
14 | */ | ||
15 | |||
16 | #define TS72XX_MODEL_PHYS_BASE 0x22000000 | ||
17 | #define TS72XX_MODEL_VIRT_BASE IOMEM(0xfebff000) | ||
18 | #define TS72XX_MODEL_SIZE 0x00001000 | ||
19 | |||
20 | #define TS72XX_MODEL_TS7200 0x00 | ||
21 | #define TS72XX_MODEL_TS7250 0x01 | ||
22 | #define TS72XX_MODEL_TS7260 0x02 | ||
23 | #define TS72XX_MODEL_TS7300 0x03 | ||
24 | #define TS72XX_MODEL_TS7400 0x04 | ||
25 | #define TS72XX_MODEL_MASK 0x07 | ||
26 | |||
27 | |||
28 | #define TS72XX_OPTIONS_PHYS_BASE 0x22400000 | ||
29 | #define TS72XX_OPTIONS_VIRT_BASE IOMEM(0xfebfe000) | ||
30 | #define TS72XX_OPTIONS_SIZE 0x00001000 | ||
31 | |||
32 | #define TS72XX_OPTIONS_COM2_RS485 0x02 | ||
33 | #define TS72XX_OPTIONS_MAX197 0x01 | ||
34 | |||
35 | |||
36 | #define TS72XX_OPTIONS2_PHYS_BASE 0x22800000 | ||
37 | #define TS72XX_OPTIONS2_VIRT_BASE IOMEM(0xfebfd000) | ||
38 | #define TS72XX_OPTIONS2_SIZE 0x00001000 | ||
39 | |||
40 | #define TS72XX_OPTIONS2_TS9420 0x04 | ||
41 | #define TS72XX_OPTIONS2_TS9420_BOOT 0x02 | ||
42 | |||
43 | |||
44 | #define TS72XX_RTC_INDEX_VIRT_BASE IOMEM(0xfebf9000) | ||
45 | #define TS72XX_RTC_INDEX_PHYS_BASE 0x10800000 | ||
46 | #define TS72XX_RTC_INDEX_SIZE 0x00001000 | ||
47 | |||
48 | #define TS72XX_RTC_DATA_VIRT_BASE IOMEM(0xfebf8000) | ||
49 | #define TS72XX_RTC_DATA_PHYS_BASE 0x11700000 | ||
50 | #define TS72XX_RTC_DATA_SIZE 0x00001000 | ||
51 | |||
52 | #define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000 | ||
53 | #define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000 | ||
54 | |||
55 | #ifndef __ASSEMBLY__ | ||
56 | |||
57 | static inline int ts72xx_model(void) | ||
58 | { | ||
59 | return __raw_readb(TS72XX_MODEL_VIRT_BASE) & TS72XX_MODEL_MASK; | ||
60 | } | ||
61 | |||
62 | static inline int board_is_ts7200(void) | ||
63 | { | ||
64 | return ts72xx_model() == TS72XX_MODEL_TS7200; | ||
65 | } | ||
66 | |||
67 | static inline int board_is_ts7250(void) | ||
68 | { | ||
69 | return ts72xx_model() == TS72XX_MODEL_TS7250; | ||
70 | } | ||
71 | |||
72 | static inline int board_is_ts7260(void) | ||
73 | { | ||
74 | return ts72xx_model() == TS72XX_MODEL_TS7260; | ||
75 | } | ||
76 | |||
77 | static inline int board_is_ts7300(void) | ||
78 | { | ||
79 | return ts72xx_model() == TS72XX_MODEL_TS7300; | ||
80 | } | ||
81 | |||
82 | static inline int board_is_ts7400(void) | ||
83 | { | ||
84 | return ts72xx_model() == TS72XX_MODEL_TS7400; | ||
85 | } | ||
86 | |||
87 | static inline int is_max197_installed(void) | ||
88 | { | ||
89 | return !!(__raw_readb(TS72XX_OPTIONS_VIRT_BASE) & | ||
90 | TS72XX_OPTIONS_MAX197); | ||
91 | } | ||
92 | |||
93 | static inline int is_ts9420_installed(void) | ||
94 | { | ||
95 | return !!(__raw_readb(TS72XX_OPTIONS2_VIRT_BASE) & | ||
96 | TS72XX_OPTIONS2_TS9420); | ||
97 | } | ||
98 | #endif | ||