0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef _DB1XXX_BCSR_H_
0014 #define _DB1XXX_BCSR_H_
0015
0016
0017
0018
0019
0020
0021
0022
0023 #define DB1000_BCSR_PHYS_ADDR 0x0E000000
0024 #define DB1000_BCSR_HEXLED_OFS 0x01000000
0025
0026 #define DB1550_BCSR_PHYS_ADDR 0x0F000000
0027 #define DB1550_BCSR_HEXLED_OFS 0x00400000
0028
0029 #define PB1550_BCSR_PHYS_ADDR 0x0F000000
0030 #define PB1550_BCSR_HEXLED_OFS 0x00800000
0031
0032 #define DB1200_BCSR_PHYS_ADDR 0x19800000
0033 #define DB1200_BCSR_HEXLED_OFS 0x00400000
0034
0035 #define PB1200_BCSR_PHYS_ADDR 0x0D800000
0036 #define PB1200_BCSR_HEXLED_OFS 0x00400000
0037
0038 #define DB1300_BCSR_PHYS_ADDR 0x19800000
0039 #define DB1300_BCSR_HEXLED_OFS 0x00400000
0040
0041 enum bcsr_id {
0042
0043 BCSR_WHOAMI = 0,
0044 BCSR_STATUS,
0045 BCSR_SWITCHES,
0046 BCSR_RESETS,
0047 BCSR_PCMCIA,
0048 BCSR_BOARD,
0049 BCSR_LEDS,
0050 BCSR_SYSTEM,
0051
0052 BCSR_INTCLR,
0053 BCSR_INTSET,
0054 BCSR_MASKCLR,
0055 BCSR_MASKSET,
0056 BCSR_SIGSTAT,
0057 BCSR_INTSTAT,
0058
0059
0060 BCSR_HEXLEDS,
0061 BCSR_RSVD1,
0062 BCSR_HEXCLEAR,
0063
0064 BCSR_CNT,
0065 };
0066
0067
0068 #define BCSR_REG_WHOAMI 0x00
0069 #define BCSR_REG_STATUS 0x04
0070 #define BCSR_REG_SWITCHES 0x08
0071 #define BCSR_REG_RESETS 0x0c
0072 #define BCSR_REG_PCMCIA 0x10
0073 #define BCSR_REG_BOARD 0x14
0074 #define BCSR_REG_LEDS 0x18
0075 #define BCSR_REG_SYSTEM 0x1c
0076
0077 #define BCSR_REG_INTCLR 0x20
0078 #define BCSR_REG_INTSET 0x24
0079 #define BCSR_REG_MASKCLR 0x28
0080 #define BCSR_REG_MASKSET 0x2c
0081 #define BCSR_REG_SIGSTAT 0x30
0082 #define BCSR_REG_INTSTAT 0x34
0083
0084
0085 #define BCSR_REG_HEXLEDS 0x00
0086 #define BCSR_REG_HEXCLEAR 0x08
0087
0088
0089
0090
0091 #define BCSR_WHOAMI_DCID(x) ((x) & 0xf)
0092 #define BCSR_WHOAMI_CPLD(x) (((x) >> 4) & 0xf)
0093 #define BCSR_WHOAMI_BOARD(x) (((x) >> 8) & 0xf)
0094
0095
0096 enum bcsr_whoami_boards {
0097 BCSR_WHOAMI_PB1500 = 1,
0098 BCSR_WHOAMI_PB1500R2,
0099 BCSR_WHOAMI_PB1100,
0100 BCSR_WHOAMI_DB1000,
0101 BCSR_WHOAMI_DB1100,
0102 BCSR_WHOAMI_DB1500,
0103 BCSR_WHOAMI_DB1550,
0104 BCSR_WHOAMI_PB1550_DDR,
0105 BCSR_WHOAMI_PB1550 = BCSR_WHOAMI_PB1550_DDR,
0106 BCSR_WHOAMI_PB1550_SDR,
0107 BCSR_WHOAMI_PB1200_DDR1,
0108 BCSR_WHOAMI_PB1200 = BCSR_WHOAMI_PB1200_DDR1,
0109 BCSR_WHOAMI_PB1200_DDR2,
0110 BCSR_WHOAMI_DB1200,
0111 BCSR_WHOAMI_DB1300,
0112 };
0113
0114
0115
0116
0117 #define BCSR_STATUS_PC0VS 0x0003
0118 #define BCSR_STATUS_PC1VS 0x000C
0119 #define BCSR_STATUS_PC0FI 0x0010
0120 #define BCSR_STATUS_PC1FI 0x0020
0121 #define BCSR_STATUS_PB1550_SWAPBOOT 0x0040
0122 #define BCSR_STATUS_SRAMWIDTH 0x0080
0123 #define BCSR_STATUS_FLASHBUSY 0x0100
0124 #define BCSR_STATUS_ROMBUSY 0x0400
0125 #define BCSR_STATUS_SD0WP 0x0400
0126 #define BCSR_STATUS_SD1WP 0x0800
0127 #define BCSR_STATUS_USBOTGID 0x0800
0128 #define BCSR_STATUS_DB1000_SWAPBOOT 0x2000
0129 #define BCSR_STATUS_DB1200_SWAPBOOT 0x0040
0130 #define BCSR_STATUS_IDECBLID 0x0200
0131 #define BCSR_STATUS_DB1200_U0RXD 0x1000
0132 #define BCSR_STATUS_DB1200_U1RXD 0x2000
0133 #define BCSR_STATUS_FLASHDEN 0xC000
0134 #define BCSR_STATUS_DB1550_U0RXD 0x1000
0135 #define BCSR_STATUS_DB1550_U3RXD 0x2000
0136 #define BCSR_STATUS_PB1550_U0RXD 0x1000
0137 #define BCSR_STATUS_PB1550_U1RXD 0x2000
0138 #define BCSR_STATUS_PB1550_U3RXD 0x8000
0139
0140 #define BCSR_STATUS_CFWP 0x4000
0141 #define BCSR_STATUS_USBOCn 0x2000
0142 #define BCSR_STATUS_OTGOCn 0x1000
0143 #define BCSR_STATUS_DCDMARQ 0x0010
0144 #define BCSR_STATUS_IDEDMARQ 0x0020
0145
0146
0147 #define BCSR_RESETS_PHY0 0x0001
0148 #define BCSR_RESETS_PHY1 0x0002
0149 #define BCSR_RESETS_DC 0x0004
0150 #define BCSR_RESETS_FIR_SEL 0x2000
0151 #define BCSR_RESETS_IRDA_MODE_MASK 0xC000
0152 #define BCSR_RESETS_IRDA_MODE_FULL 0x0000
0153 #define BCSR_RESETS_PB1550_WSCFSM 0x2000
0154 #define BCSR_RESETS_IRDA_MODE_OFF 0x4000
0155 #define BCSR_RESETS_IRDA_MODE_2_3 0x8000
0156 #define BCSR_RESETS_IRDA_MODE_1_3 0xC000
0157 #define BCSR_RESETS_DMAREQ 0x8000
0158
0159 #define BCSR_BOARD_PCIM66EN 0x0001
0160 #define BCSR_BOARD_SD0PWR 0x0040
0161 #define BCSR_BOARD_SD1PWR 0x0080
0162 #define BCSR_BOARD_PCIM33 0x0100
0163 #define BCSR_BOARD_PCIEXTARB 0x0200
0164 #define BCSR_BOARD_GPIO200RST 0x0400
0165 #define BCSR_BOARD_PCICLKOUT 0x0800
0166 #define BCSR_BOARD_PB1100_SD0PWR 0x0400
0167 #define BCSR_BOARD_PB1100_SD1PWR 0x0800
0168 #define BCSR_BOARD_PCICFG 0x1000
0169 #define BCSR_BOARD_SPISEL 0x2000
0170 #define BCSR_BOARD_SD0WP 0x4000
0171 #define BCSR_BOARD_SD1WP 0x8000
0172
0173
0174
0175 #define BCSR_RESETS_ETH 0x0001
0176 #define BCSR_RESETS_CAMERA 0x0002
0177 #define BCSR_RESETS_DC 0x0004
0178 #define BCSR_RESETS_IDE 0x0008
0179 #define BCSR_RESETS_TV 0x0010
0180
0181 #define BCSR_RESETS_PWMR1MUX 0x0800
0182 #define BCSR_RESETS_PB1200_WSCFSM 0x0800
0183 #define BCSR_RESETS_PSC0MUX 0x1000
0184 #define BCSR_RESETS_PSC1MUX 0x2000
0185 #define BCSR_RESETS_SPISEL 0x4000
0186 #define BCSR_RESETS_SD1MUX 0x8000
0187
0188 #define BCSR_RESETS_VDDQSHDN 0x0200
0189 #define BCSR_RESETS_OTPPGM 0x0400
0190 #define BCSR_RESETS_OTPSCLK 0x0800
0191 #define BCSR_RESETS_OTPWRPROT 0x1000
0192 #define BCSR_RESETS_OTPCSB 0x2000
0193 #define BCSR_RESETS_OTGPWR 0x4000
0194 #define BCSR_RESETS_USBHPWR 0x8000
0195
0196 #define BCSR_BOARD_LCDVEE 0x0001
0197 #define BCSR_BOARD_LCDVDD 0x0002
0198 #define BCSR_BOARD_LCDBL 0x0004
0199 #define BCSR_BOARD_CAMSNAP 0x0010
0200 #define BCSR_BOARD_CAMPWR 0x0020
0201 #define BCSR_BOARD_SD0PWR 0x0040
0202 #define BCSR_BOARD_CAMCS 0x0010
0203 #define BCSR_BOARD_HDMI_DE 0x0040
0204
0205 #define BCSR_SWITCHES_DIP 0x00FF
0206 #define BCSR_SWITCHES_DIP_1 0x0080
0207 #define BCSR_SWITCHES_DIP_2 0x0040
0208 #define BCSR_SWITCHES_DIP_3 0x0020
0209 #define BCSR_SWITCHES_DIP_4 0x0010
0210 #define BCSR_SWITCHES_DIP_5 0x0008
0211 #define BCSR_SWITCHES_DIP_6 0x0004
0212 #define BCSR_SWITCHES_DIP_7 0x0002
0213 #define BCSR_SWITCHES_DIP_8 0x0001
0214 #define BCSR_SWITCHES_ROTARY 0x0F00
0215
0216
0217 #define BCSR_PCMCIA_PC0VPP 0x0003
0218 #define BCSR_PCMCIA_PC0VCC 0x000C
0219 #define BCSR_PCMCIA_PC0DRVEN 0x0010
0220 #define BCSR_PCMCIA_PC0RST 0x0080
0221 #define BCSR_PCMCIA_PC1VPP 0x0300
0222 #define BCSR_PCMCIA_PC1VCC 0x0C00
0223 #define BCSR_PCMCIA_PC1DRVEN 0x1000
0224 #define BCSR_PCMCIA_PC1RST 0x8000
0225
0226
0227 #define BCSR_LEDS_DECIMALS 0x0003
0228 #define BCSR_LEDS_LED0 0x0100
0229 #define BCSR_LEDS_LED1 0x0200
0230 #define BCSR_LEDS_LED2 0x0400
0231 #define BCSR_LEDS_LED3 0x0800
0232
0233
0234 #define BCSR_SYSTEM_RESET 0x8000
0235 #define BCSR_SYSTEM_PWROFF 0x4000
0236 #define BCSR_SYSTEM_VDDI 0x001F
0237 #define BCSR_SYSTEM_DEBUGCSMASK 0x003F
0238 #define BCSR_SYSTEM_UDMAMODE 0x0100
0239 #define BCSR_SYSTEM_WAKEONIRQ 0x0200
0240 #define BCSR_SYSTEM_VDDI1300 0x3C00
0241
0242
0243
0244
0245
0246
0247 void __init bcsr_init(unsigned long bcsr1_phys, unsigned long bcsr2_phys);
0248
0249
0250 unsigned short bcsr_read(enum bcsr_id reg);
0251
0252
0253 void bcsr_write(enum bcsr_id reg, unsigned short val);
0254
0255
0256 void bcsr_mod(enum bcsr_id reg, unsigned short clr, unsigned short set);
0257
0258
0259 void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq);
0260
0261 #endif