Lines Matching refs:reg
41 #define REG_OFFSET_IN_BITS(reg) ((reg) << 3 & 0x18)
43 static inline u32 sdhci_iproc_readl(struct sdhci_host *host, int reg)
45 u32 val = readl(host->ioaddr + reg);
48 mmc_hostname(host->mmc), reg, val);
52 static u16 sdhci_iproc_readw(struct sdhci_host *host, int reg)
59 if ((reg == SDHCI_TRANSFER_MODE) && iproc_host->is_cmd_shadowed) {
62 } else if ((reg == SDHCI_BLOCK_SIZE || reg == SDHCI_BLOCK_COUNT) &&
67 val = sdhci_iproc_readl(host, (reg & ~3));
69 word = val >> REG_OFFSET_IN_BITS(reg) & 0xffff;
73 static u8 sdhci_iproc_readb(struct sdhci_host *host, int reg)
75 u32 val = sdhci_iproc_readl(host, (reg & ~3));
76 u8 byte = val >> REG_OFFSET_IN_BITS(reg) & 0xff;
80 static inline void sdhci_iproc_writel(struct sdhci_host *host, u32 val, int reg)
83 mmc_hostname(host->mmc), reg, val);
85 writel(val, host->ioaddr + reg);
115 static void sdhci_iproc_writew(struct sdhci_host *host, u16 val, int reg)
119 u32 word_shift = REG_OFFSET_IN_BITS(reg);
123 if (reg == SDHCI_COMMAND) {
132 } else if ((reg == SDHCI_BLOCK_SIZE || reg == SDHCI_BLOCK_COUNT) &&
134 /* Block size and count are stored in shadow reg */
137 /* Read reg, all other registers are not shadowed */
138 oldval = sdhci_iproc_readl(host, (reg & ~3));
142 if (reg == SDHCI_TRANSFER_MODE) {
146 } else if (reg == SDHCI_BLOCK_SIZE || reg == SDHCI_BLOCK_COUNT) {
152 sdhci_iproc_writel(host, newval, reg & ~3);
156 static void sdhci_iproc_writeb(struct sdhci_host *host, u8 val, int reg)
158 u32 oldval = sdhci_iproc_readl(host, (reg & ~3));
159 u32 byte_shift = REG_OFFSET_IN_BITS(reg);
163 sdhci_iproc_writel(host, newval, reg & ~3);