diff options
| -rw-r--r-- | drivers/bluetooth/Kconfig | 4 | ||||
| -rw-r--r-- | drivers/bluetooth/btmrvl_sdio.c | 28 |
2 files changed, 30 insertions, 2 deletions
diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig index fdfd61a2d523..11a6104a1e4f 100644 --- a/drivers/bluetooth/Kconfig +++ b/drivers/bluetooth/Kconfig | |||
| @@ -201,7 +201,7 @@ config BT_MRVL | |||
| 201 | The core driver to support Marvell Bluetooth devices. | 201 | The core driver to support Marvell Bluetooth devices. |
| 202 | 202 | ||
| 203 | This driver is required if you want to support | 203 | This driver is required if you want to support |
| 204 | Marvell Bluetooth devices, such as 8688/8787/8797. | 204 | Marvell Bluetooth devices, such as 8688/8787/8797/8897. |
| 205 | 205 | ||
| 206 | Say Y here to compile Marvell Bluetooth driver | 206 | Say Y here to compile Marvell Bluetooth driver |
| 207 | into the kernel or say M to compile it as module. | 207 | into the kernel or say M to compile it as module. |
| @@ -214,7 +214,7 @@ config BT_MRVL_SDIO | |||
| 214 | The driver for Marvell Bluetooth chipsets with SDIO interface. | 214 | The driver for Marvell Bluetooth chipsets with SDIO interface. |
| 215 | 215 | ||
| 216 | This driver is required if you want to use Marvell Bluetooth | 216 | This driver is required if you want to use Marvell Bluetooth |
| 217 | devices with SDIO interface. Currently SD8688/SD8787/SD8797 | 217 | devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8897 |
| 218 | chipsets are supported. | 218 | chipsets are supported. |
| 219 | 219 | ||
| 220 | Say Y here to compile support for Marvell BT-over-SDIO driver | 220 | Say Y here to compile support for Marvell BT-over-SDIO driver |
diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c index c63488c54f4a..13693b7a0d5c 100644 --- a/drivers/bluetooth/btmrvl_sdio.c +++ b/drivers/bluetooth/btmrvl_sdio.c | |||
| @@ -82,6 +82,23 @@ static const struct btmrvl_sdio_card_reg btmrvl_reg_87xx = { | |||
| 82 | .io_port_2 = 0x7a, | 82 | .io_port_2 = 0x7a, |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| 85 | static const struct btmrvl_sdio_card_reg btmrvl_reg_88xx = { | ||
| 86 | .cfg = 0x00, | ||
| 87 | .host_int_mask = 0x02, | ||
| 88 | .host_intstatus = 0x03, | ||
| 89 | .card_status = 0x50, | ||
| 90 | .sq_read_base_addr_a0 = 0x60, | ||
| 91 | .sq_read_base_addr_a1 = 0x61, | ||
| 92 | .card_revision = 0xbc, | ||
| 93 | .card_fw_status0 = 0xc0, | ||
| 94 | .card_fw_status1 = 0xc1, | ||
| 95 | .card_rx_len = 0xc2, | ||
| 96 | .card_rx_unit = 0xc3, | ||
| 97 | .io_port_0 = 0xd8, | ||
| 98 | .io_port_1 = 0xd9, | ||
| 99 | .io_port_2 = 0xda, | ||
| 100 | }; | ||
| 101 | |||
| 85 | static const struct btmrvl_sdio_device btmrvl_sdio_sd8688 = { | 102 | static const struct btmrvl_sdio_device btmrvl_sdio_sd8688 = { |
| 86 | .helper = "mrvl/sd8688_helper.bin", | 103 | .helper = "mrvl/sd8688_helper.bin", |
| 87 | .firmware = "mrvl/sd8688.bin", | 104 | .firmware = "mrvl/sd8688.bin", |
| @@ -103,6 +120,13 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8797 = { | |||
| 103 | .sd_blksz_fw_dl = 256, | 120 | .sd_blksz_fw_dl = 256, |
| 104 | }; | 121 | }; |
| 105 | 122 | ||
| 123 | static const struct btmrvl_sdio_device btmrvl_sdio_sd8897 = { | ||
| 124 | .helper = NULL, | ||
| 125 | .firmware = "mrvl/sd8897_uapsta.bin", | ||
| 126 | .reg = &btmrvl_reg_88xx, | ||
| 127 | .sd_blksz_fw_dl = 256, | ||
| 128 | }; | ||
| 129 | |||
| 106 | static const struct sdio_device_id btmrvl_sdio_ids[] = { | 130 | static const struct sdio_device_id btmrvl_sdio_ids[] = { |
| 107 | /* Marvell SD8688 Bluetooth device */ | 131 | /* Marvell SD8688 Bluetooth device */ |
| 108 | { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x9105), | 132 | { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x9105), |
| @@ -116,6 +140,9 @@ static const struct sdio_device_id btmrvl_sdio_ids[] = { | |||
| 116 | /* Marvell SD8797 Bluetooth device */ | 140 | /* Marvell SD8797 Bluetooth device */ |
| 117 | { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x912A), | 141 | { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x912A), |
| 118 | .driver_data = (unsigned long) &btmrvl_sdio_sd8797 }, | 142 | .driver_data = (unsigned long) &btmrvl_sdio_sd8797 }, |
| 143 | /* Marvell SD8897 Bluetooth device */ | ||
| 144 | { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, 0x912E), | ||
| 145 | .driver_data = (unsigned long) &btmrvl_sdio_sd8897 }, | ||
| 119 | 146 | ||
| 120 | { } /* Terminating entry */ | 147 | { } /* Terminating entry */ |
| 121 | }; | 148 | }; |
| @@ -1194,3 +1221,4 @@ MODULE_FIRMWARE("mrvl/sd8688_helper.bin"); | |||
| 1194 | MODULE_FIRMWARE("mrvl/sd8688.bin"); | 1221 | MODULE_FIRMWARE("mrvl/sd8688.bin"); |
| 1195 | MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin"); | 1222 | MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin"); |
| 1196 | MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin"); | 1223 | MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin"); |
| 1224 | MODULE_FIRMWARE("mrvl/sd8897_uapsta.bin"); | ||
