mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 00:48:50 +00:00
bba047f158
The Marvell SD8978 (aka NXP IW416) uses identical registers as SD8987, so reuse the existing mwifiex_reg_sd8987 definition. Note that mwifiex_reg_sd8977 and mwifiex_reg_sd8997 are likewise identical, save for the fw_dump_ctrl register: They define it as 0xf0 whereas mwifiex_reg_sd8987 defines it as 0xf9. I've verified that 0xf9 is the correct value on SD8978. NXP's out-of-tree driver uses 0xf9 for all of them, so there's a chance that 0xf0 is not correct in the mwifiex_reg_sd8977 and mwifiex_reg_sd8997 definitions. I cannot test that for lack of hardware, hence am leaving it as is. NXP has only released a firmware which runs Bluetooth over UART. Perhaps Bluetooth over SDIO is unsupported by this chipset. Consequently, only an "sdiouart" firmware image is referenced, not an alternative "sdsd" image. Signed-off-by: Lukas Wunner <lukas@wunner.de> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/536b4f17a72ca460ad1b07045757043fb0778988.1674827105.git.lukas@wunner.de
70 lines
2.5 KiB
Text
70 lines
2.5 KiB
Text
Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices
|
|
------
|
|
|
|
This node provides properties for controlling the Marvell SDIO/PCIE wireless device.
|
|
The node is expected to be specified as a child node to the SDIO/PCIE controller that
|
|
connects the device to the system.
|
|
|
|
Required properties:
|
|
|
|
- compatible : should be one of the following:
|
|
* "marvell,sd8787"
|
|
* "marvell,sd8897"
|
|
* "marvell,sd8978"
|
|
* "marvell,sd8997"
|
|
* "nxp,iw416"
|
|
* "pci11ab,2b42"
|
|
* "pci1b4b,2b42"
|
|
|
|
Optional properties:
|
|
|
|
- marvell,caldata* : A series of properties with marvell,caldata prefix,
|
|
represent calibration data downloaded to the device during
|
|
initialization. This is an array of unsigned 8-bit values.
|
|
the properties should follow below property name and
|
|
corresponding array length:
|
|
"marvell,caldata-txpwrlimit-2g" (length = 566).
|
|
"marvell,caldata-txpwrlimit-5g-sub0" (length = 502).
|
|
"marvell,caldata-txpwrlimit-5g-sub1" (length = 688).
|
|
"marvell,caldata-txpwrlimit-5g-sub2" (length = 750).
|
|
"marvell,caldata-txpwrlimit-5g-sub3" (length = 502).
|
|
- marvell,wakeup-pin : a wakeup pin number of wifi chip which will be configured
|
|
to firmware. Firmware will wakeup the host using this pin
|
|
during suspend/resume.
|
|
- interrupts : interrupt pin number to the cpu. driver will request an irq based on
|
|
this interrupt number. during system suspend, the irq will be enabled
|
|
so that the wifi chip can wakeup host platform under certain condition.
|
|
during system resume, the irq will be disabled to make sure
|
|
unnecessary interrupt is not received.
|
|
- vmmc-supply: a phandle of a regulator, supplying VCC to the card
|
|
- mmc-pwrseq: phandle to the MMC power sequence node. See "mmc-pwrseq-*"
|
|
for documentation of MMC power sequence bindings.
|
|
|
|
Example:
|
|
|
|
Tx power limit calibration data is configured in below example.
|
|
The calibration data is an array of unsigned values, the length
|
|
can vary between hw versions.
|
|
IRQ pin 38 is used as system wakeup source interrupt. wakeup pin 3 is configured
|
|
so that firmware can wakeup host using this device side pin.
|
|
|
|
&mmc3 {
|
|
vmmc-supply = <&wlan_en_reg>;
|
|
mmc-pwrseq = <&wifi_pwrseq>;
|
|
bus-width = <4>;
|
|
cap-power-off-card;
|
|
keep-power-in-suspend;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
mwifiex: wifi@1 {
|
|
compatible = "marvell,sd8897";
|
|
reg = <1>;
|
|
interrupt-parent = <&pio>;
|
|
interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
marvell,caldata_00_txpwrlimit_2g_cfg_set = /bits/ 8 <
|
|
0x01 0x00 0x06 0x00 0x08 0x02 0x89 0x01>;
|
|
marvell,wakeup-pin = <3>;
|
|
};
|
|
};
|