hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Hardware specific definitions for Sharp SL-C6000x series of PDAs
 *
 * Copyright (c) 2005 Dirk Opfer
 *
 * Based on Sharp's 2.4 kernel patches
 */
#ifndef _ASM_ARCH_TOSA_H_
#define _ASM_ARCH_TOSA_H_ 1
 
#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */
 
/*  TOSA Chip selects  */
#define TOSA_LCDC_PHYS        PXA_CS4_PHYS
/* Internel Scoop */
#define TOSA_CF_PHYS        (PXA_CS2_PHYS + 0x00800000)
/* Jacket Scoop */
#define TOSA_SCOOP_PHYS      (PXA_CS5_PHYS + 0x00800000)
 
#define TOSA_NR_IRQS        (IRQ_BOARD_START + TC6393XB_NR_IRQS)
/*
 * SCOOP2 internal GPIOs
 */
#define TOSA_SCOOP_GPIO_BASE        PXA_NR_BUILTIN_GPIO
#define TOSA_SCOOP_PXA_VCORE1        SCOOP_GPCR_PA11
#define TOSA_GPIO_TC6393XB_REST_IN    (TOSA_SCOOP_GPIO_BASE + 1)
#define TOSA_GPIO_IR_POWERDWN        (TOSA_SCOOP_GPIO_BASE + 2)
#define TOSA_GPIO_SD_WP            (TOSA_SCOOP_GPIO_BASE + 3)
#define TOSA_GPIO_PWR_ON        (TOSA_SCOOP_GPIO_BASE + 4)
#define TOSA_SCOOP_AUD_PWR_ON        SCOOP_GPCR_PA16
#define TOSA_GPIO_BT_RESET        (TOSA_SCOOP_GPIO_BASE + 6)
#define TOSA_GPIO_BT_PWR_EN        (TOSA_SCOOP_GPIO_BASE + 7)
#define TOSA_SCOOP_AC_IN_OL        SCOOP_GPCR_PA19
 
/* GPIO Direction   1 : output mode / 0:input mode */
#define TOSA_SCOOP_IO_DIR     (TOSA_SCOOP_PXA_VCORE1 | \
       TOSA_SCOOP_AUD_PWR_ON)
 
/*
 * SCOOP2 jacket GPIOs
 */
#define TOSA_SCOOP_JC_GPIO_BASE        (PXA_NR_BUILTIN_GPIO + 12)
#define TOSA_GPIO_BT_LED        (TOSA_SCOOP_JC_GPIO_BASE + 0)
#define TOSA_GPIO_NOTE_LED        (TOSA_SCOOP_JC_GPIO_BASE + 1)
#define TOSA_GPIO_CHRG_ERR_LED        (TOSA_SCOOP_JC_GPIO_BASE + 2)
#define TOSA_GPIO_USB_PULLUP        (TOSA_SCOOP_JC_GPIO_BASE + 3)
#define TOSA_GPIO_TC6393XB_SUSPEND    (TOSA_SCOOP_JC_GPIO_BASE + 4)
#define TOSA_GPIO_TC6393XB_L3V_ON    (TOSA_SCOOP_JC_GPIO_BASE + 5)
#define TOSA_SCOOP_JC_WLAN_DETECT    SCOOP_GPCR_PA17
#define TOSA_GPIO_WLAN_LED        (TOSA_SCOOP_JC_GPIO_BASE + 7)
#define TOSA_SCOOP_JC_CARD_LIMIT_SEL    SCOOP_GPCR_PA19
 
/* GPIO Direction   1 : output mode / 0:input mode */
#define TOSA_SCOOP_JC_IO_DIR (TOSA_SCOOP_JC_CARD_LIMIT_SEL)
 
/*
 * TC6393XB GPIOs
 */
#define TOSA_TC6393XB_GPIO_BASE        (PXA_NR_BUILTIN_GPIO + 2 * 12)
 
#define TOSA_GPIO_TG_ON            (TOSA_TC6393XB_GPIO_BASE + 0)
#define TOSA_GPIO_L_MUTE        (TOSA_TC6393XB_GPIO_BASE + 1)
#define TOSA_GPIO_BL_C20MA        (TOSA_TC6393XB_GPIO_BASE + 3)
#define TOSA_GPIO_CARD_VCC_ON        (TOSA_TC6393XB_GPIO_BASE + 4)
#define TOSA_GPIO_CHARGE_OFF        (TOSA_TC6393XB_GPIO_BASE + 6)
#define TOSA_GPIO_CHARGE_OFF_JC        (TOSA_TC6393XB_GPIO_BASE + 7)
#define TOSA_GPIO_BAT0_V_ON        (TOSA_TC6393XB_GPIO_BASE + 9)
#define TOSA_GPIO_BAT1_V_ON        (TOSA_TC6393XB_GPIO_BASE + 10)
#define TOSA_GPIO_BU_CHRG_ON        (TOSA_TC6393XB_GPIO_BASE + 11)
#define TOSA_GPIO_BAT_SW_ON        (TOSA_TC6393XB_GPIO_BASE + 12)
#define TOSA_GPIO_BAT0_TH_ON        (TOSA_TC6393XB_GPIO_BASE + 14)
#define TOSA_GPIO_BAT1_TH_ON        (TOSA_TC6393XB_GPIO_BASE + 15)
 
/*
 * PXA GPIOs
 */
#define TOSA_GPIO_POWERON        (0)
#define TOSA_GPIO_RESET            (1)
#define TOSA_GPIO_AC_IN            (2)
#define TOSA_GPIO_RECORD_BTN        (3)
#define TOSA_GPIO_SYNC            (4)    /* Cradle SYNC Button */
#define TOSA_GPIO_USB_IN        (5)
#define TOSA_GPIO_JACKET_DETECT        (7)
#define TOSA_GPIO_nSD_DETECT        (9)
#define TOSA_GPIO_nSD_INT        (10)
#define TOSA_GPIO_TC6393XB_CLK        (11)
#define TOSA_GPIO_BAT1_CRG        (12)
#define TOSA_GPIO_CF_CD            (13)
#define TOSA_GPIO_BAT0_CRG        (14)
#define TOSA_GPIO_TC6393XB_INT        (15)
#define TOSA_GPIO_BAT0_LOW        (17)
#define TOSA_GPIO_TC6393XB_RDY        (18)
#define TOSA_GPIO_ON_RESET        (19)
#define TOSA_GPIO_EAR_IN        (20)
#define TOSA_GPIO_CF_IRQ        (21)    /* CF slot0 Ready */
#define TOSA_GPIO_ON_KEY        (22)
#define TOSA_GPIO_VGA_LINE        (27)
#define TOSA_GPIO_TP_INT        (32)    /* Touch Panel pen down interrupt */
#define TOSA_GPIO_JC_CF_IRQ        (36)    /* CF slot1 Ready */
#define TOSA_GPIO_BAT_LOCKED        (38)    /* Battery locked */
#define TOSA_GPIO_IRDA_TX        (47)
#define TOSA_GPIO_TG_SPI_SCLK        (81)
#define TOSA_GPIO_TG_SPI_CS        (82)
#define TOSA_GPIO_TG_SPI_MOSI        (83)
#define TOSA_GPIO_BAT1_LOW        (84)
 
#define TOSA_GPIO_HP_IN            GPIO_EAR_IN
 
#define TOSA_GPIO_MAIN_BAT_LOW        GPIO_BAT0_LOW
 
#define TOSA_KEY_STROBE_NUM        (11)
#define TOSA_KEY_SENSE_NUM        (7)
 
#define TOSA_GPIO_HIGH_STROBE_BIT    (0xfc000000)
#define TOSA_GPIO_LOW_STROBE_BIT    (0x0000001f)
#define TOSA_GPIO_ALL_SENSE_BIT        (0x00000fe0)
#define TOSA_GPIO_ALL_SENSE_RSHIFT    (5)
#define TOSA_GPIO_STROBE_BIT(a)        GPIO_bit(58+(a))
#define TOSA_GPIO_SENSE_BIT(a)        GPIO_bit(69+(a))
#define TOSA_GAFR_HIGH_STROBE_BIT    (0xfff00000)
#define TOSA_GAFR_LOW_STROBE_BIT    (0x000003ff)
#define TOSA_GAFR_ALL_SENSE_BIT        (0x00fffc00)
#define TOSA_GPIO_KEY_SENSE(a)         (69+(a))
#define TOSA_GPIO_KEY_STROBE(a)        (58+(a))
 
/*
 * Interrupts
 */
#define TOSA_IRQ_GPIO_WAKEUP            PXA_GPIO_TO_IRQ(TOSA_GPIO_WAKEUP)
#define TOSA_IRQ_GPIO_AC_IN             PXA_GPIO_TO_IRQ(TOSA_GPIO_AC_IN)
#define TOSA_IRQ_GPIO_RECORD_BTN        PXA_GPIO_TO_IRQ(TOSA_GPIO_RECORD_BTN)
#define TOSA_IRQ_GPIO_SYNC              PXA_GPIO_TO_IRQ(TOSA_GPIO_SYNC)
#define TOSA_IRQ_GPIO_USB_IN            PXA_GPIO_TO_IRQ(TOSA_GPIO_USB_IN)
#define TOSA_IRQ_GPIO_JACKET_DETECT     PXA_GPIO_TO_IRQ(TOSA_GPIO_JACKET_DETECT)
#define TOSA_IRQ_GPIO_nSD_INT           PXA_GPIO_TO_IRQ(TOSA_GPIO_nSD_INT)
#define TOSA_IRQ_GPIO_nSD_DETECT        PXA_GPIO_TO_IRQ(TOSA_GPIO_nSD_DETECT)
#define TOSA_IRQ_GPIO_BAT1_CRG          PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT1_CRG)
#define TOSA_IRQ_GPIO_CF_CD             PXA_GPIO_TO_IRQ(TOSA_GPIO_CF_CD)
#define TOSA_IRQ_GPIO_BAT0_CRG          PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT0_CRG)
#define TOSA_IRQ_GPIO_TC6393XB_INT        PXA_GPIO_TO_IRQ(TOSA_GPIO_TC6393XB_INT)
#define TOSA_IRQ_GPIO_BAT0_LOW          PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT0_LOW)
#define TOSA_IRQ_GPIO_EAR_IN            PXA_GPIO_TO_IRQ(TOSA_GPIO_EAR_IN)
#define TOSA_IRQ_GPIO_CF_IRQ            PXA_GPIO_TO_IRQ(TOSA_GPIO_CF_IRQ)
#define TOSA_IRQ_GPIO_ON_KEY            PXA_GPIO_TO_IRQ(TOSA_GPIO_ON_KEY)
#define TOSA_IRQ_GPIO_VGA_LINE          PXA_GPIO_TO_IRQ(TOSA_GPIO_VGA_LINE)
#define TOSA_IRQ_GPIO_TP_INT            PXA_GPIO_TO_IRQ(TOSA_GPIO_TP_INT)
#define TOSA_IRQ_GPIO_JC_CF_IRQ         PXA_GPIO_TO_IRQ(TOSA_GPIO_JC_CF_IRQ)
#define TOSA_IRQ_GPIO_BAT_LOCKED        PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT_LOCKED)
#define TOSA_IRQ_GPIO_BAT1_LOW          PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT1_LOW)
#define TOSA_IRQ_GPIO_KEY_SENSE(a)      PXA_GPIO_TO_IRQ(69+(a))
 
#define TOSA_IRQ_GPIO_MAIN_BAT_LOW     PXA_GPIO_TO_IRQ(TOSA_GPIO_MAIN_BAT_LOW)
 
#define TOSA_KEY_SYNC        KEY_102ND /* ??? */
 
#ifndef CONFIG_TOSA_USE_EXT_KEYCODES
#define TOSA_KEY_RECORD        KEY_YEN
#define TOSA_KEY_ADDRESSBOOK    KEY_KATAKANA
#define TOSA_KEY_CANCEL        KEY_ESC
#define TOSA_KEY_CENTER        KEY_HIRAGANA
#define TOSA_KEY_OK        KEY_HENKAN
#define TOSA_KEY_CALENDAR    KEY_KATAKANAHIRAGANA
#define TOSA_KEY_HOMEPAGE    KEY_HANGEUL
#define TOSA_KEY_LIGHT        KEY_MUHENKAN
#define TOSA_KEY_MENU        KEY_HANJA
#define TOSA_KEY_FN        KEY_RIGHTALT
#define TOSA_KEY_MAIL        KEY_ZENKAKUHANKAKU
#else
#define TOSA_KEY_RECORD        KEY_RECORD
#define TOSA_KEY_ADDRESSBOOK    KEY_ADDRESSBOOK
#define TOSA_KEY_CANCEL        KEY_CANCEL
#define TOSA_KEY_CENTER        KEY_SELECT /* ??? */
#define TOSA_KEY_OK        KEY_OK
#define TOSA_KEY_CALENDAR    KEY_CALENDAR
#define TOSA_KEY_HOMEPAGE    KEY_HOMEPAGE
#define TOSA_KEY_LIGHT        KEY_KBDILLUMTOGGLE
#define TOSA_KEY_MENU        KEY_MENU
#define TOSA_KEY_FN        KEY_FN
#define TOSA_KEY_MAIL        KEY_MAIL
#endif
 
#endif /* _ASM_ARCH_TOSA_H_ */