|
@@ -696,8 +696,8 @@ static int brcmf_sdbrcm_htclk(struct brcmf_sdio *bus, bool on, bool pendok)
|
|
|
clkreq =
|
|
|
bus->alp_only ? SBSDIO_ALP_AVAIL_REQ : SBSDIO_HT_AVAIL_REQ;
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR, clkreq, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ clkreq, &err);
|
|
|
if (err) {
|
|
|
brcmf_dbg(ERROR, "HT Avail request error: %d\n", err);
|
|
|
return -EBADE;
|
|
@@ -723,8 +723,8 @@ static int brcmf_sdbrcm_htclk(struct brcmf_sdio *bus, bool on, bool pendok)
|
|
|
}
|
|
|
|
|
|
devctl |= SBSDIO_DEVCTL_CA_INT_ONLY;
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_DEVICE_CTL, devctl, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL,
|
|
|
+ devctl, &err);
|
|
|
brcmf_dbg(INFO, "CLKCTL: set PENDING\n");
|
|
|
bus->clkstate = CLK_PENDING;
|
|
|
|
|
@@ -734,8 +734,8 @@ static int brcmf_sdbrcm_htclk(struct brcmf_sdio *bus, bool on, bool pendok)
|
|
|
devctl = brcmf_sdio_regrb(bus->sdiodev,
|
|
|
SBSDIO_DEVICE_CTL, &err);
|
|
|
devctl &= ~SBSDIO_DEVCTL_CA_INT_ONLY;
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_DEVICE_CTL, devctl, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL,
|
|
|
+ devctl, &err);
|
|
|
}
|
|
|
|
|
|
/* Otherwise, wait here (polling) for HT Avail */
|
|
@@ -780,13 +780,13 @@ static int brcmf_sdbrcm_htclk(struct brcmf_sdio *bus, bool on, bool pendok)
|
|
|
devctl = brcmf_sdio_regrb(bus->sdiodev,
|
|
|
SBSDIO_DEVICE_CTL, &err);
|
|
|
devctl &= ~SBSDIO_DEVCTL_CA_INT_ONLY;
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_DEVICE_CTL, devctl, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL,
|
|
|
+ devctl, &err);
|
|
|
}
|
|
|
|
|
|
bus->clkstate = CLK_SDONLY;
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR, clkreq, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ clkreq, &err);
|
|
|
brcmf_dbg(INFO, "CLKCTL: turned OFF\n");
|
|
|
if (err) {
|
|
|
brcmf_dbg(ERROR, "Failed access turning clock off: %d\n",
|
|
@@ -897,14 +897,12 @@ static int brcmf_sdbrcm_bussleep(struct brcmf_sdio *bus, bool sleep)
|
|
|
/* Turn off our contribution to the HT clock request */
|
|
|
brcmf_sdbrcm_clkctl(bus, CLK_SDONLY, false);
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
- SBSDIO_FORCE_HW_CLKREQ_OFF, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ SBSDIO_FORCE_HW_CLKREQ_OFF, NULL);
|
|
|
|
|
|
/* Isolate the bus */
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_DEVICE_CTL,
|
|
|
- SBSDIO_DEVCTL_PADS_ISO, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL,
|
|
|
+ SBSDIO_DEVCTL_PADS_ISO, NULL);
|
|
|
|
|
|
/* Change state */
|
|
|
bus->sleeping = true;
|
|
@@ -912,8 +910,8 @@ static int brcmf_sdbrcm_bussleep(struct brcmf_sdio *bus, bool sleep)
|
|
|
} else {
|
|
|
/* Waking up: bus power up is ok, set local state */
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ 0, NULL);
|
|
|
|
|
|
/* Make sure the controller has the bus up */
|
|
|
brcmf_sdbrcm_clkctl(bus, CLK_AVAIL, false);
|
|
@@ -1035,9 +1033,8 @@ static void brcmf_sdbrcm_rxfail(struct brcmf_sdio *bus, bool abort, bool rtx)
|
|
|
if (abort)
|
|
|
brcmf_sdcard_abort(bus->sdiodev, SDIO_FUNC_2);
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_FRAMECTRL,
|
|
|
- SFC_RF_TERM, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL,
|
|
|
+ SFC_RF_TERM, &err);
|
|
|
bus->f1regdata++;
|
|
|
|
|
|
/* Wait until the packet has been flushed (device/FIFO stable) */
|
|
@@ -2173,9 +2170,8 @@ static int brcmf_sdbrcm_txpkt(struct brcmf_sdio *bus, struct sk_buff *pkt,
|
|
|
bus->tx_sderrs++;
|
|
|
|
|
|
brcmf_sdcard_abort(bus->sdiodev, SDIO_FUNC_2);
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_FRAMECTRL, SFC_WF_TERM,
|
|
|
- NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL,
|
|
|
+ SFC_WF_TERM, NULL);
|
|
|
bus->f1regdata++;
|
|
|
|
|
|
for (i = 0; i < 3; i++) {
|
|
@@ -2305,17 +2301,16 @@ static void brcmf_sdbrcm_bus_stop(struct device *dev)
|
|
|
saveclk = brcmf_sdio_regrb(bus->sdiodev,
|
|
|
SBSDIO_FUNC1_CHIPCLKCSR, &err);
|
|
|
if (!err) {
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
- (saveclk | SBSDIO_FORCE_HT), &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ (saveclk | SBSDIO_FORCE_HT), &err);
|
|
|
}
|
|
|
if (err)
|
|
|
brcmf_dbg(ERROR, "Failed to force clock for F2: err %d\n", err);
|
|
|
|
|
|
/* Turn off the bus (F2), free any pending packets */
|
|
|
brcmf_dbg(INTR, "disable SDIO interrupts\n");
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_0, SDIO_CCCR_IOEx,
|
|
|
- SDIO_FUNC_ENABLE_1, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SDIO_CCCR_IOEx, SDIO_FUNC_ENABLE_1,
|
|
|
+ NULL);
|
|
|
|
|
|
/* Clear any pending interrupts now that F2 is disabled */
|
|
|
w_sdreg32(bus, local_hostintmask,
|
|
@@ -2414,8 +2409,8 @@ static bool brcmf_sdbrcm_dpc(struct brcmf_sdio *bus)
|
|
|
bus->sdiodev->bus_if->state = BRCMF_BUS_DOWN;
|
|
|
}
|
|
|
devctl &= ~SBSDIO_DEVCTL_CA_INT_ONLY;
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_DEVICE_CTL, devctl, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_DEVICE_CTL,
|
|
|
+ devctl, &err);
|
|
|
if (err) {
|
|
|
brcmf_dbg(ERROR, "error writing DEVCTL: %d\n",
|
|
|
err);
|
|
@@ -2536,9 +2531,8 @@ clkwait:
|
|
|
|
|
|
brcmf_sdcard_abort(bus->sdiodev, SDIO_FUNC_2);
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_FRAMECTRL, SFC_WF_TERM,
|
|
|
- NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL,
|
|
|
+ SFC_WF_TERM, NULL);
|
|
|
bus->f1regdata++;
|
|
|
|
|
|
for (i = 0; i < 3; i++) {
|
|
@@ -2874,9 +2868,8 @@ static int brcmf_tx_frame(struct brcmf_sdio *bus, u8 *frame, u16 len)
|
|
|
|
|
|
brcmf_sdcard_abort(bus->sdiodev, SDIO_FUNC_2);
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_FRAMECTRL,
|
|
|
- SFC_WF_TERM, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_FRAMECTRL,
|
|
|
+ SFC_WF_TERM, NULL);
|
|
|
bus->f1regdata++;
|
|
|
|
|
|
for (i = 0; i < 3; i++) {
|
|
@@ -3461,9 +3454,8 @@ static int brcmf_sdbrcm_bus_init(struct device *dev)
|
|
|
saveclk = brcmf_sdio_regrb(bus->sdiodev,
|
|
|
SBSDIO_FUNC1_CHIPCLKCSR, &err);
|
|
|
if (!err) {
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
- (saveclk | SBSDIO_FORCE_HT), &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ (saveclk | SBSDIO_FORCE_HT), &err);
|
|
|
}
|
|
|
if (err) {
|
|
|
brcmf_dbg(ERROR, "Failed to force clock for F2: err %d\n", err);
|
|
@@ -3475,8 +3467,7 @@ static int brcmf_sdbrcm_bus_init(struct device *dev)
|
|
|
offsetof(struct sdpcmd_regs, tosbmailboxdata), &retries);
|
|
|
enable = (SDIO_FUNC_ENABLE_1 | SDIO_FUNC_ENABLE_2);
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_0, SDIO_CCCR_IOEx,
|
|
|
- enable, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SDIO_CCCR_IOEx, enable, NULL);
|
|
|
|
|
|
timeout = jiffies + msecs_to_jiffies(BRCMF_WAIT_F2RDY);
|
|
|
ready = 0;
|
|
@@ -3499,19 +3490,16 @@ static int brcmf_sdbrcm_bus_init(struct device *dev)
|
|
|
w_sdreg32(bus, bus->hostintmask,
|
|
|
offsetof(struct sdpcmd_regs, hostintmask), &retries);
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_WATERMARK, 8, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_WATERMARK, 8, &err);
|
|
|
} else {
|
|
|
/* Disable F2 again */
|
|
|
enable = SDIO_FUNC_ENABLE_1;
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_0,
|
|
|
- SDIO_CCCR_IOEx, enable, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SDIO_CCCR_IOEx, enable, NULL);
|
|
|
ret = -ENODEV;
|
|
|
}
|
|
|
|
|
|
/* Restore previous clock setting */
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR, saveclk, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, saveclk, &err);
|
|
|
|
|
|
if (ret == 0) {
|
|
|
ret = brcmf_sdio_intr_register(bus->sdiodev);
|
|
@@ -3729,9 +3717,8 @@ brcmf_sdbrcm_probe_attach(struct brcmf_sdio *bus, u32 regsva)
|
|
|
* programs PLL control regs
|
|
|
*/
|
|
|
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
- BRCMF_INIT_CLKCTL1, &err);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR,
|
|
|
+ BRCMF_INIT_CLKCTL1, &err);
|
|
|
if (!err)
|
|
|
clkctl = brcmf_sdio_regrb(bus->sdiodev,
|
|
|
SBSDIO_FUNC1_CHIPCLKCSR, &err);
|
|
@@ -3792,16 +3779,15 @@ static bool brcmf_sdbrcm_probe_init(struct brcmf_sdio *bus)
|
|
|
brcmf_dbg(TRACE, "Enter\n");
|
|
|
|
|
|
/* Disable F2 to clear any intermediate frame state on the dongle */
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_0, SDIO_CCCR_IOEx,
|
|
|
- SDIO_FUNC_ENABLE_1, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SDIO_CCCR_IOEx,
|
|
|
+ SDIO_FUNC_ENABLE_1, NULL);
|
|
|
|
|
|
bus->sdiodev->bus_if->state = BRCMF_BUS_DOWN;
|
|
|
bus->sleeping = false;
|
|
|
bus->rxflow = false;
|
|
|
|
|
|
/* Done with backplane-dependent accesses, can drop clock... */
|
|
|
- brcmf_sdcard_cfg_write(bus->sdiodev, SDIO_FUNC_1,
|
|
|
- SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
|
|
|
+ brcmf_sdio_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
|
|
|
|
|
|
/* ...and initialize clock/power states */
|
|
|
bus->clkstate = CLK_SDONLY;
|