sdio.c (36dd7a4c6226133b0b7aa92b8e604e688d958d0c) sdio.c (bba047f15851c8b053221f1b276eb7682d59f755)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * NXP Wireless LAN device driver: SDIO specific handling
4 *
5 * Copyright 2011-2020 NXP
6 */
7
8#include <linux/firmware.h>

--- 249 unchanged lines hidden (view full) ---

258 .func1_dump_reg_end = 0x17,
259 .func1_scratch_reg = 0x90,
260 .func1_spec_reg_num = 13,
261 .func1_spec_reg_table = {0x08, 0x58, 0x5C, 0x5D, 0x60,
262 0x61, 0x62, 0x64, 0x65, 0x66,
263 0x68, 0x69, 0x6a},
264};
265
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * NXP Wireless LAN device driver: SDIO specific handling
4 *
5 * Copyright 2011-2020 NXP
6 */
7
8#include <linux/firmware.h>

--- 249 unchanged lines hidden (view full) ---

258 .func1_dump_reg_end = 0x17,
259 .func1_scratch_reg = 0x90,
260 .func1_spec_reg_num = 13,
261 .func1_spec_reg_table = {0x08, 0x58, 0x5C, 0x5D, 0x60,
262 0x61, 0x62, 0x64, 0x65, 0x66,
263 0x68, 0x69, 0x6a},
264};
265
266static const struct mwifiex_sdio_card_reg mwifiex_reg_sd8987 = {
266static const struct mwifiex_sdio_card_reg mwifiex_reg_sd89xx = {
267 .start_rd_port = 0,
268 .start_wr_port = 0,
269 .base_0_reg = 0xF8,
270 .base_1_reg = 0xF9,
271 .poll_reg = 0x5C,
272 .host_int_enable = UP_LD_HOST_INT_MASK | DN_LD_HOST_INT_MASK |
273 CMD_PORT_UPLD_INT_MASK | CMD_PORT_DNLD_INT_MASK,
274 .host_int_rsr_reg = 0x4,

--- 114 unchanged lines hidden (view full) ---

389 .supports_sdio_new_mode = true,
390 .has_control_mask = false,
391 .can_dump_fw = true,
392 .fw_dump_enh = true,
393 .can_auto_tdls = false,
394 .can_ext_scan = true,
395};
396
267 .start_rd_port = 0,
268 .start_wr_port = 0,
269 .base_0_reg = 0xF8,
270 .base_1_reg = 0xF9,
271 .poll_reg = 0x5C,
272 .host_int_enable = UP_LD_HOST_INT_MASK | DN_LD_HOST_INT_MASK |
273 CMD_PORT_UPLD_INT_MASK | CMD_PORT_DNLD_INT_MASK,
274 .host_int_rsr_reg = 0x4,

--- 114 unchanged lines hidden (view full) ---

389 .supports_sdio_new_mode = true,
390 .has_control_mask = false,
391 .can_dump_fw = true,
392 .fw_dump_enh = true,
393 .can_auto_tdls = false,
394 .can_ext_scan = true,
395};
396
397static const struct mwifiex_sdio_device mwifiex_sdio_sd8978 = {
398 .firmware_sdiouart = SD8978_SDIOUART_FW_NAME,
399 .reg = &mwifiex_reg_sd89xx,
400 .max_ports = 32,
401 .mp_agg_pkt_limit = 16,
402 .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K,
403 .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
404 .mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
405 .supports_sdio_new_mode = true,
406 .has_control_mask = false,
407 .can_dump_fw = true,
408 .fw_dump_enh = true,
409 .can_auto_tdls = false,
410 .can_ext_scan = true,
411};
412
397static const struct mwifiex_sdio_device mwifiex_sdio_sd8997 = {
398 .firmware = SD8997_DEFAULT_FW_NAME,
399 .firmware_sdiouart = SD8997_SDIOUART_FW_NAME,
400 .reg = &mwifiex_reg_sd8997,
401 .max_ports = 32,
402 .mp_agg_pkt_limit = 16,
403 .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K,
404 .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,

--- 18 unchanged lines hidden (view full) ---

423 .has_control_mask = false,
424 .can_dump_fw = false,
425 .can_auto_tdls = true,
426 .can_ext_scan = true,
427};
428
429static const struct mwifiex_sdio_device mwifiex_sdio_sd8987 = {
430 .firmware = SD8987_DEFAULT_FW_NAME,
413static const struct mwifiex_sdio_device mwifiex_sdio_sd8997 = {
414 .firmware = SD8997_DEFAULT_FW_NAME,
415 .firmware_sdiouart = SD8997_SDIOUART_FW_NAME,
416 .reg = &mwifiex_reg_sd8997,
417 .max_ports = 32,
418 .mp_agg_pkt_limit = 16,
419 .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K,
420 .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,

--- 18 unchanged lines hidden (view full) ---

439 .has_control_mask = false,
440 .can_dump_fw = false,
441 .can_auto_tdls = true,
442 .can_ext_scan = true,
443};
444
445static const struct mwifiex_sdio_device mwifiex_sdio_sd8987 = {
446 .firmware = SD8987_DEFAULT_FW_NAME,
431 .reg = &mwifiex_reg_sd8987,
447 .reg = &mwifiex_reg_sd89xx,
432 .max_ports = 32,
433 .mp_agg_pkt_limit = 16,
434 .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K,
435 .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
436 .mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
437 .supports_sdio_new_mode = true,
438 .has_control_mask = false,
439 .can_dump_fw = true,

--- 37 unchanged lines hidden (view full) ---

477 {"EXT12", NULL, 0, 0xFC},
478 {"EXT13", NULL, 0, 0xFD},
479 {"EXTLAST", NULL, 0, 0xFE},
480};
481
482static const struct of_device_id mwifiex_sdio_of_match_table[] = {
483 { .compatible = "marvell,sd8787" },
484 { .compatible = "marvell,sd8897" },
448 .max_ports = 32,
449 .mp_agg_pkt_limit = 16,
450 .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K,
451 .mp_tx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
452 .mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_MAX,
453 .supports_sdio_new_mode = true,
454 .has_control_mask = false,
455 .can_dump_fw = true,

--- 37 unchanged lines hidden (view full) ---

493 {"EXT12", NULL, 0, 0xFC},
494 {"EXT13", NULL, 0, 0xFD},
495 {"EXTLAST", NULL, 0, 0xFE},
496};
497
498static const struct of_device_id mwifiex_sdio_of_match_table[] = {
499 { .compatible = "marvell,sd8787" },
500 { .compatible = "marvell,sd8897" },
501 { .compatible = "marvell,sd8978" },
485 { .compatible = "marvell,sd8997" },
502 { .compatible = "marvell,sd8997" },
503 { .compatible = "nxp,iw416" },
486 { }
487};
488
489/* This function parse device tree node using mmc subnode devicetree API.
490 * The device node is saved in card->plt_of_node.
491 * if the device tree node exist and include interrupts attributes, this
492 * function will also request platform specific wakeup interrupt.
493 */

--- 421 unchanged lines hidden (view full) ---

915 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8897_WLAN),
916 .driver_data = (unsigned long) &mwifiex_sdio_sd8897},
917 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8887_WLAN),
918 .driver_data = (unsigned long)&mwifiex_sdio_sd8887},
919 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8801_WLAN),
920 .driver_data = (unsigned long)&mwifiex_sdio_sd8801},
921 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8977_WLAN),
922 .driver_data = (unsigned long)&mwifiex_sdio_sd8977},
504 { }
505};
506
507/* This function parse device tree node using mmc subnode devicetree API.
508 * The device node is saved in card->plt_of_node.
509 * if the device tree node exist and include interrupts attributes, this
510 * function will also request platform specific wakeup interrupt.
511 */

--- 421 unchanged lines hidden (view full) ---

933 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8897_WLAN),
934 .driver_data = (unsigned long) &mwifiex_sdio_sd8897},
935 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8887_WLAN),
936 .driver_data = (unsigned long)&mwifiex_sdio_sd8887},
937 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8801_WLAN),
938 .driver_data = (unsigned long)&mwifiex_sdio_sd8801},
939 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8977_WLAN),
940 .driver_data = (unsigned long)&mwifiex_sdio_sd8977},
941 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8978_WLAN),
942 .driver_data = (unsigned long)&mwifiex_sdio_sd8978},
923 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8987_WLAN),
924 .driver_data = (unsigned long)&mwifiex_sdio_sd8987},
925 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8997_WLAN),
926 .driver_data = (unsigned long)&mwifiex_sdio_sd8997},
927 {},
928};
929
930MODULE_DEVICE_TABLE(sdio, mwifiex_ids);

--- 2228 unchanged lines hidden (view full) ---

3159MODULE_VERSION(SDIO_VERSION);
3160MODULE_LICENSE("GPL v2");
3161MODULE_FIRMWARE(SD8786_DEFAULT_FW_NAME);
3162MODULE_FIRMWARE(SD8787_DEFAULT_FW_NAME);
3163MODULE_FIRMWARE(SD8797_DEFAULT_FW_NAME);
3164MODULE_FIRMWARE(SD8897_DEFAULT_FW_NAME);
3165MODULE_FIRMWARE(SD8887_DEFAULT_FW_NAME);
3166MODULE_FIRMWARE(SD8977_DEFAULT_FW_NAME);
943 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8987_WLAN),
944 .driver_data = (unsigned long)&mwifiex_sdio_sd8987},
945 {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_8997_WLAN),
946 .driver_data = (unsigned long)&mwifiex_sdio_sd8997},
947 {},
948};
949
950MODULE_DEVICE_TABLE(sdio, mwifiex_ids);

--- 2228 unchanged lines hidden (view full) ---

3179MODULE_VERSION(SDIO_VERSION);
3180MODULE_LICENSE("GPL v2");
3181MODULE_FIRMWARE(SD8786_DEFAULT_FW_NAME);
3182MODULE_FIRMWARE(SD8787_DEFAULT_FW_NAME);
3183MODULE_FIRMWARE(SD8797_DEFAULT_FW_NAME);
3184MODULE_FIRMWARE(SD8897_DEFAULT_FW_NAME);
3185MODULE_FIRMWARE(SD8887_DEFAULT_FW_NAME);
3186MODULE_FIRMWARE(SD8977_DEFAULT_FW_NAME);
3187MODULE_FIRMWARE(SD8978_SDIOUART_FW_NAME);
3167MODULE_FIRMWARE(SD8987_DEFAULT_FW_NAME);
3168MODULE_FIRMWARE(SD8997_DEFAULT_FW_NAME);
3169MODULE_FIRMWARE(SD8997_SDIOUART_FW_NAME);
3188MODULE_FIRMWARE(SD8987_DEFAULT_FW_NAME);
3189MODULE_FIRMWARE(SD8997_DEFAULT_FW_NAME);
3190MODULE_FIRMWARE(SD8997_SDIOUART_FW_NAME);