| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: if_bwfm_sdio.c,v 1.19 2020/06/23 10:09:33 martin Exp $ */ | | 1 | /* $NetBSD: if_bwfm_sdio.c,v 1.20 2020/07/20 06:44:55 mrg Exp $ */ |
2 | /* $OpenBSD: if_bwfm_sdio.c,v 1.1 2017/10/11 17:19:50 patrick Exp $ */ | | 2 | /* $OpenBSD: if_bwfm_sdio.c,v 1.1 2017/10/11 17:19:50 patrick Exp $ */ |
3 | /* | | 3 | /* |
4 | * Copyright (c) 2010-2016 Broadcom Corporation | | 4 | * Copyright (c) 2010-2016 Broadcom Corporation |
5 | * Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se> | | 5 | * Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se> |
6 | * | | 6 | * |
7 | * Permission to use, copy, modify, and/or distribute this software for any | | 7 | * Permission to use, copy, modify, and/or distribute this software for any |
8 | * purpose with or without fee is hereby granted, provided that the above | | 8 | * purpose with or without fee is hereby granted, provided that the above |
9 | * copyright notice and this permission notice appear in all copies. | | 9 | * copyright notice and this permission notice appear in all copies. |
10 | * | | 10 | * |
11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | | 11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | | 12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | | 13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | | 14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| @@ -495,29 +495,28 @@ bwfm_sdio_attachhook(device_t self) | | | @@ -495,29 +495,28 @@ bwfm_sdio_attachhook(device_t self) |
495 | } | | 495 | } |
496 | | | 496 | |
497 | clk = bwfm_sdio_read_1(sc, BWFM_SDIO_FUNC1_CHIPCLKCSR); | | 497 | clk = bwfm_sdio_read_1(sc, BWFM_SDIO_FUNC1_CHIPCLKCSR); |
498 | bwfm_sdio_write_1(sc, BWFM_SDIO_FUNC1_CHIPCLKCSR, | | 498 | bwfm_sdio_write_1(sc, BWFM_SDIO_FUNC1_CHIPCLKCSR, |
499 | clk | BWFM_SDIO_FUNC1_CHIPCLKCSR_FORCE_HT); | | 499 | clk | BWFM_SDIO_FUNC1_CHIPCLKCSR_FORCE_HT); |
500 | | | 500 | |
501 | bwfm_sdio_dev_write(sc, SDPCMD_TOSBMAILBOXDATA, | | 501 | bwfm_sdio_dev_write(sc, SDPCMD_TOSBMAILBOXDATA, |
502 | SDPCM_PROT_VERSION << SDPCM_PROT_VERSION_SHIFT); | | 502 | SDPCM_PROT_VERSION << SDPCM_PROT_VERSION_SHIFT); |
503 | if (sdmmc_io_function_enable(sc->sc_sf[2])) { | | 503 | if (sdmmc_io_function_enable(sc->sc_sf[2])) { |
504 | aprint_error_dev(bwfm->sc_dev, "cannot enable function 2\n"); | | 504 | aprint_error_dev(bwfm->sc_dev, "cannot enable function 2\n"); |
505 | goto err; | | 505 | goto err; |
506 | } | | 506 | } |
507 | | | 507 | |
508 | // bwfm_sdio_dev_write(sc, SDPCMD_HOSTINTMASK, | | 508 | bwfm_sdio_dev_write(sc, SDPCMD_HOSTINTMASK, |
509 | // SDPCMD_INTSTATUS_HMB_SW_MASK | SDPCMD_INTSTATUS_CHIPACTIVE); | | 509 | SDPCMD_INTSTATUS_HMB_SW_MASK | SDPCMD_INTSTATUS_CHIPACTIVE); |
510 | bwfm_sdio_dev_write(sc, SDPCMD_HOSTINTMASK, 0xffffffff); | | | |
511 | bwfm_sdio_write_1(sc, BWFM_SDIO_WATERMARK, 8); | | 510 | bwfm_sdio_write_1(sc, BWFM_SDIO_WATERMARK, 8); |
512 | | | 511 | |
513 | if (bwfm_chip_sr_capable(bwfm)) { | | 512 | if (bwfm_chip_sr_capable(bwfm)) { |
514 | reg = bwfm_sdio_read_1(sc, BWFM_SDIO_FUNC1_WAKEUPCTRL); | | 513 | reg = bwfm_sdio_read_1(sc, BWFM_SDIO_FUNC1_WAKEUPCTRL); |
515 | reg |= BWFM_SDIO_FUNC1_WAKEUPCTRL_HTWAIT; | | 514 | reg |= BWFM_SDIO_FUNC1_WAKEUPCTRL_HTWAIT; |
516 | bwfm_sdio_write_1(sc, BWFM_SDIO_FUNC1_WAKEUPCTRL, reg); | | 515 | bwfm_sdio_write_1(sc, BWFM_SDIO_FUNC1_WAKEUPCTRL, reg); |
517 | bwfm_sdio_write_1(sc, BWFM_SDIO_CCCR_CARDCAP, | | 516 | bwfm_sdio_write_1(sc, BWFM_SDIO_CCCR_CARDCAP, |
518 | BWFM_SDIO_CCCR_CARDCAP_CMD14_SUPPORT | | | 517 | BWFM_SDIO_CCCR_CARDCAP_CMD14_SUPPORT | |
519 | BWFM_SDIO_CCCR_CARDCAP_CMD14_EXT); | | 518 | BWFM_SDIO_CCCR_CARDCAP_CMD14_EXT); |
520 | bwfm_sdio_write_1(sc, BWFM_SDIO_FUNC1_CHIPCLKCSR, | | 519 | bwfm_sdio_write_1(sc, BWFM_SDIO_FUNC1_CHIPCLKCSR, |
521 | BWFM_SDIO_FUNC1_CHIPCLKCSR_FORCE_HT); | | 520 | BWFM_SDIO_FUNC1_CHIPCLKCSR_FORCE_HT); |
522 | sc->sc_sr_enabled = 1; | | 521 | sc->sc_sr_enabled = 1; |
523 | } else { | | 522 | } else { |