Blame view
include/linux/rtsx_pci.h
38.7 KB
aaf4989bd treewide: Replace... |
1 |
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
67d16a468 drivers/mfd: Add ... |
2 3 |
/* Driver for Realtek PCI-Express card reader * |
09fd86780 mfd: rtsx: Copyri... |
4 |
* Copyright(c) 2009-2013 Realtek Semiconductor Corp. All rights reserved. |
67d16a468 drivers/mfd: Add ... |
5 |
* |
67d16a468 drivers/mfd: Add ... |
6 7 |
* Author: * Wei WANG <wei_wang@realsil.com.cn> |
67d16a468 drivers/mfd: Add ... |
8 9 10 11 12 13 14 |
*/ #ifndef __RTSX_PCI_H #define __RTSX_PCI_H #include <linux/sched.h> #include <linux/pci.h> |
e455b69dd misc: rtsx: Move ... |
15 |
#include <linux/rtsx_common.h> |
67d16a468 drivers/mfd: Add ... |
16 17 |
#define MAX_RW_REG_CNT 1024 |
67d16a468 drivers/mfd: Add ... |
18 19 |
#define RTSX_HCBAR 0x00 #define RTSX_HCBCTLR 0x04 |
ada71f558 mfd: rtsx: Place ... |
20 21 22 23 |
#define STOP_CMD (0x01 << 28) #define READ_REG_CMD 0 #define WRITE_REG_CMD 1 #define CHECK_REG_CMD 2 |
67d16a468 drivers/mfd: Add ... |
24 |
#define RTSX_HDBAR 0x08 |
f16ee7c7e misc: rtsx: renam... |
25 26 27 28 29 30 |
#define RTSX_SG_INT 0x04 #define RTSX_SG_END 0x02 #define RTSX_SG_VALID 0x01 #define RTSX_SG_NO_OP 0x00 #define RTSX_SG_TRANS_DATA (0x02 << 4) #define RTSX_SG_LINK_DESC (0x03 << 4) |
67d16a468 drivers/mfd: Add ... |
31 |
#define RTSX_HDBCTLR 0x0C |
ada71f558 mfd: rtsx: Place ... |
32 33 34 35 |
#define SDMA_MODE 0x00 #define ADMA_MODE (0x02 << 26) #define STOP_DMA (0x01 << 28) #define TRIG_DMA (0x01 << 31) |
67d16a468 drivers/mfd: Add ... |
36 |
#define RTSX_HAIMR 0x10 |
ada71f558 mfd: rtsx: Place ... |
37 38 39 40 41 42 |
#define HAIMR_TRANS_START (0x01 << 31) #define HAIMR_READ 0x00 #define HAIMR_WRITE (0x01 << 30) #define HAIMR_READ_START (HAIMR_TRANS_START | HAIMR_READ) #define HAIMR_WRITE_START (HAIMR_TRANS_START | HAIMR_WRITE) #define HAIMR_TRANS_END (HAIMR_TRANS_START) |
67d16a468 drivers/mfd: Add ... |
43 |
|
ada71f558 mfd: rtsx: Place ... |
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#define RTSX_BIPR 0x14 #define CMD_DONE_INT (1 << 31) #define DATA_DONE_INT (1 << 30) #define TRANS_OK_INT (1 << 29) #define TRANS_FAIL_INT (1 << 28) #define XD_INT (1 << 27) #define MS_INT (1 << 26) #define SD_INT (1 << 25) #define GPIO0_INT (1 << 24) #define OC_INT (1 << 23) #define SD_WRITE_PROTECT (1 << 19) #define XD_EXIST (1 << 18) #define MS_EXIST (1 << 17) #define SD_EXIST (1 << 16) #define DELINK_INT GPIO0_INT #define MS_OC_INT (1 << 23) #define SD_OC_INT (1 << 22) |
67d16a468 drivers/mfd: Add ... |
61 62 63 64 65 |
#define CARD_INT (XD_INT | MS_INT | SD_INT) #define NEED_COMPLETE_INT (DATA_DONE_INT | TRANS_OK_INT | TRANS_FAIL_INT) #define RTSX_INT (CMD_DONE_INT | NEED_COMPLETE_INT | \ CARD_INT | GPIO0_INT | OC_INT) |
67d16a468 drivers/mfd: Add ... |
66 |
#define CARD_EXIST (XD_EXIST | MS_EXIST | SD_EXIST) |
ada71f558 mfd: rtsx: Place ... |
67 68 69 70 71 72 73 74 75 76 77 78 79 |
#define RTSX_BIER 0x18 #define CMD_DONE_INT_EN (1 << 31) #define DATA_DONE_INT_EN (1 << 30) #define TRANS_OK_INT_EN (1 << 29) #define TRANS_FAIL_INT_EN (1 << 28) #define XD_INT_EN (1 << 27) #define MS_INT_EN (1 << 26) #define SD_INT_EN (1 << 25) #define GPIO0_INT_EN (1 << 24) #define OC_INT_EN (1 << 23) #define DELINK_INT_EN GPIO0_INT_EN #define MS_OC_INT_EN (1 << 23) #define SD_OC_INT_EN (1 << 22) |
67d16a468 drivers/mfd: Add ... |
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
/* * macros for easy use */ #define rtsx_pci_writel(pcr, reg, value) \ iowrite32(value, (pcr)->remap_addr + reg) #define rtsx_pci_readl(pcr, reg) \ ioread32((pcr)->remap_addr + reg) #define rtsx_pci_writew(pcr, reg, value) \ iowrite16(value, (pcr)->remap_addr + reg) #define rtsx_pci_readw(pcr, reg) \ ioread16((pcr)->remap_addr + reg) #define rtsx_pci_writeb(pcr, reg, value) \ iowrite8(value, (pcr)->remap_addr + reg) #define rtsx_pci_readb(pcr, reg) \ ioread8((pcr)->remap_addr + reg) |
ada71f558 mfd: rtsx: Place ... |
96 97 98 99 |
#define STATE_TRANS_NONE 0 #define STATE_TRANS_CMD 1 #define STATE_TRANS_BUF 2 #define STATE_TRANS_SG 3 |
773ccdfd9 mfd: rtsx: Read v... |
100 |
|
ada71f558 mfd: rtsx: Place ... |
101 102 103 104 |
#define TRANS_NOT_READY 0 #define TRANS_RESULT_OK 1 #define TRANS_RESULT_FAIL 2 #define TRANS_NO_DEVICE 3 |
67d16a468 drivers/mfd: Add ... |
105 |
|
ada71f558 mfd: rtsx: Place ... |
106 107 108 109 110 111 112 113 114 115 |
#define RTSX_RESV_BUF_LEN 4096 #define HOST_CMDS_BUF_LEN 1024 #define HOST_SG_TBL_BUF_LEN (RTSX_RESV_BUF_LEN - HOST_CMDS_BUF_LEN) #define HOST_SG_TBL_ITEMS (HOST_SG_TBL_BUF_LEN / 8) #define MAX_SG_ITEM_LEN 0x80000 #define HOST_TO_DEVICE 0 #define DEVICE_TO_HOST 1 #define OUTPUT_3V3 0 #define OUTPUT_1V8 1 |
67d16a468 drivers/mfd: Add ... |
116 |
|
ada71f558 mfd: rtsx: Place ... |
117 118 |
#define RTSX_PHASE_MAX 32 #define RX_TUNING_CNT 3 |
5947c167d mfd: rtsx: Add sh... |
119 |
|
67d16a468 drivers/mfd: Add ... |
120 |
#define MS_CFG 0xFD40 |
ada71f558 mfd: rtsx: Place ... |
121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
#define SAMPLE_TIME_RISING 0x00 #define SAMPLE_TIME_FALLING 0x80 #define PUSH_TIME_DEFAULT 0x00 #define PUSH_TIME_ODD 0x40 #define NO_EXTEND_TOGGLE 0x00 #define EXTEND_TOGGLE_CHK 0x20 #define MS_BUS_WIDTH_1 0x00 #define MS_BUS_WIDTH_4 0x10 #define MS_BUS_WIDTH_8 0x18 #define MS_2K_SECTOR_MODE 0x04 #define MS_512_SECTOR_MODE 0x00 #define MS_TOGGLE_TIMEOUT_EN 0x00 #define MS_TOGGLE_TIMEOUT_DISEN 0x01 #define MS_NO_CHECK_INT 0x02 |
67d16a468 drivers/mfd: Add ... |
135 136 |
#define MS_TPC 0xFD41 #define MS_TRANS_CFG 0xFD42 |
ada71f558 mfd: rtsx: Place ... |
137 138 139 140 141 142 143 144 145 146 |
#define WAIT_INT 0x80 #define NO_WAIT_INT 0x00 #define NO_AUTO_READ_INT_REG 0x00 #define AUTO_READ_INT_REG 0x40 #define MS_CRC16_ERR 0x20 #define MS_RDY_TIMEOUT 0x10 #define MS_INT_CMDNK 0x08 #define MS_INT_BREQ 0x04 #define MS_INT_ERR 0x02 #define MS_INT_CED 0x01 |
67d16a468 drivers/mfd: Add ... |
147 |
#define MS_TRANSFER 0xFD43 |
ada71f558 mfd: rtsx: Place ... |
148 149 150 151 152 153 154 155 156 157 |
#define MS_TRANSFER_START 0x80 #define MS_TRANSFER_END 0x40 #define MS_TRANSFER_ERR 0x20 #define MS_BS_STATE 0x10 #define MS_TM_READ_BYTES 0x00 #define MS_TM_NORMAL_READ 0x01 #define MS_TM_WRITE_BYTES 0x04 #define MS_TM_NORMAL_WRITE 0x05 #define MS_TM_AUTO_READ 0x08 #define MS_TM_AUTO_WRITE 0x0C |
67d16a468 drivers/mfd: Add ... |
158 159 160 161 162 163 164 |
#define MS_INT_REG 0xFD44 #define MS_BYTE_CNT 0xFD45 #define MS_SECTOR_CNT_L 0xFD46 #define MS_SECTOR_CNT_H 0xFD47 #define MS_DBUS_H 0xFD48 #define SD_CFG1 0xFDA0 |
ada71f558 mfd: rtsx: Place ... |
165 166 167 168 169 170 171 172 173 174 175 |
#define SD_CLK_DIVIDE_0 0x00 #define SD_CLK_DIVIDE_256 0xC0 #define SD_CLK_DIVIDE_128 0x80 #define SD_BUS_WIDTH_1BIT 0x00 #define SD_BUS_WIDTH_4BIT 0x01 #define SD_BUS_WIDTH_8BIT 0x02 #define SD_ASYNC_FIFO_NOT_RST 0x10 #define SD_20_MODE 0x00 #define SD_DDR_MODE 0x04 #define SD_30_MODE 0x08 #define SD_CLK_DIVIDE_MASK 0xC0 |
5da4e04ae misc: rtsx: Add s... |
176 |
#define SD_MODE_SELECT_MASK 0x0C |
67d16a468 drivers/mfd: Add ... |
177 |
#define SD_CFG2 0xFDA1 |
ada71f558 mfd: rtsx: Place ... |
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
#define SD_CALCULATE_CRC7 0x00 #define SD_NO_CALCULATE_CRC7 0x80 #define SD_CHECK_CRC16 0x00 #define SD_NO_CHECK_CRC16 0x40 #define SD_NO_CHECK_WAIT_CRC_TO 0x20 #define SD_WAIT_BUSY_END 0x08 #define SD_NO_WAIT_BUSY_END 0x00 #define SD_CHECK_CRC7 0x00 #define SD_NO_CHECK_CRC7 0x04 #define SD_RSP_LEN_0 0x00 #define SD_RSP_LEN_6 0x01 #define SD_RSP_LEN_17 0x02 #define SD_RSP_TYPE_R0 0x04 #define SD_RSP_TYPE_R1 0x01 #define SD_RSP_TYPE_R1b 0x09 #define SD_RSP_TYPE_R2 0x02 #define SD_RSP_TYPE_R3 0x05 #define SD_RSP_TYPE_R4 0x05 #define SD_RSP_TYPE_R5 0x01 #define SD_RSP_TYPE_R6 0x01 #define SD_RSP_TYPE_R7 0x01 |
67d16a468 drivers/mfd: Add ... |
199 |
#define SD_CFG3 0xFDA2 |
5da4e04ae misc: rtsx: Add s... |
200 |
#define SD30_CLK_END_EN 0x10 |
ada71f558 mfd: rtsx: Place ... |
201 |
#define SD_RSP_80CLK_TIMEOUT_EN 0x01 |
67d16a468 drivers/mfd: Add ... |
202 |
#define SD_STAT1 0xFDA3 |
ada71f558 mfd: rtsx: Place ... |
203 204 205 206 207 208 |
#define SD_CRC7_ERR 0x80 #define SD_CRC16_ERR 0x40 #define SD_CRC_WRITE_ERR 0x20 #define SD_CRC_WRITE_ERR_MASK 0x1C #define GET_CRC_TIME_OUT 0x02 #define SD_TUNING_COMPARE_ERR 0x01 |
67d16a468 drivers/mfd: Add ... |
209 |
#define SD_STAT2 0xFDA4 |
ada71f558 mfd: rtsx: Place ... |
210 |
#define SD_RSP_80CLK_TIMEOUT 0x01 |
67d16a468 drivers/mfd: Add ... |
211 |
#define SD_BUS_STAT 0xFDA5 |
ada71f558 mfd: rtsx: Place ... |
212 213 214 215 216 217 218 |
#define SD_CLK_TOGGLE_EN 0x80 #define SD_CLK_FORCE_STOP 0x40 #define SD_DAT3_STATUS 0x10 #define SD_DAT2_STATUS 0x08 #define SD_DAT1_STATUS 0x04 #define SD_DAT0_STATUS 0x02 #define SD_CMD_STATUS 0x01 |
67d16a468 drivers/mfd: Add ... |
219 |
#define SD_PAD_CTL 0xFDA6 |
ada71f558 mfd: rtsx: Place ... |
220 221 222 223 224 225 |
#define SD_IO_USING_1V8 0x80 #define SD_IO_USING_3V3 0x7F #define TYPE_A_DRIVING 0x00 #define TYPE_B_DRIVING 0x01 #define TYPE_C_DRIVING 0x02 #define TYPE_D_DRIVING 0x03 |
67d16a468 drivers/mfd: Add ... |
226 |
#define SD_SAMPLE_POINT_CTL 0xFDA7 |
ada71f558 mfd: rtsx: Place ... |
227 228 229 230 231 232 233 234 235 236 237 |
#define DDR_FIX_RX_DAT 0x00 #define DDR_VAR_RX_DAT 0x80 #define DDR_FIX_RX_DAT_EDGE 0x00 #define DDR_FIX_RX_DAT_14_DELAY 0x40 #define DDR_FIX_RX_CMD 0x00 #define DDR_VAR_RX_CMD 0x20 #define DDR_FIX_RX_CMD_POS_EDGE 0x00 #define DDR_FIX_RX_CMD_14_DELAY 0x10 #define SD20_RX_POS_EDGE 0x00 #define SD20_RX_14_DELAY 0x08 #define SD20_RX_SEL_MASK 0x08 |
67d16a468 drivers/mfd: Add ... |
238 |
#define SD_PUSH_POINT_CTL 0xFDA8 |
ada71f558 mfd: rtsx: Place ... |
239 240 241 242 243 244 245 246 247 248 |
#define DDR_FIX_TX_CMD_DAT 0x00 #define DDR_VAR_TX_CMD_DAT 0x80 #define DDR_FIX_TX_DAT_14_TSU 0x00 #define DDR_FIX_TX_DAT_12_TSU 0x40 #define DDR_FIX_TX_CMD_NEG_EDGE 0x00 #define DDR_FIX_TX_CMD_14_AHEAD 0x20 #define SD20_TX_NEG_EDGE 0x00 #define SD20_TX_14_AHEAD 0x10 #define SD20_TX_SEL_MASK 0x10 #define DDR_VAR_SDCLK_POL_SWAP 0x01 |
67d16a468 drivers/mfd: Add ... |
249 |
#define SD_CMD0 0xFDA9 |
a3b63979f mfd: rtsx: Add fu... |
250 |
#define SD_CMD_START 0x40 |
67d16a468 drivers/mfd: Add ... |
251 252 253 254 255 256 257 258 259 260 |
#define SD_CMD1 0xFDAA #define SD_CMD2 0xFDAB #define SD_CMD3 0xFDAC #define SD_CMD4 0xFDAD #define SD_CMD5 0xFDAE #define SD_BYTE_CNT_L 0xFDAF #define SD_BYTE_CNT_H 0xFDB0 #define SD_BLOCK_CNT_L 0xFDB1 #define SD_BLOCK_CNT_H 0xFDB2 #define SD_TRANSFER 0xFDB3 |
ada71f558 mfd: rtsx: Place ... |
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 |
#define SD_TRANSFER_START 0x80 #define SD_TRANSFER_END 0x40 #define SD_STAT_IDLE 0x20 #define SD_TRANSFER_ERR 0x10 #define SD_TM_NORMAL_WRITE 0x00 #define SD_TM_AUTO_WRITE_3 0x01 #define SD_TM_AUTO_WRITE_4 0x02 #define SD_TM_AUTO_READ_3 0x05 #define SD_TM_AUTO_READ_4 0x06 #define SD_TM_CMD_RSP 0x08 #define SD_TM_AUTO_WRITE_1 0x09 #define SD_TM_AUTO_WRITE_2 0x0A #define SD_TM_NORMAL_READ 0x0C #define SD_TM_AUTO_READ_1 0x0D #define SD_TM_AUTO_READ_2 0x0E #define SD_TM_AUTO_TUNING 0x0F |
67d16a468 drivers/mfd: Add ... |
277 |
#define SD_CMD_STATE 0xFDB5 |
ada71f558 mfd: rtsx: Place ... |
278 |
#define SD_CMD_IDLE 0x80 |
67d16a468 drivers/mfd: Add ... |
279 |
#define SD_DATA_STATE 0xFDB6 |
ada71f558 mfd: rtsx: Place ... |
280 |
#define SD_DATA_IDLE 0x80 |
5da4e04ae misc: rtsx: Add s... |
281 282 283 284 285 286 |
#define REG_SD_STOP_SDCLK_CFG 0xFDB8 #define SD30_CLK_STOP_CFG_EN 0x04 #define SD30_CLK_STOP_CFG1 0x02 #define SD30_CLK_STOP_CFG0 0x01 #define REG_PRE_RW_MODE 0xFD70 #define EN_INFINITE_MODE 0x01 |
849a9366c misc: rtsx: Add s... |
287 288 |
#define REG_CRC_DUMMY_0 0xFD71 #define CFG_SD_POW_AUTO_PD (1<<0) |
67d16a468 drivers/mfd: Add ... |
289 290 |
#define SRCTL 0xFC13 |
84f00b1b9 mfd: rtsx: Replac... |
291 |
#define DCM_DRP_CTL 0xFC23 |
ada71f558 mfd: rtsx: Place ... |
292 293 294 295 296 |
#define DCM_RESET 0x08 #define DCM_LOCKED 0x04 #define DCM_208M 0x00 #define DCM_TX 0x01 #define DCM_RX 0x02 |
84f00b1b9 mfd: rtsx: Replac... |
297 |
#define DCM_DRP_TRIG 0xFC24 |
ada71f558 mfd: rtsx: Place ... |
298 299 |
#define DRP_START 0x80 #define DRP_DONE 0x40 |
84f00b1b9 mfd: rtsx: Replac... |
300 |
#define DCM_DRP_CFG 0xFC25 |
ada71f558 mfd: rtsx: Place ... |
301 302 303 304 305 306 |
#define DRP_WRITE 0x80 #define DRP_READ 0x00 #define DCM_WRITE_ADDRESS_50 0x50 #define DCM_WRITE_ADDRESS_51 0x51 #define DCM_READ_ADDRESS_00 0x00 #define DCM_READ_ADDRESS_51 0x51 |
84f00b1b9 mfd: rtsx: Replac... |
307 308 309 310 |
#define DCM_DRP_WR_DATA_L 0xFC26 #define DCM_DRP_WR_DATA_H 0xFC27 #define DCM_DRP_RD_DATA_L 0xFC28 #define DCM_DRP_RD_DATA_H 0xFC29 |
67d16a468 drivers/mfd: Add ... |
311 312 |
#define SD_VPCLK0_CTL 0xFC2A #define SD_VPCLK1_CTL 0xFC2B |
563be8b60 mmc: rtsx: fix tu... |
313 |
#define PHASE_SELECT_MASK 0x1F |
67d16a468 drivers/mfd: Add ... |
314 315 316 317 |
#define SD_DCMPS0_CTL 0xFC2C #define SD_DCMPS1_CTL 0xFC2D #define SD_VPTX_CTL SD_VPCLK0_CTL #define SD_VPRX_CTL SD_VPCLK1_CTL |
ada71f558 mfd: rtsx: Place ... |
318 319 |
#define PHASE_CHANGE 0x80 #define PHASE_NOT_RESET 0x40 |
67d16a468 drivers/mfd: Add ... |
320 321 |
#define SD_DCMPS_TX_CTL SD_DCMPS0_CTL #define SD_DCMPS_RX_CTL SD_DCMPS1_CTL |
ada71f558 mfd: rtsx: Place ... |
322 323 324 325 |
#define DCMPS_CHANGE 0x80 #define DCMPS_CHANGE_DONE 0x40 #define DCMPS_ERROR 0x20 #define DCMPS_CURRENT_PHASE 0x1F |
67d16a468 drivers/mfd: Add ... |
326 |
#define CARD_CLK_SOURCE 0xFC2E |
ada71f558 mfd: rtsx: Place ... |
327 328 329 330 331 332 333 334 335 |
#define CRC_FIX_CLK (0x00 << 0) #define CRC_VAR_CLK0 (0x01 << 0) #define CRC_VAR_CLK1 (0x02 << 0) #define SD30_FIX_CLK (0x00 << 2) #define SD30_VAR_CLK0 (0x01 << 2) #define SD30_VAR_CLK1 (0x02 << 2) #define SAMPLE_FIX_CLK (0x00 << 4) #define SAMPLE_VAR_CLK0 (0x01 << 4) #define SAMPLE_VAR_CLK1 (0x02 << 4) |
67d16a468 drivers/mfd: Add ... |
336 |
#define CARD_PWR_CTL 0xFD50 |
ada71f558 mfd: rtsx: Place ... |
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 |
#define PMOS_STRG_MASK 0x10 #define PMOS_STRG_800mA 0x10 #define PMOS_STRG_400mA 0x00 #define SD_POWER_OFF 0x03 #define SD_PARTIAL_POWER_ON 0x01 #define SD_POWER_ON 0x00 #define SD_POWER_MASK 0x03 #define MS_POWER_OFF 0x0C #define MS_PARTIAL_POWER_ON 0x04 #define MS_POWER_ON 0x00 #define MS_POWER_MASK 0x0C #define BPP_POWER_OFF 0x0F #define BPP_POWER_5_PERCENT_ON 0x0E #define BPP_POWER_10_PERCENT_ON 0x0C #define BPP_POWER_15_PERCENT_ON 0x08 #define BPP_POWER_ON 0x00 #define BPP_POWER_MASK 0x0F #define SD_VCC_PARTIAL_POWER_ON 0x02 #define SD_VCC_POWER_ON 0x00 |
67d16a468 drivers/mfd: Add ... |
356 |
#define CARD_CLK_SWITCH 0xFD51 |
9032eabdd mfd: rtsx: Add su... |
357 |
#define RTL8411B_PACKAGE_MODE 0xFD51 |
67d16a468 drivers/mfd: Add ... |
358 |
#define CARD_SHARE_MODE 0xFD52 |
ada71f558 mfd: rtsx: Place ... |
359 360 361 362 363 364 365 |
#define CARD_SHARE_MASK 0x0F #define CARD_SHARE_MULTI_LUN 0x00 #define CARD_SHARE_NORMAL 0x00 #define CARD_SHARE_48_SD 0x04 #define CARD_SHARE_48_MS 0x08 #define CARD_SHARE_BAROSSA_SD 0x01 #define CARD_SHARE_BAROSSA_MS 0x02 |
67d16a468 drivers/mfd: Add ... |
366 |
#define CARD_DRIVE_SEL 0xFD53 |
ada71f558 mfd: rtsx: Place ... |
367 368 369 370 371 372 373 374 375 |
#define MS_DRIVE_8mA (0x01 << 6) #define MMC_DRIVE_8mA (0x01 << 4) #define XD_DRIVE_8mA (0x01 << 2) #define GPIO_DRIVE_8mA 0x01 #define RTS5209_CARD_DRIVE_DEFAULT (MS_DRIVE_8mA | MMC_DRIVE_8mA |\ XD_DRIVE_8mA | GPIO_DRIVE_8mA) #define RTL8411_CARD_DRIVE_DEFAULT (MS_DRIVE_8mA | MMC_DRIVE_8mA |\ XD_DRIVE_8mA) #define RTSX_CARD_DRIVE_DEFAULT (MS_DRIVE_8mA | GPIO_DRIVE_8mA) |
67d16a468 drivers/mfd: Add ... |
376 |
#define CARD_STOP 0xFD54 |
ada71f558 mfd: rtsx: Place ... |
377 378 379 380 381 382 383 384 |
#define SPI_STOP 0x01 #define XD_STOP 0x02 #define SD_STOP 0x04 #define MS_STOP 0x08 #define SPI_CLR_ERR 0x10 #define XD_CLR_ERR 0x20 #define SD_CLR_ERR 0x40 #define MS_CLR_ERR 0x80 |
67d16a468 drivers/mfd: Add ... |
385 |
#define CARD_OE 0xFD55 |
ada71f558 mfd: rtsx: Place ... |
386 387 |
#define SD_OUTPUT_EN 0x04 #define MS_OUTPUT_EN 0x08 |
67d16a468 drivers/mfd: Add ... |
388 389 390 391 |
#define CARD_AUTO_BLINK 0xFD56 #define CARD_GPIO_DIR 0xFD57 #define CARD_GPIO 0xFD58 #define CARD_DATA_SOURCE 0xFD5B |
ada71f558 mfd: rtsx: Place ... |
392 393 |
#define PINGPONG_BUFFER 0x01 #define RING_BUFFER 0x00 |
e12379320 mfd: rtsx: Suppor... |
394 |
#define SD30_CLK_DRIVE_SEL 0xFD5A |
ada71f558 mfd: rtsx: Place ... |
395 396 397 398 |
#define DRIVER_TYPE_A 0x05 #define DRIVER_TYPE_B 0x03 #define DRIVER_TYPE_C 0x02 #define DRIVER_TYPE_D 0x01 |
67d16a468 drivers/mfd: Add ... |
399 |
#define CARD_SELECT 0xFD5C |
ada71f558 mfd: rtsx: Place ... |
400 401 |
#define SD_MOD_SEL 2 #define MS_MOD_SEL 3 |
67d16a468 drivers/mfd: Add ... |
402 |
#define SD30_DRIVE_SEL 0xFD5E |
ada71f558 mfd: rtsx: Place ... |
403 404 405 406 |
#define CFG_DRIVER_TYPE_A 0x02 #define CFG_DRIVER_TYPE_B 0x03 #define CFG_DRIVER_TYPE_C 0x01 #define CFG_DRIVER_TYPE_D 0x00 |
e12379320 mfd: rtsx: Suppor... |
407 408 |
#define SD30_CMD_DRIVE_SEL 0xFD5E #define SD30_DAT_DRIVE_SEL 0xFD5F |
67d16a468 drivers/mfd: Add ... |
409 |
#define CARD_CLK_EN 0xFD69 |
ada71f558 mfd: rtsx: Place ... |
410 411 |
#define SD_CLK_EN 0x04 #define MS_CLK_EN 0x08 |
5da4e04ae misc: rtsx: Add s... |
412 |
#define SD40_CLK_EN 0x10 |
67d16a468 drivers/mfd: Add ... |
413 414 |
#define SDIO_CTRL 0xFD6B #define CD_PAD_CTL 0xFD73 |
ada71f558 mfd: rtsx: Place ... |
415 416 417 418 419 420 421 422 423 424 425 426 427 428 |
#define CD_DISABLE_MASK 0x07 #define MS_CD_DISABLE 0x04 #define SD_CD_DISABLE 0x02 #define XD_CD_DISABLE 0x01 #define CD_DISABLE 0x07 #define CD_ENABLE 0x00 #define MS_CD_EN_ONLY 0x03 #define SD_CD_EN_ONLY 0x05 #define XD_CD_EN_ONLY 0x06 #define FORCE_CD_LOW_MASK 0x38 #define FORCE_CD_XD_LOW 0x08 #define FORCE_CD_SD_LOW 0x10 #define FORCE_CD_MS_LOW 0x20 #define CD_AUTO_DISABLE 0x40 |
67d16a468 drivers/mfd: Add ... |
429 |
#define FPDCTL 0xFC00 |
ada71f558 mfd: rtsx: Place ... |
430 431 |
#define SSC_POWER_DOWN 0x01 #define SD_OC_POWER_DOWN 0x02 |
5da4e04ae misc: rtsx: Add s... |
432 433 |
#define ALL_POWER_DOWN 0x03 #define OC_POWER_DOWN 0x02 |
67d16a468 drivers/mfd: Add ... |
434 435 436 |
#define PDINFO 0xFC01 #define CLK_CTL 0xFC02 |
ada71f558 mfd: rtsx: Place ... |
437 438 |
#define CHANGE_CLK 0x01 #define CLK_LOW_FREQ 0x01 |
67d16a468 drivers/mfd: Add ... |
439 |
#define CLK_DIV 0xFC03 |
ada71f558 mfd: rtsx: Place ... |
440 441 442 443 |
#define CLK_DIV_1 0x01 #define CLK_DIV_2 0x02 #define CLK_DIV_4 0x03 #define CLK_DIV_8 0x04 |
67d16a468 drivers/mfd: Add ... |
444 445 446 447 448 |
#define CLK_SEL 0xFC04 #define SSC_DIV_N_0 0xFC0F #define SSC_DIV_N_1 0xFC10 #define SSC_CTL1 0xFC11 |
ada71f558 mfd: rtsx: Place ... |
449 450 451 452 453 454 455 |
#define SSC_RSTB 0x80 #define SSC_8X_EN 0x40 #define SSC_FIX_FRAC 0x20 #define SSC_SEL_1M 0x00 #define SSC_SEL_2M 0x08 #define SSC_SEL_4M 0x10 #define SSC_SEL_8M 0x18 |
67d16a468 drivers/mfd: Add ... |
456 |
#define SSC_CTL2 0xFC12 |
ada71f558 mfd: rtsx: Place ... |
457 458 459 460 461 462 463 |
#define SSC_DEPTH_MASK 0x07 #define SSC_DEPTH_DISALBE 0x00 #define SSC_DEPTH_4M 0x01 #define SSC_DEPTH_2M 0x02 #define SSC_DEPTH_1M 0x03 #define SSC_DEPTH_500K 0x04 #define SSC_DEPTH_250K 0x05 |
67d16a468 drivers/mfd: Add ... |
464 465 466 467 |
#define RCCTL 0xFC14 #define FPGA_PULL_CTL 0xFC1D #define OLT_LED_CTL 0xFC1E |
5da4e04ae misc: rtsx: Add s... |
468 469 470 |
#define LED_SHINE_MASK 0x08 #define LED_SHINE_EN 0x08 #define LED_SHINE_DISABLE 0x00 |
67d16a468 drivers/mfd: Add ... |
471 472 473 |
#define GPIO_CTL 0xFC1F #define LDO_CTL 0xFC1E |
ada71f558 mfd: rtsx: Place ... |
474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 |
#define BPP_ASIC_1V7 0x00 #define BPP_ASIC_1V8 0x01 #define BPP_ASIC_1V9 0x02 #define BPP_ASIC_2V0 0x03 #define BPP_ASIC_2V7 0x04 #define BPP_ASIC_2V8 0x05 #define BPP_ASIC_3V2 0x06 #define BPP_ASIC_3V3 0x07 #define BPP_REG_TUNED18 0x07 #define BPP_TUNED18_SHIFT_8402 5 #define BPP_TUNED18_SHIFT_8411 4 #define BPP_PAD_MASK 0x04 #define BPP_PAD_3V3 0x04 #define BPP_PAD_1V8 0x00 #define BPP_LDO_POWB 0x03 #define BPP_LDO_ON 0x00 #define BPP_LDO_SUSPEND 0x02 #define BPP_LDO_OFF 0x03 |
5da4e04ae misc: rtsx: Add s... |
492 493 |
#define EFUSE_CTL 0xFC30 #define EFUSE_ADD 0xFC31 |
67d16a468 drivers/mfd: Add ... |
494 |
#define SYS_VER 0xFC32 |
5da4e04ae misc: rtsx: Add s... |
495 496 |
#define EFUSE_DATAL 0xFC34 #define EFUSE_DATAH 0xFC35 |
67d16a468 drivers/mfd: Add ... |
497 498 499 500 501 502 503 504 505 506 507 |
#define CARD_PULL_CTL1 0xFD60 #define CARD_PULL_CTL2 0xFD61 #define CARD_PULL_CTL3 0xFD62 #define CARD_PULL_CTL4 0xFD63 #define CARD_PULL_CTL5 0xFD64 #define CARD_PULL_CTL6 0xFD65 /* PCI Express Related Registers */ #define IRQEN0 0xFE20 #define IRQSTAT0 0xFE21 |
ada71f558 mfd: rtsx: Place ... |
508 509 510 511 |
#define DMA_DONE_INT 0x80 #define SUSPEND_INT 0x40 #define LINK_RDY_INT 0x20 #define LINK_DOWN_INT 0x10 |
67d16a468 drivers/mfd: Add ... |
512 513 514 515 516 517 518 519 520 521 522 |
#define IRQEN1 0xFE22 #define IRQSTAT1 0xFE23 #define TLPRIEN 0xFE24 #define TLPRISTAT 0xFE25 #define TLPTIEN 0xFE26 #define TLPTISTAT 0xFE27 #define DMATC0 0xFE28 #define DMATC1 0xFE29 #define DMATC2 0xFE2A #define DMATC3 0xFE2B #define DMACTL 0xFE2C |
ada71f558 mfd: rtsx: Place ... |
523 524 525 526 527 528 529 530 531 532 |
#define DMA_RST 0x80 #define DMA_BUSY 0x04 #define DMA_DIR_TO_CARD 0x00 #define DMA_DIR_FROM_CARD 0x02 #define DMA_EN 0x01 #define DMA_128 (0 << 4) #define DMA_256 (1 << 4) #define DMA_512 (2 << 4) #define DMA_1024 (3 << 4) #define DMA_PACK_SIZE_MASK 0x30 |
67d16a468 drivers/mfd: Add ... |
533 534 535 536 537 |
#define BCTL 0xFE2D #define RBBC0 0xFE2E #define RBBC1 0xFE2F #define RBDAT 0xFE30 #define RBCTL 0xFE34 |
5da4e04ae misc: rtsx: Add s... |
538 539 540 |
#define U_AUTO_DMA_EN_MASK 0x20 #define U_AUTO_DMA_DISABLE 0x00 #define RB_FLUSH 0x80 |
67d16a468 drivers/mfd: Add ... |
541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 |
#define CFGADDR0 0xFE35 #define CFGADDR1 0xFE36 #define CFGDATA0 0xFE37 #define CFGDATA1 0xFE38 #define CFGDATA2 0xFE39 #define CFGDATA3 0xFE3A #define CFGRWCTL 0xFE3B #define PHYRWCTL 0xFE3C #define PHYDATA0 0xFE3D #define PHYDATA1 0xFE3E #define PHYADDR 0xFE3F #define MSGRXDATA0 0xFE40 #define MSGRXDATA1 0xFE41 #define MSGRXDATA2 0xFE42 #define MSGRXDATA3 0xFE43 #define MSGTXDATA0 0xFE44 #define MSGTXDATA1 0xFE45 #define MSGTXDATA2 0xFE46 #define MSGTXDATA3 0xFE47 #define MSGTXCTL 0xFE48 |
e12379320 mfd: rtsx: Suppor... |
561 |
#define LTR_CTL 0xFE4A |
8275b77a1 mfd: rts5249: Add... |
562 563 564 565 566 567 |
#define LTR_TX_EN_MASK BIT(7) #define LTR_TX_EN_1 BIT(7) #define LTR_TX_EN_0 0 #define LTR_LATENCY_MODE_MASK BIT(6) #define LTR_LATENCY_MODE_HW 0 #define LTR_LATENCY_MODE_SW BIT(6) |
e12379320 mfd: rtsx: Suppor... |
568 |
#define OBFF_CFG 0xFE4C |
5da4e04ae misc: rtsx: Add s... |
569 570 |
#define OBFF_EN_MASK 0x03 #define OBFF_DISABLE 0x00 |
67d16a468 drivers/mfd: Add ... |
571 572 573 |
#define CDRESUMECTL 0xFE52 #define WAKE_SEL_CTL 0xFE54 |
663c425f2 mfd: rtsx: Add su... |
574 575 |
#define PCLK_CTL 0xFE55 #define PCLK_MODE_SEL 0x20 |
67d16a468 drivers/mfd: Add ... |
576 |
#define PME_FORCE_CTL 0xFE56 |
663c425f2 mfd: rtsx: Add su... |
577 |
|
67d16a468 drivers/mfd: Add ... |
578 |
#define ASPM_FORCE_CTL 0xFE57 |
663c425f2 mfd: rtsx: Add su... |
579 |
#define FORCE_ASPM_CTL0 0x10 |
849a9366c misc: rtsx: Add s... |
580 |
#define FORCE_ASPM_CTL1 0x20 |
663c425f2 mfd: rtsx: Add su... |
581 582 583 584 |
#define FORCE_ASPM_VAL_MASK 0x03 #define FORCE_ASPM_L1_EN 0x02 #define FORCE_ASPM_L0_EN 0x01 #define FORCE_ASPM_NO_ASPM 0x00 |
67d16a468 drivers/mfd: Add ... |
585 |
#define PM_CLK_FORCE_CTL 0xFE58 |
5da4e04ae misc: rtsx: Add s... |
586 |
#define CLK_PM_EN 0x01 |
0ccc0065c mfd: rtsx: Clear ... |
587 |
#define FUNC_FORCE_CTL 0xFE59 |
ce6a5acc9 mfd: rtsx: Add su... |
588 |
#define FUNC_FORCE_UPME_XMT_DBG 0x02 |
67d16a468 drivers/mfd: Add ... |
589 590 591 592 593 |
#define PERST_GLITCH_WIDTH 0xFE5C #define CHANGE_LINK_STATE 0xFE5B #define RESET_LOAD_REG 0xFE5E #define EFUSE_CONTENT 0xFE5F #define HOST_SLEEP_STATE 0xFE60 |
ada71f558 mfd: rtsx: Place ... |
594 595 |
#define HOST_ENTER_S1 1 #define HOST_ENTER_S3 2 |
67d16a468 drivers/mfd: Add ... |
596 |
#define SDIO_CFG 0xFE70 |
663c425f2 mfd: rtsx: Add su... |
597 598 |
#define PM_EVENT_DEBUG 0xFE71 #define PME_DEBUG_0 0x08 |
67d16a468 drivers/mfd: Add ... |
599 600 601 |
#define NFTS_TX_CTRL 0xFE72 #define PWR_GATE_CTRL 0xFE75 |
ada71f558 mfd: rtsx: Place ... |
602 603 604 605 606 |
#define PWR_GATE_EN 0x01 #define LDO3318_PWR_MASK 0x06 #define LDO_ON 0x00 #define LDO_SUSPEND 0x04 #define LDO_OFF 0x06 |
67d16a468 drivers/mfd: Add ... |
607 608 |
#define PWD_SUSPEND_EN 0xFE76 #define LDO_PWR_SEL 0xFE78 |
663c425f2 mfd: rtsx: Add su... |
609 |
#define L1SUB_CONFIG1 0xFE8D |
5da4e04ae misc: rtsx: Add s... |
610 611 |
#define AUX_CLK_ACTIVE_SEL_MASK 0x01 #define MAC_CKSW_DONE 0x00 |
663c425f2 mfd: rtsx: Add su... |
612 613 614 |
#define L1SUB_CONFIG2 0xFE8E #define L1SUB_AUTO_CFG 0x02 #define L1SUB_CONFIG3 0xFE8F |
8275b77a1 mfd: rts5249: Add... |
615 |
#define L1OFF_MBIAS2_EN_5250 BIT(7) |
663c425f2 mfd: rtsx: Add su... |
616 |
|
67d16a468 drivers/mfd: Add ... |
617 |
#define DUMMY_REG_RESET_0 0xFE90 |
5da4e04ae misc: rtsx: Add s... |
618 |
#define IC_VERSION_MASK 0x0F |
67d16a468 drivers/mfd: Add ... |
619 |
|
5da4e04ae misc: rtsx: Add s... |
620 621 622 623 624 |
#define REG_VREF 0xFE97 #define PWD_SUSPND_EN 0x10 #define RTS5260_DMA_RST_CTL_0 0xFEBF #define RTS5260_DMA_RST 0x80 #define RTS5260_ADMA3_RST 0x40 |
773ccdfd9 mfd: rtsx: Read v... |
625 |
#define AUTOLOAD_CFG_BASE 0xFF00 |
5da4e04ae misc: rtsx: Add s... |
626 |
#define RELINK_TIME_MASK 0x01 |
9e33ce79f mfd: rtsx: Update... |
627 |
#define PETXCFG 0xFF03 |
8275b77a1 mfd: rts5249: Add... |
628 629 630 |
#define FORCE_CLKREQ_DELINK_MASK BIT(7) #define FORCE_CLKREQ_LOW 0x80 #define FORCE_CLKREQ_HIGH 0x00 |
773ccdfd9 mfd: rtsx: Read v... |
631 |
|
5947c167d mfd: rtsx: Add sh... |
632 |
#define PM_CTRL1 0xFF44 |
663c425f2 mfd: rtsx: Add su... |
633 |
#define CD_RESUME_EN_MASK 0xF0 |
5947c167d mfd: rtsx: Add sh... |
634 635 |
#define PM_CTRL2 0xFF45 #define PM_CTRL3 0xFF46 |
5cb5d9616 mfd: rtsx: Fix PM... |
636 637 638 639 640 641 642 643 |
#define SDIO_SEND_PME_EN 0x80 #define FORCE_RC_MODE_ON 0x40 #define FORCE_RX50_LINK_ON 0x20 #define D3_DELINK_MODE_EN 0x10 #define USE_PESRTB_CTL_DELINK 0x08 #define DELAY_PIN_WAKE 0x04 #define RESET_PIN_WAKE 0x02 #define PM_WAKE_EN 0x01 |
5947c167d mfd: rtsx: Add sh... |
644 |
#define PM_CTRL4 0xFF47 |
849a9366c misc: rtsx: Add s... |
645 646 647 648 |
#define REG_CFG_OOBS_OFF_TIMER 0xFEA6 #define REG_CFG_OOBS_ON_TIMER 0xFEA7 #define REG_CFG_VCM_ON_TIMER 0xFEA8 #define REG_CFG_OOBS_POLLING 0xFEA9 |
67d16a468 drivers/mfd: Add ... |
649 650 651 652 653 654 655 |
/* Memory mapping */ #define SRAM_BASE 0xE600 #define RBUF_BASE 0xF400 #define PPBUF_BASE1 0xF800 #define PPBUF_BASE2 0xFA00 #define IMAGE_FLAG_ADDR0 0xCE80 #define IMAGE_FLAG_ADDR1 0xCE81 |
663c425f2 mfd: rtsx: Add su... |
656 657 658 659 660 661 662 663 664 665 666 |
#define RREF_CFG 0xFF6C #define RREF_VBGSEL_MASK 0x38 #define RREF_VBGSEL_1V25 0x28 #define OOBS_CONFIG 0xFF6E #define OOBS_AUTOK_DIS 0x80 #define OOBS_VAL_MASK 0x1F #define LDO_DV18_CFG 0xFF70 #define LDO_DV18_SR_MASK 0xC0 #define LDO_DV18_SR_DF 0x40 |
5da4e04ae misc: rtsx: Add s... |
667 668 669 |
#define DV331812_MASK 0x70 #define DV331812_33 0x70 #define DV331812_17 0x30 |
663c425f2 mfd: rtsx: Add su... |
670 671 672 673 674 |
#define LDO_CONFIG2 0xFF71 #define LDO_D3318_MASK 0x07 #define LDO_D3318_33V 0x07 #define LDO_D3318_18V 0x02 |
5da4e04ae misc: rtsx: Add s... |
675 676 677 |
#define DV331812_VDD1 0x04 #define DV331812_POWERON 0x08 #define DV331812_POWEROFF 0x00 |
663c425f2 mfd: rtsx: Add su... |
678 679 680 681 |
#define LDO_VCC_CFG0 0xFF72 #define LDO_VCC_LMTVTH_MASK 0x30 #define LDO_VCC_LMTVTH_2A 0x10 |
5da4e04ae misc: rtsx: Add s... |
682 683 684 |
/*RTS5260*/ #define RTS5260_DVCC_TUNE_MASK 0x70 #define RTS5260_DVCC_33 0x70 |
663c425f2 mfd: rtsx: Add su... |
685 686 687 688 689 690 691 692 |
#define LDO_VCC_CFG1 0xFF73 #define LDO_VCC_REF_TUNE_MASK 0x30 #define LDO_VCC_REF_1V2 0x20 #define LDO_VCC_TUNE_MASK 0x07 #define LDO_VCC_1V8 0x04 #define LDO_VCC_3V3 0x07 #define LDO_VCC_LMT_EN 0x08 |
5da4e04ae misc: rtsx: Add s... |
693 694 695 696 |
/*RTS5260*/ #define LDO_POW_SDVDD1_MASK 0x08 #define LDO_POW_SDVDD1_ON 0x08 #define LDO_POW_SDVDD1_OFF 0x00 |
663c425f2 mfd: rtsx: Add su... |
697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 |
#define LDO_VIO_CFG 0xFF75 #define LDO_VIO_SR_MASK 0xC0 #define LDO_VIO_SR_DF 0x40 #define LDO_VIO_REF_TUNE_MASK 0x30 #define LDO_VIO_REF_1V2 0x20 #define LDO_VIO_TUNE_MASK 0x07 #define LDO_VIO_1V7 0x03 #define LDO_VIO_1V8 0x04 #define LDO_VIO_3V3 0x07 #define LDO_DV12S_CFG 0xFF76 #define LDO_REF12_TUNE_MASK 0x18 #define LDO_REF12_TUNE_DF 0x10 #define LDO_D12_TUNE_MASK 0x07 #define LDO_D12_TUNE_DF 0x04 #define LDO_AV12S_CFG 0xFF77 #define LDO_AV12S_TUNE_MASK 0x07 #define LDO_AV12S_TUNE_DF 0x04 #define SD40_LDO_CTL1 0xFE7D #define SD40_VIO_TUNE_MASK 0x70 #define SD40_VIO_TUNE_1V7 0x30 #define SD_VIO_LDO_1V8 0x40 #define SD_VIO_LDO_3V3 0x70 |
5da4e04ae misc: rtsx: Add s... |
723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 |
#define RTS5260_AUTOLOAD_CFG4 0xFF7F #define RTS5260_MIMO_DISABLE 0x8A #define RTS5260_REG_GPIO_CTL0 0xFC1A #define RTS5260_REG_GPIO_MASK 0x01 #define RTS5260_REG_GPIO_ON 0x01 #define RTS5260_REG_GPIO_OFF 0x00 #define PWR_GLOBAL_CTRL 0xF200 #define PCIE_L1_2_EN 0x0C #define PCIE_L1_1_EN 0x0A #define PCIE_L1_0_EN 0x09 #define PWR_FE_CTL 0xF201 #define PCIE_L1_2_PD_FE_EN 0x0C #define PCIE_L1_1_PD_FE_EN 0x0A #define PCIE_L1_0_PD_FE_EN 0x09 #define CFG_PCIE_APHY_OFF_0 0xF204 #define CFG_PCIE_APHY_OFF_0_DEFAULT 0xBF #define CFG_PCIE_APHY_OFF_1 0xF205 #define CFG_PCIE_APHY_OFF_1_DEFAULT 0xFF #define CFG_PCIE_APHY_OFF_2 0xF206 #define CFG_PCIE_APHY_OFF_2_DEFAULT 0x01 #define CFG_PCIE_APHY_OFF_3 0xF207 #define CFG_PCIE_APHY_OFF_3_DEFAULT 0x00 #define CFG_L1_0_PCIE_MAC_RET_VALUE 0xF20C #define CFG_L1_0_PCIE_DPHY_RET_VALUE 0xF20E #define CFG_L1_0_SYS_RET_VALUE 0xF210 #define CFG_L1_0_CRC_MISC_RET_VALUE 0xF212 #define CFG_L1_0_CRC_SD30_RET_VALUE 0xF214 #define CFG_L1_0_CRC_SD40_RET_VALUE 0xF216 #define CFG_LP_FPWM_VALUE 0xF219 #define CFG_LP_FPWM_VALUE_DEFAULT 0x18 #define PWC_CDR 0xF253 #define PWC_CDR_DEFAULT 0x03 #define CFG_L1_0_RET_VALUE_DEFAULT 0x1B #define CFG_L1_0_CRC_MISC_RET_VALUE_DEFAULT 0x0C /* OCPCTL */ #define SD_DETECT_EN 0x08 #define SD_OCP_INT_EN 0x04 #define SD_OCP_INT_CLR 0x02 #define SD_OC_CLR 0x01 #define SDVIO_DETECT_EN (1 << 7) #define SDVIO_OCP_INT_EN (1 << 6) #define SDVIO_OCP_INT_CLR (1 << 5) #define SDVIO_OC_CLR (1 << 4) /* OCPSTAT */ #define SD_OCP_DETECT 0x08 #define SD_OC_NOW 0x04 #define SD_OC_EVER 0x02 #define SDVIO_OC_NOW (1 << 6) #define SDVIO_OC_EVER (1 << 5) #define REG_OCPCTL 0xFD6A #define REG_OCPSTAT 0xFD6E #define REG_OCPGLITCH 0xFD6C #define REG_OCPPARA1 0xFD6B #define REG_OCPPARA2 0xFD6D /* rts5260 DV3318 OCP-related registers */ #define REG_DV3318_OCPCTL 0xFD89 #define DV3318_OCP_TIME_MASK 0xF0 #define DV3318_DETECT_EN 0x08 #define DV3318_OCP_INT_EN 0x04 #define DV3318_OCP_INT_CLR 0x02 #define DV3318_OCP_CLR 0x01 #define REG_DV3318_OCPSTAT 0xFD8A #define DV3318_OCP_GlITCH_TIME_MASK 0xF0 #define DV3318_OCP_DETECT 0x08 #define DV3318_OCP_NOW 0x04 #define DV3318_OCP_EVER 0x02 #define SD_OCP_GLITCH_MASK 0x0F /* OCPPARA1 */ #define SDVIO_OCP_TIME_60 0x00 #define SDVIO_OCP_TIME_100 0x10 #define SDVIO_OCP_TIME_200 0x20 #define SDVIO_OCP_TIME_400 0x30 #define SDVIO_OCP_TIME_600 0x40 #define SDVIO_OCP_TIME_800 0x50 #define SDVIO_OCP_TIME_1100 0x60 #define SDVIO_OCP_TIME_MASK 0x70 #define SD_OCP_TIME_60 0x00 #define SD_OCP_TIME_100 0x01 #define SD_OCP_TIME_200 0x02 #define SD_OCP_TIME_400 0x03 #define SD_OCP_TIME_600 0x04 #define SD_OCP_TIME_800 0x05 #define SD_OCP_TIME_1100 0x06 #define SD_OCP_TIME_MASK 0x07 /* OCPPARA2 */ #define SDVIO_OCP_THD_190 0x00 #define SDVIO_OCP_THD_250 0x10 #define SDVIO_OCP_THD_320 0x20 #define SDVIO_OCP_THD_380 0x30 #define SDVIO_OCP_THD_440 0x40 #define SDVIO_OCP_THD_500 0x50 #define SDVIO_OCP_THD_570 0x60 #define SDVIO_OCP_THD_630 0x70 #define SDVIO_OCP_THD_MASK 0x70 #define SD_OCP_THD_450 0x00 #define SD_OCP_THD_550 0x01 #define SD_OCP_THD_650 0x02 #define SD_OCP_THD_750 0x03 #define SD_OCP_THD_850 0x04 #define SD_OCP_THD_950 0x05 #define SD_OCP_THD_1050 0x06 #define SD_OCP_THD_1150 0x07 #define SD_OCP_THD_MASK 0x07 #define SDVIO_OCP_GLITCH_MASK 0xF0 #define SDVIO_OCP_GLITCH_NONE 0x00 #define SDVIO_OCP_GLITCH_50U 0x10 #define SDVIO_OCP_GLITCH_100U 0x20 #define SDVIO_OCP_GLITCH_200U 0x30 #define SDVIO_OCP_GLITCH_600U 0x40 #define SDVIO_OCP_GLITCH_800U 0x50 #define SDVIO_OCP_GLITCH_1M 0x60 #define SDVIO_OCP_GLITCH_2M 0x70 #define SDVIO_OCP_GLITCH_3M 0x80 #define SDVIO_OCP_GLITCH_4M 0x90 #define SDVIO_OCP_GLIVCH_5M 0xA0 #define SDVIO_OCP_GLITCH_6M 0xB0 #define SDVIO_OCP_GLITCH_7M 0xC0 #define SDVIO_OCP_GLITCH_8M 0xD0 #define SDVIO_OCP_GLITCH_9M 0xE0 #define SDVIO_OCP_GLITCH_10M 0xF0 #define SD_OCP_GLITCH_MASK 0x0F #define SD_OCP_GLITCH_NONE 0x00 #define SD_OCP_GLITCH_50U 0x01 #define SD_OCP_GLITCH_100U 0x02 #define SD_OCP_GLITCH_200U 0x03 #define SD_OCP_GLITCH_600U 0x04 #define SD_OCP_GLITCH_800U 0x05 #define SD_OCP_GLITCH_1M 0x06 #define SD_OCP_GLITCH_2M 0x07 #define SD_OCP_GLITCH_3M 0x08 #define SD_OCP_GLITCH_4M 0x09 #define SD_OCP_GLIVCH_5M 0x0A #define SD_OCP_GLITCH_6M 0x0B #define SD_OCP_GLITCH_7M 0x0C #define SD_OCP_GLITCH_8M 0x0D #define SD_OCP_GLITCH_9M 0x0E #define SD_OCP_GLITCH_10M 0x0F |
4c4b8c105 mfd: rtsx: Suppor... |
876 877 |
/* Phy register */ #define PHY_PCR 0x00 |
b03853810 mfd: rtsx: Update... |
878 879 880 881 882 883 |
#define PHY_PCR_FORCE_CODE 0xB000 #define PHY_PCR_OOBS_CALI_50 0x0800 #define PHY_PCR_OOBS_VCM_08 0x0200 #define PHY_PCR_OOBS_SEN_90 0x0040 #define PHY_PCR_RSSI_EN 0x0002 #define PHY_PCR_RX10K 0x0001 |
4c4b8c105 mfd: rtsx: Suppor... |
884 885 |
#define PHY_RCR0 0x01 #define PHY_RCR1 0x02 |
b03853810 mfd: rtsx: Update... |
886 887 |
#define PHY_RCR1_ADP_TIME_4 0x0400 #define PHY_RCR1_VCO_COARSE 0x001F |
ce6a5acc9 mfd: rtsx: Add su... |
888 |
#define PHY_RCR1_INIT_27S 0x0A1F |
663c425f2 mfd: rtsx: Add su... |
889 890 891 892 |
#define PHY_SSCCR2 0x02 #define PHY_SSCCR2_PLL_NCODE 0x0A00 #define PHY_SSCCR2_TIME0 0x001C #define PHY_SSCCR2_TIME2_WIDTH 0x0003 |
b03853810 mfd: rtsx: Update... |
893 |
|
4c4b8c105 mfd: rtsx: Suppor... |
894 |
#define PHY_RCR2 0x03 |
b03853810 mfd: rtsx: Update... |
895 896 897 898 899 900 |
#define PHY_RCR2_EMPHASE_EN 0x8000 #define PHY_RCR2_NADJR 0x4000 #define PHY_RCR2_CDR_SR_2 0x0100 #define PHY_RCR2_FREQSEL_12 0x0040 #define PHY_RCR2_CDR_SC_12P 0x0010 #define PHY_RCR2_CALIB_LATE 0x0002 |
ce6a5acc9 mfd: rtsx: Add su... |
901 |
#define PHY_RCR2_INIT_27S 0xC152 |
663c425f2 mfd: rtsx: Add su... |
902 903 904 |
#define PHY_SSCCR3 0x03 #define PHY_SSCCR3_STEP_IN 0x2740 #define PHY_SSCCR3_CHECK_DELAY 0x0008 |
41bc23347 mfd: rtsx: Add su... |
905 906 907 908 |
#define _PHY_ANA03 0x03 #define _PHY_ANA03_TIMER_MAX 0x2700 #define _PHY_ANA03_OOBS_DEB_EN 0x0040 #define _PHY_CMU_DEBUG_EN 0x0008 |
b03853810 mfd: rtsx: Update... |
909 |
|
4c4b8c105 mfd: rtsx: Suppor... |
910 911 |
#define PHY_RTCR 0x04 #define PHY_RDR 0x05 |
b03853810 mfd: rtsx: Update... |
912 913 |
#define PHY_RDR_RXDSEL_1_9 0x4000 #define PHY_SSC_AUTO_PWD 0x0600 |
4c4b8c105 mfd: rtsx: Suppor... |
914 915 916 |
#define PHY_TCR0 0x06 #define PHY_TCR1 0x07 #define PHY_TUNE 0x08 |
b03853810 mfd: rtsx: Update... |
917 918 919 920 921 922 |
#define PHY_TUNE_TUNEREF_1_0 0x4000 #define PHY_TUNE_VBGSEL_1252 0x0C00 #define PHY_TUNE_SDBUS_33 0x0200 #define PHY_TUNE_TUNED18 0x01C0 #define PHY_TUNE_TUNED12 0X0020 #define PHY_TUNE_TUNEA12 0x0004 |
663c425f2 mfd: rtsx: Add su... |
923 924 925 926 927 928 929 930 931 932 |
#define PHY_TUNE_VOLTAGE_MASK 0xFC3F #define PHY_TUNE_VOLTAGE_3V3 0x03C0 #define PHY_TUNE_D18_1V8 0x0100 #define PHY_TUNE_D18_1V7 0x0080 #define PHY_ANA08 0x08 #define PHY_ANA08_RX_EQ_DCGAIN 0x5000 #define PHY_ANA08_SEL_RX_EN 0x0400 #define PHY_ANA08_RX_EQ_VAL 0x03C0 #define PHY_ANA08_SCP 0x0020 #define PHY_ANA08_SEL_IPI 0x0004 |
b03853810 mfd: rtsx: Update... |
933 |
|
4c4b8c105 mfd: rtsx: Suppor... |
934 935 |
#define PHY_IMR 0x09 #define PHY_BPCR 0x0A |
b03853810 mfd: rtsx: Update... |
936 937 938 939 |
#define PHY_BPCR_IBRXSEL 0x0400 #define PHY_BPCR_IBTXSEL 0x0100 #define PHY_BPCR_IB_FILTER 0x0080 #define PHY_BPCR_CMIRROR_EN 0x0040 |
4c4b8c105 mfd: rtsx: Suppor... |
940 941 942 943 944 945 946 |
#define PHY_BIST 0x0B #define PHY_RAW_L 0x0C #define PHY_RAW_H 0x0D #define PHY_RAW_DATA 0x0E #define PHY_HOST_CLK_CTRL 0x0F #define PHY_DMR 0x10 #define PHY_BACR 0x11 |
663c425f2 mfd: rtsx: Add su... |
947 |
#define PHY_BACR_BASIC_MASK 0xFFF3 |
4c4b8c105 mfd: rtsx: Suppor... |
948 949 950 951 952 953 954 |
#define PHY_IER 0x12 #define PHY_BCSR 0x13 #define PHY_BPR 0x14 #define PHY_BPNR2 0x15 #define PHY_BPNR 0x16 #define PHY_BRNR2 0x17 #define PHY_BENR 0x18 |
b03853810 mfd: rtsx: Update... |
955 956 957 958 959 960 961 962 963 964 965 |
#define PHY_REV 0x19 #define PHY_REV_RESV 0xE000 #define PHY_REV_RXIDLE_LATCHED 0x1000 #define PHY_REV_P1_EN 0x0800 #define PHY_REV_RXIDLE_EN 0x0400 #define PHY_REV_CLKREQ_TX_EN 0x0200 #define PHY_REV_CLKREQ_RX_EN 0x0100 #define PHY_REV_CLKREQ_DT_1_0 0x0040 #define PHY_REV_STOP_CLKRD 0x0020 #define PHY_REV_RX_PWST 0x0008 #define PHY_REV_STOP_CLKWR 0x0004 |
41bc23347 mfd: rtsx: Add su... |
966 967 968 969 |
#define _PHY_REV0 0x19 #define _PHY_REV0_FILTER_OUT 0x3800 #define _PHY_REV0_CDR_BYPASS_PFD 0x0100 #define _PHY_REV0_CDR_RX_IDLE_BYPASS 0x0002 |
b03853810 mfd: rtsx: Update... |
970 |
|
4c4b8c105 mfd: rtsx: Suppor... |
971 |
#define PHY_FLD0 0x1A |
663c425f2 mfd: rtsx: Add su... |
972 973 974 975 976 |
#define PHY_ANA1A 0x1A #define PHY_ANA1A_TXR_LOOPBACK 0x2000 #define PHY_ANA1A_RXT_BIST 0x0500 #define PHY_ANA1A_TXR_BIST 0x0040 #define PHY_ANA1A_REV 0x0006 |
ce6a5acc9 mfd: rtsx: Add su... |
977 |
#define PHY_FLD0_INIT_27S 0x2546 |
4c4b8c105 mfd: rtsx: Suppor... |
978 979 980 |
#define PHY_FLD1 0x1B #define PHY_FLD2 0x1C #define PHY_FLD3 0x1D |
b03853810 mfd: rtsx: Update... |
981 982 983 |
#define PHY_FLD3_TIMER_4 0x0800 #define PHY_FLD3_TIMER_6 0x0020 #define PHY_FLD3_RXDELINK 0x0004 |
ce6a5acc9 mfd: rtsx: Add su... |
984 |
#define PHY_FLD3_INIT_27S 0x0004 |
663c425f2 mfd: rtsx: Add su... |
985 986 |
#define PHY_ANA1D 0x1D #define PHY_ANA1D_DEBUG_ADDR 0x0004 |
41bc23347 mfd: rtsx: Add su... |
987 988 989 990 991 992 993 |
#define _PHY_FLD0 0x1D #define _PHY_FLD0_CLK_REQ_20C 0x8000 #define _PHY_FLD0_RX_IDLE_EN 0x1000 #define _PHY_FLD0_BIT_ERR_RSTN 0x0800 #define _PHY_FLD0_BER_COUNT 0x01E0 #define _PHY_FLD0_BER_TIMER 0x001E #define _PHY_FLD0_CHECK_EN 0x0001 |
b03853810 mfd: rtsx: Update... |
994 |
|
4c4b8c105 mfd: rtsx: Suppor... |
995 |
#define PHY_FLD4 0x1E |
b03853810 mfd: rtsx: Update... |
996 997 998 999 1000 1001 1002 |
#define PHY_FLD4_FLDEN_SEL 0x4000 #define PHY_FLD4_REQ_REF 0x2000 #define PHY_FLD4_RXAMP_OFF 0x1000 #define PHY_FLD4_REQ_ADDA 0x0800 #define PHY_FLD4_BER_COUNT 0x00E0 #define PHY_FLD4_BER_TIMER 0x000A #define PHY_FLD4_BER_CHK_EN 0x0001 |
ce6a5acc9 mfd: rtsx: Add su... |
1003 |
#define PHY_FLD4_INIT_27S 0x5C7F |
663c425f2 mfd: rtsx: Add su... |
1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 |
#define PHY_DIG1E 0x1E #define PHY_DIG1E_REV 0x4000 #define PHY_DIG1E_D0_X_D1 0x1000 #define PHY_DIG1E_RX_ON_HOST 0x0800 #define PHY_DIG1E_RCLK_REF_HOST 0x0400 #define PHY_DIG1E_RCLK_TX_EN_KEEP 0x0040 #define PHY_DIG1E_RCLK_TX_TERM_KEEP 0x0020 #define PHY_DIG1E_RCLK_RX_EIDLE_ON 0x0010 #define PHY_DIG1E_TX_TERM_KEEP 0x0008 #define PHY_DIG1E_RX_TERM_KEEP 0x0004 #define PHY_DIG1E_TX_EN_KEEP 0x0002 #define PHY_DIG1E_RX_EN_KEEP 0x0001 |
4c4b8c105 mfd: rtsx: Suppor... |
1016 |
#define PHY_DUM_REG 0x1F |
773ccdfd9 mfd: rtsx: Read v... |
1017 1018 1019 |
#define PCR_SETTING_REG1 0x724 #define PCR_SETTING_REG2 0x814 #define PCR_SETTING_REG3 0x747 |
67d16a468 drivers/mfd: Add ... |
1020 |
#define rtsx_pci_init_cmd(pcr) ((pcr)->ci = 0) |
87d284443 mfd: rtsx: Do ret... |
1021 1022 |
#define RTS5227_DEVICE_ID 0x5227 #define RTS_MAX_TIMES_FREQ_REDUCTION 8 |
67d16a468 drivers/mfd: Add ... |
1023 1024 1025 1026 1027 1028 1029 |
struct rtsx_pcr; struct pcr_handle { struct rtsx_pcr *pcr; }; struct pcr_ops { |
663c425f2 mfd: rtsx: Add su... |
1030 1031 |
int (*write_phy)(struct rtsx_pcr *pcr, u8 addr, u16 val); int (*read_phy)(struct rtsx_pcr *pcr, u8 addr, u16 *val); |
67d16a468 drivers/mfd: Add ... |
1032 1033 1034 1035 1036 1037 1038 1039 |
int (*extra_init_hw)(struct rtsx_pcr *pcr); int (*optimize_phy)(struct rtsx_pcr *pcr); int (*turn_on_led)(struct rtsx_pcr *pcr); int (*turn_off_led)(struct rtsx_pcr *pcr); int (*enable_auto_blink)(struct rtsx_pcr *pcr); int (*disable_auto_blink)(struct rtsx_pcr *pcr); int (*card_power_on)(struct rtsx_pcr *pcr, int card); int (*card_power_off)(struct rtsx_pcr *pcr, int card); |
d817ac4e1 mfd: rtsx: Add ou... |
1040 1041 |
int (*switch_output_voltage)(struct rtsx_pcr *pcr, u8 voltage); |
67d16a468 drivers/mfd: Add ... |
1042 |
unsigned int (*cd_deglitch)(struct rtsx_pcr *pcr); |
ab4e8f8b7 mfd: rtsx: Add cl... |
1043 |
int (*conv_clk_and_div_n)(int clk, int dir); |
773ccdfd9 mfd: rtsx: Read v... |
1044 |
void (*fetch_vendor_settings)(struct rtsx_pcr *pcr); |
eb891c65c mfd: rtsx: Config... |
1045 |
void (*force_power_down)(struct rtsx_pcr *pcr, u8 pm_state); |
5da4e04ae misc: rtsx: Add s... |
1046 |
void (*stop_cmd)(struct rtsx_pcr *pcr); |
8275b77a1 mfd: rts5249: Add... |
1047 1048 |
void (*set_aspm)(struct rtsx_pcr *pcr, bool enable); |
8275b77a1 mfd: rts5249: Add... |
1049 |
void (*set_l1off_cfg_sub_d0)(struct rtsx_pcr *pcr, int active); |
5da4e04ae misc: rtsx: Add s... |
1050 1051 1052 1053 1054 1055 |
void (*enable_ocp)(struct rtsx_pcr *pcr); void (*disable_ocp)(struct rtsx_pcr *pcr); void (*init_ocp)(struct rtsx_pcr *pcr); void (*process_ocp)(struct rtsx_pcr *pcr); int (*get_ocpstat)(struct rtsx_pcr *pcr, u8 *val); void (*clear_ocpstat)(struct rtsx_pcr *pcr); |
67d16a468 drivers/mfd: Add ... |
1056 1057 1058 |
}; enum PDEV_STAT {PDEV_STAT_IDLE, PDEV_STAT_RUN}; |
8275b77a1 mfd: rts5249: Add... |
1059 1060 1061 1062 1063 1064 1065 |
#define ASPM_L1_1_EN BIT(0) #define ASPM_L1_2_EN BIT(1) #define PM_L1_1_EN BIT(2) #define PM_L1_2_EN BIT(3) #define LTR_L1SS_PWR_GATE_EN BIT(4) #define L1_SNOOZE_TEST_EN BIT(5) #define LTR_L1SS_PWR_GATE_CHECK_CARD_EN BIT(6) |
8275b77a1 mfd: rts5249: Add... |
1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 |
/* * struct rtsx_cr_option - card reader option * @dev_flags: device flags * @force_clkreq_0: force clock request * @ltr_en: enable ltr mode flag * @ltr_enabled: ltr mode in configure space flag * @ltr_active: ltr mode status * @ltr_active_latency: ltr mode active latency * @ltr_idle_latency: ltr mode idle latency * @ltr_l1off_latency: ltr mode l1off latency |
8275b77a1 mfd: rts5249: Add... |
1076 1077 1078 |
* @l1_snooze_delay: l1 snooze delay * @ltr_l1off_sspwrgate: ltr l1off sspwrgate * @ltr_l1off_snooze_sspwrgate: ltr l1off snooze sspwrgate |
5da4e04ae misc: rtsx: Add s... |
1079 1080 1081 |
* @ocp_en: enable ocp flag * @sd_400mA_ocp_thd: 400mA ocp thd * @sd_800mA_ocp_thd: 800mA ocp thd |
8275b77a1 mfd: rts5249: Add... |
1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 |
*/ struct rtsx_cr_option { u32 dev_flags; bool force_clkreq_0; bool ltr_en; bool ltr_enabled; bool ltr_active; u32 ltr_active_latency; u32 ltr_idle_latency; u32 ltr_l1off_latency; |
8275b77a1 mfd: rts5249: Add... |
1092 1093 1094 |
u32 l1_snooze_delay; u8 ltr_l1off_sspwrgate; u8 ltr_l1off_snooze_sspwrgate; |
5da4e04ae misc: rtsx: Add s... |
1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 |
bool ocp_en; u8 sd_400mA_ocp_thd; u8 sd_800mA_ocp_thd; }; /* * struct rtsx_hw_param - card reader hardware param * @interrupt_en: indicate which interrutp enable * @ocp_glitch: ocp glitch time */ struct rtsx_hw_param { u32 interrupt_en; u8 ocp_glitch; |
8275b77a1 mfd: rts5249: Add... |
1108 1109 1110 1111 1112 1113 1114 1115 |
}; #define rtsx_set_dev_flag(cr, flag) \ ((cr)->option.dev_flags |= (flag)) #define rtsx_clear_dev_flag(cr, flag) \ ((cr)->option.dev_flags &= ~(flag)) #define rtsx_check_dev_flag(cr, flag) \ ((cr)->option.dev_flags & (flag)) |
67d16a468 drivers/mfd: Add ... |
1116 1117 1118 |
struct rtsx_pcr { struct pci_dev *pci; unsigned int id; |
8275b77a1 mfd: rts5249: Add... |
1119 |
struct rtsx_cr_option option; |
5da4e04ae misc: rtsx: Add s... |
1120 |
struct rtsx_hw_param hw_param; |
67d16a468 drivers/mfd: Add ... |
1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 |
/* pci resources */ unsigned long addr; void __iomem *remap_addr; int irq; /* host reserved buffer */ void *rtsx_resv_buf; dma_addr_t rtsx_resv_buf_addr; void *host_cmds_ptr; dma_addr_t host_cmds_addr; int ci; void *host_sg_tbl_ptr; dma_addr_t host_sg_tbl_addr; int sgi; u32 bier; char trans_result; unsigned int card_inserted; unsigned int card_removed; |
c3481955f mfd: rtsx: Fix is... |
1144 |
unsigned int card_exist; |
67d16a468 drivers/mfd: Add ... |
1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 |
struct delayed_work carddet_work; struct delayed_work idle_work; spinlock_t lock; struct mutex pcr_mutex; struct completion *done; struct completion *finish_me; unsigned int cur_clock; |
67d16a468 drivers/mfd: Add ... |
1155 1156 1157 1158 1159 1160 1161 1162 1163 |
bool remove_pci; bool msi_en; #define EXTRA_CAPS_SD_SDR50 (1 << 0) #define EXTRA_CAPS_SD_SDR104 (1 << 1) #define EXTRA_CAPS_SD_DDR50 (1 << 2) #define EXTRA_CAPS_MMC_HSDDR (1 << 3) #define EXTRA_CAPS_MMC_HS200 (1 << 4) #define EXTRA_CAPS_MMC_8BIT (1 << 5) |
849a9366c misc: rtsx: Add s... |
1164 |
#define EXTRA_CAPS_NO_MMC (1 << 7) |
67d16a468 drivers/mfd: Add ... |
1165 1166 1167 1168 1169 1170 1171 |
u32 extra_caps; #define IC_VER_A 0 #define IC_VER_B 1 #define IC_VER_C 2 #define IC_VER_D 3 u8 ic_version; |
773ccdfd9 mfd: rtsx: Read v... |
1172 1173 1174 1175 1176 |
u8 sd30_drive_sel_1v8; u8 sd30_drive_sel_3v3; u8 card_drive_sel; #define ASPM_L1_EN 0x02 u8 aspm_en; |
8275b77a1 mfd: rts5249: Add... |
1177 |
bool aspm_enabled; |
773ccdfd9 mfd: rtsx: Read v... |
1178 1179 1180 1181 |
#define PCR_MS_PMOS (1 << 0) #define PCR_REVERSE_SOCKET (1 << 1) u32 flags; |
84d72f9cc mfd: mmc: rtsx: C... |
1182 1183 |
u32 tx_initial_phase; u32 rx_initial_phase; |
67d16a468 drivers/mfd: Add ... |
1184 1185 1186 1187 1188 1189 1190 |
const u32 *sd_pull_ctl_enable_tbl; const u32 *sd_pull_ctl_disable_tbl; const u32 *ms_pull_ctl_enable_tbl; const u32 *ms_pull_ctl_disable_tbl; const struct pcr_ops *ops; enum PDEV_STAT state; |
663c425f2 mfd: rtsx: Add su... |
1191 |
u16 reg_pm_ctrl3; |
67d16a468 drivers/mfd: Add ... |
1192 1193 |
int num_slots; struct rtsx_slot *slots; |
87d284443 mfd: rtsx: Do ret... |
1194 1195 |
u8 dma_error_count; |
5da4e04ae misc: rtsx: Add s... |
1196 1197 |
u8 ocp_stat; u8 ocp_stat2; |
849a9366c misc: rtsx: Add s... |
1198 |
u8 rtd3_en; |
67d16a468 drivers/mfd: Add ... |
1199 |
}; |
8275b77a1 mfd: rts5249: Add... |
1200 |
#define PID_524A 0x524A |
5da4e04ae misc: rtsx: Add s... |
1201 1202 |
#define PID_5249 0x5249 #define PID_5250 0x5250 |
8275b77a1 mfd: rts5249: Add... |
1203 |
#define PID_525A 0x525A |
5da4e04ae misc: rtsx: Add s... |
1204 |
#define PID_5260 0x5260 |
c0e5f4e73 misc: rtsx: Add s... |
1205 |
#define PID_5261 0x5261 |
849a9366c misc: rtsx: Add s... |
1206 |
#define PID_5228 0x5228 |
8275b77a1 mfd: rts5249: Add... |
1207 |
|
67d16a468 drivers/mfd: Add ... |
1208 1209 1210 |
#define CHK_PCI_PID(pcr, pid) ((pcr)->pci->device == (pid)) #define PCI_VID(pcr) ((pcr)->pci->vendor) #define PCI_PID(pcr) ((pcr)->pci->device) |
663c425f2 mfd: rtsx: Add su... |
1211 1212 1213 1214 |
#define is_version(pcr, pid, ver) \ (CHK_PCI_PID(pcr, pid) && (pcr)->ic_version == (ver)) #define pcr_dbg(pcr, fmt, arg...) \ dev_dbg(&(pcr)->pci->dev, fmt, ##arg) |
67d16a468 drivers/mfd: Add ... |
1215 |
|
84d72f9cc mfd: mmc: rtsx: C... |
1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 |
#define SDR104_PHASE(val) ((val) & 0xFF) #define SDR50_PHASE(val) (((val) >> 8) & 0xFF) #define DDR50_PHASE(val) (((val) >> 16) & 0xFF) #define SDR104_TX_PHASE(pcr) SDR104_PHASE((pcr)->tx_initial_phase) #define SDR50_TX_PHASE(pcr) SDR50_PHASE((pcr)->tx_initial_phase) #define DDR50_TX_PHASE(pcr) DDR50_PHASE((pcr)->tx_initial_phase) #define SDR104_RX_PHASE(pcr) SDR104_PHASE((pcr)->rx_initial_phase) #define SDR50_RX_PHASE(pcr) SDR50_PHASE((pcr)->rx_initial_phase) #define DDR50_RX_PHASE(pcr) DDR50_PHASE((pcr)->rx_initial_phase) #define SET_CLOCK_PHASE(sdr104, sdr50, ddr50) \ (((ddr50) << 16) | ((sdr50) << 8) | (sdr104)) |
67d16a468 drivers/mfd: Add ... |
1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 |
void rtsx_pci_start_run(struct rtsx_pcr *pcr); int rtsx_pci_write_register(struct rtsx_pcr *pcr, u16 addr, u8 mask, u8 data); int rtsx_pci_read_register(struct rtsx_pcr *pcr, u16 addr, u8 *data); int rtsx_pci_write_phy_register(struct rtsx_pcr *pcr, u8 addr, u16 val); int rtsx_pci_read_phy_register(struct rtsx_pcr *pcr, u8 addr, u16 *val); void rtsx_pci_stop_cmd(struct rtsx_pcr *pcr); void rtsx_pci_add_cmd(struct rtsx_pcr *pcr, u8 cmd_type, u16 reg_addr, u8 mask, u8 data); void rtsx_pci_send_cmd_no_wait(struct rtsx_pcr *pcr); int rtsx_pci_send_cmd(struct rtsx_pcr *pcr, int timeout); int rtsx_pci_transfer_data(struct rtsx_pcr *pcr, struct scatterlist *sglist, int num_sg, bool read, int timeout); |
8cd118308 mfd: rtsx: Add dm... |
1239 1240 1241 1242 1243 1244 |
int rtsx_pci_dma_map_sg(struct rtsx_pcr *pcr, struct scatterlist *sglist, int num_sg, bool read); void rtsx_pci_dma_unmap_sg(struct rtsx_pcr *pcr, struct scatterlist *sglist, int num_sg, bool read); int rtsx_pci_dma_transfer(struct rtsx_pcr *pcr, struct scatterlist *sglist, int count, bool read, int timeout); |
67d16a468 drivers/mfd: Add ... |
1245 1246 1247 1248 1249 1250 1251 1252 |
int rtsx_pci_read_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len); int rtsx_pci_write_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len); int rtsx_pci_card_pull_ctl_enable(struct rtsx_pcr *pcr, int card); int rtsx_pci_card_pull_ctl_disable(struct rtsx_pcr *pcr, int card); int rtsx_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock, u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk); int rtsx_pci_card_power_on(struct rtsx_pcr *pcr, int card); int rtsx_pci_card_power_off(struct rtsx_pcr *pcr, int card); |
c3481955f mfd: rtsx: Fix is... |
1253 |
int rtsx_pci_card_exclusive_check(struct rtsx_pcr *pcr, int card); |
d817ac4e1 mfd: rtsx: Add ou... |
1254 |
int rtsx_pci_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage); |
67d16a468 drivers/mfd: Add ... |
1255 1256 1257 1258 1259 1260 1261 |
unsigned int rtsx_pci_card_exist(struct rtsx_pcr *pcr); void rtsx_pci_complete_unfinished_transfer(struct rtsx_pcr *pcr); static inline u8 *rtsx_pci_get_cmd_data(struct rtsx_pcr *pcr) { return (u8 *)(pcr->host_cmds_ptr); } |
a3b63979f mfd: rtsx: Add fu... |
1262 1263 1264 1265 1266 1267 1268 |
static inline void rtsx_pci_write_be32(struct rtsx_pcr *pcr, u16 reg, u32 val) { rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg, 0xFF, val >> 24); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg + 1, 0xFF, val >> 16); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg + 2, 0xFF, val >> 8); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, reg + 3, 0xFF, val); } |
663c425f2 mfd: rtsx: Add su... |
1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 |
static inline int rtsx_pci_update_phy(struct rtsx_pcr *pcr, u8 addr, u16 mask, u16 append) { int err; u16 val; err = rtsx_pci_read_phy_register(pcr, addr, &val); if (err < 0) return err; return rtsx_pci_write_phy_register(pcr, addr, (val & mask) | append); } |
67d16a468 drivers/mfd: Add ... |
1281 |
#endif |