0001
0002
0003
0004
0005
0006
0007
0008 #ifndef EZX_PCAP_H
0009 #define EZX_PCAP_H
0010
0011 struct pcap_subdev {
0012 int id;
0013 const char *name;
0014 void *platform_data;
0015 };
0016
0017 struct pcap_platform_data {
0018 unsigned int irq_base;
0019 unsigned int config;
0020 int gpio;
0021 void (*init) (void *);
0022 int num_subdevs;
0023 struct pcap_subdev *subdevs;
0024 };
0025
0026 struct pcap_chip;
0027
0028 int ezx_pcap_write(struct pcap_chip *, u8, u32);
0029 int ezx_pcap_read(struct pcap_chip *, u8, u32 *);
0030 int ezx_pcap_set_bits(struct pcap_chip *, u8, u32, u32);
0031 int pcap_to_irq(struct pcap_chip *, int);
0032 int irq_to_pcap(struct pcap_chip *, int);
0033 int pcap_adc_async(struct pcap_chip *, u8, u32, u8[], void *, void *);
0034 int pcap_adc_sync(struct pcap_chip *, u8, u32, u8[], u16[]);
0035 void pcap_set_ts_bits(struct pcap_chip *, u32);
0036
0037 #define PCAP_SECOND_PORT 1
0038 #define PCAP_CS_AH 2
0039
0040 #define PCAP_REGISTER_WRITE_OP_BIT 0x80000000
0041 #define PCAP_REGISTER_READ_OP_BIT 0x00000000
0042
0043 #define PCAP_REGISTER_VALUE_MASK 0x01ffffff
0044 #define PCAP_REGISTER_ADDRESS_MASK 0x7c000000
0045 #define PCAP_REGISTER_ADDRESS_SHIFT 26
0046 #define PCAP_REGISTER_NUMBER 32
0047 #define PCAP_CLEAR_INTERRUPT_REGISTER 0x01ffffff
0048 #define PCAP_MASK_ALL_INTERRUPT 0x01ffffff
0049
0050
0051 #define PCAP_REG_ISR 0x0
0052 #define PCAP_REG_MSR 0x1
0053 #define PCAP_REG_PSTAT 0x2
0054 #define PCAP_REG_VREG2 0x6
0055 #define PCAP_REG_AUXVREG 0x7
0056 #define PCAP_REG_BATT 0x8
0057 #define PCAP_REG_ADC 0x9
0058 #define PCAP_REG_ADR 0xa
0059 #define PCAP_REG_CODEC 0xb
0060 #define PCAP_REG_RX_AMPS 0xc
0061 #define PCAP_REG_ST_DAC 0xd
0062 #define PCAP_REG_BUSCTRL 0x14
0063 #define PCAP_REG_PERIPH 0x15
0064 #define PCAP_REG_LOWPWR 0x18
0065 #define PCAP_REG_TX_AMPS 0x1a
0066 #define PCAP_REG_GP 0x1b
0067 #define PCAP_REG_TEST1 0x1c
0068 #define PCAP_REG_TEST2 0x1d
0069 #define PCAP_REG_VENDOR_TEST1 0x1e
0070 #define PCAP_REG_VENDOR_TEST2 0x1f
0071
0072
0073 #define PCAP_REG_INT_SEL 0x3
0074 #define PCAP_REG_SWCTRL 0x4
0075 #define PCAP_REG_VREG1 0x5
0076 #define PCAP_REG_RTC_TOD 0xe
0077 #define PCAP_REG_RTC_TODA 0xf
0078 #define PCAP_REG_RTC_DAY 0x10
0079 #define PCAP_REG_RTC_DAYA 0x11
0080 #define PCAP_REG_MTRTMR 0x12
0081 #define PCAP_REG_PWR 0x13
0082 #define PCAP_REG_AUXVREG_MASK 0x16
0083 #define PCAP_REG_VENDOR_REV 0x17
0084 #define PCAP_REG_PERIPH_MASK 0x19
0085
0086
0087 #define PCAP_NIRQS 23
0088 #define PCAP_IRQ_ADCDONE 0
0089 #define PCAP_IRQ_TS 1
0090 #define PCAP_IRQ_1HZ 2
0091 #define PCAP_IRQ_WH 3
0092 #define PCAP_IRQ_WL 4
0093 #define PCAP_IRQ_TODA 5
0094 #define PCAP_IRQ_USB4V 6
0095 #define PCAP_IRQ_ONOFF 7
0096 #define PCAP_IRQ_ONOFF2 8
0097 #define PCAP_IRQ_USB1V 9
0098 #define PCAP_IRQ_MOBPORT 10
0099 #define PCAP_IRQ_MIC 11
0100 #define PCAP_IRQ_HS 12
0101 #define PCAP_IRQ_ST 13
0102 #define PCAP_IRQ_PC 14
0103 #define PCAP_IRQ_WARM 15
0104 #define PCAP_IRQ_EOL 16
0105 #define PCAP_IRQ_CLK 17
0106 #define PCAP_IRQ_SYSRST 18
0107 #define PCAP_IRQ_DUMMY 19
0108 #define PCAP_IRQ_ADCDONE2 20
0109 #define PCAP_IRQ_SOFTRESET 21
0110 #define PCAP_IRQ_MNEXB 22
0111
0112
0113 #define V1 0
0114 #define V2 1
0115 #define V3 2
0116 #define V4 3
0117 #define V5 4
0118 #define V6 5
0119 #define V7 6
0120 #define V8 7
0121 #define V9 8
0122 #define V10 9
0123 #define VAUX1 10
0124 #define VAUX2 11
0125 #define VAUX3 12
0126 #define VAUX4 13
0127 #define VSIM 14
0128 #define VSIM2 15
0129 #define VVIB 16
0130 #define SW1 17
0131 #define SW2 18
0132 #define SW3 19
0133 #define SW1S 20
0134 #define SW2S 21
0135
0136 #define PCAP_BATT_DAC_MASK 0x000000ff
0137 #define PCAP_BATT_DAC_SHIFT 0
0138 #define PCAP_BATT_B_FDBK (1 << 8)
0139 #define PCAP_BATT_EXT_ISENSE (1 << 9)
0140 #define PCAP_BATT_V_COIN_MASK 0x00003c00
0141 #define PCAP_BATT_V_COIN_SHIFT 10
0142 #define PCAP_BATT_I_COIN (1 << 14)
0143 #define PCAP_BATT_COIN_CH_EN (1 << 15)
0144 #define PCAP_BATT_EOL_SEL_MASK 0x000e0000
0145 #define PCAP_BATT_EOL_SEL_SHIFT 17
0146 #define PCAP_BATT_EOL_CMP_EN (1 << 20)
0147 #define PCAP_BATT_BATT_DET_EN (1 << 21)
0148 #define PCAP_BATT_THERMBIAS_CTRL (1 << 22)
0149
0150 #define PCAP_ADC_ADEN (1 << 0)
0151 #define PCAP_ADC_RAND (1 << 1)
0152 #define PCAP_ADC_AD_SEL1 (1 << 2)
0153 #define PCAP_ADC_AD_SEL2 (1 << 3)
0154 #define PCAP_ADC_ADA1_MASK 0x00000070
0155 #define PCAP_ADC_ADA1_SHIFT 4
0156 #define PCAP_ADC_ADA2_MASK 0x00000380
0157 #define PCAP_ADC_ADA2_SHIFT 7
0158 #define PCAP_ADC_ATO_MASK 0x00003c00
0159 #define PCAP_ADC_ATO_SHIFT 10
0160 #define PCAP_ADC_ATOX (1 << 14)
0161 #define PCAP_ADC_MTR1 (1 << 15)
0162 #define PCAP_ADC_MTR2 (1 << 16)
0163 #define PCAP_ADC_TS_M_MASK 0x000e0000
0164 #define PCAP_ADC_TS_M_SHIFT 17
0165 #define PCAP_ADC_TS_REF_LOWPWR (1 << 20)
0166 #define PCAP_ADC_TS_REFENB (1 << 21)
0167 #define PCAP_ADC_BATT_I_POLARITY (1 << 22)
0168 #define PCAP_ADC_BATT_I_ADC (1 << 23)
0169
0170 #define PCAP_ADC_BANK_0 0
0171 #define PCAP_ADC_BANK_1 1
0172
0173 #define PCAP_ADC_CH_COIN 0
0174 #define PCAP_ADC_CH_BATT 1
0175 #define PCAP_ADC_CH_BPLUS 2
0176 #define PCAP_ADC_CH_MOBPORTB 3
0177 #define PCAP_ADC_CH_TEMPERATURE 4
0178 #define PCAP_ADC_CH_CHARGER_ID 5
0179 #define PCAP_ADC_CH_AD6 6
0180
0181 #define PCAP_ADC_CH_AD7 0
0182 #define PCAP_ADC_CH_AD8 1
0183 #define PCAP_ADC_CH_AD9 2
0184 #define PCAP_ADC_CH_TS_X1 3
0185 #define PCAP_ADC_CH_TS_X2 4
0186 #define PCAP_ADC_CH_TS_Y1 5
0187 #define PCAP_ADC_CH_TS_Y2 6
0188
0189 #define PCAP_ADC_T_NOW 0
0190 #define PCAP_ADC_T_IN_BURST 1
0191 #define PCAP_ADC_T_OUT_BURST 2
0192
0193 #define PCAP_ADC_ATO_IN_BURST 6
0194 #define PCAP_ADC_ATO_OUT_BURST 0
0195
0196 #define PCAP_ADC_TS_M_XY 1
0197 #define PCAP_ADC_TS_M_PRESSURE 2
0198 #define PCAP_ADC_TS_M_PLATE_X 3
0199 #define PCAP_ADC_TS_M_PLATE_Y 4
0200 #define PCAP_ADC_TS_M_STANDBY 5
0201 #define PCAP_ADC_TS_M_NONTS 6
0202
0203 #define PCAP_ADR_ADD1_MASK 0x000003ff
0204 #define PCAP_ADR_ADD1_SHIFT 0
0205 #define PCAP_ADR_ADD2_MASK 0x000ffc00
0206 #define PCAP_ADR_ADD2_SHIFT 10
0207 #define PCAP_ADR_ADINC1 (1 << 20)
0208 #define PCAP_ADR_ADINC2 (1 << 21)
0209 #define PCAP_ADR_ASC (1 << 22)
0210 #define PCAP_ADR_ONESHOT (1 << 23)
0211
0212 #define PCAP_BUSCTRL_FSENB (1 << 0)
0213 #define PCAP_BUSCTRL_USB_SUSPEND (1 << 1)
0214 #define PCAP_BUSCTRL_USB_PU (1 << 2)
0215 #define PCAP_BUSCTRL_USB_PD (1 << 3)
0216 #define PCAP_BUSCTRL_VUSB_EN (1 << 4)
0217 #define PCAP_BUSCTRL_USB_PS (1 << 5)
0218 #define PCAP_BUSCTRL_VUSB_MSTR_EN (1 << 6)
0219 #define PCAP_BUSCTRL_VBUS_PD_ENB (1 << 7)
0220 #define PCAP_BUSCTRL_CURRLIM (1 << 8)
0221 #define PCAP_BUSCTRL_RS232ENB (1 << 9)
0222 #define PCAP_BUSCTRL_RS232_DIR (1 << 10)
0223 #define PCAP_BUSCTRL_SE0_CONN (1 << 11)
0224 #define PCAP_BUSCTRL_USB_PDM (1 << 12)
0225 #define PCAP_BUSCTRL_BUS_PRI_ADJ (1 << 24)
0226
0227
0228 #define PCAP_LED0 0
0229 #define PCAP_LED1 1
0230 #define PCAP_BL0 2
0231 #define PCAP_BL1 3
0232 #define PCAP_LED_3MA 0
0233 #define PCAP_LED_4MA 1
0234 #define PCAP_LED_5MA 2
0235 #define PCAP_LED_9MA 3
0236 #define PCAP_LED_T_MASK 0xf
0237 #define PCAP_LED_C_MASK 0x3
0238 #define PCAP_BL_MASK 0x1f
0239 #define PCAP_BL0_SHIFT 0
0240 #define PCAP_LED0_EN (1 << 5)
0241 #define PCAP_LED1_EN (1 << 6)
0242 #define PCAP_LED0_T_SHIFT 7
0243 #define PCAP_LED1_T_SHIFT 11
0244 #define PCAP_LED0_C_SHIFT 15
0245 #define PCAP_LED1_C_SHIFT 17
0246 #define PCAP_BL1_SHIFT 20
0247
0248
0249 #define PCAP_RTC_DAY_MASK 0x3fff
0250 #define PCAP_RTC_TOD_MASK 0xffff
0251 #define PCAP_RTC_PC_MASK 0x7
0252 #define SEC_PER_DAY 86400
0253
0254 #endif