mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
a47aaa69de
There two things done in this patch, 1) Existing device tree entry 'qcom,ath10k-calibration-data' carries not only calibration data, it carries board specific data too. So, make appropriate update in doc. 2) ipq4019 wifi needs new devie tree entry to carry calibration data alone (called pre cal data, it doesn't include any other info). Using 'qcom,ath10k-calibration-data' for ipq4019 would alter the purpose of it. Hence, add new device tree entry called 'qcom,ath10k-pre-calibration-data' to carry only pre calibration data. Signed-off-by: Raja Mani <rmani@qti.qualcomm.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
119 lines
3.7 KiB
Plaintext
119 lines
3.7 KiB
Plaintext
* Qualcomm Atheros ath10k wireless devices
|
|
|
|
Required properties:
|
|
- compatible: Should be one of the following:
|
|
* "qcom,ath10k"
|
|
* "qcom,ipq4019-wifi"
|
|
|
|
PCI based devices uses compatible string "qcom,ath10k" and takes calibration
|
|
data along with board specific data via "qcom,ath10k-calibration-data".
|
|
Rest of the properties are not applicable for PCI based devices.
|
|
|
|
AHB based devices (i.e. ipq4019) uses compatible string "qcom,ipq4019-wifi"
|
|
and also uses most of the properties defined in this doc (except
|
|
"qcom,ath10k-calibration-data"). It uses "qcom,ath10k-pre-calibration-data"
|
|
to carry pre calibration data.
|
|
|
|
In general, entry "qcom,ath10k-pre-calibration-data" and
|
|
"qcom,ath10k-calibration-data" conflict with each other and only one
|
|
can be provided per device.
|
|
|
|
Optional properties:
|
|
- reg: Address and length of the register set for the device.
|
|
- resets: Must contain an entry for each entry in reset-names.
|
|
See ../reset/reseti.txt for details.
|
|
- reset-names: Must include the list of following reset names,
|
|
"wifi_cpu_init"
|
|
"wifi_radio_srif"
|
|
"wifi_radio_warm"
|
|
"wifi_radio_cold"
|
|
"wifi_core_warm"
|
|
"wifi_core_cold"
|
|
- clocks: List of clock specifiers, must contain an entry for each required
|
|
entry in clock-names.
|
|
- clock-names: Should contain the clock names "wifi_wcss_cmd", "wifi_wcss_ref",
|
|
"wifi_wcss_rtc".
|
|
- interrupts: List of interrupt lines. Must contain an entry
|
|
for each entry in the interrupt-names property.
|
|
- interrupt-names: Must include the entries for MSI interrupt
|
|
names ("msi0" to "msi15") and legacy interrupt
|
|
name ("legacy"),
|
|
- qcom,msi_addr: MSI interrupt address.
|
|
- qcom,msi_base: Base value to add before writing MSI data into
|
|
MSI address register.
|
|
- qcom,ath10k-calibration-data : calibration data + board specific data
|
|
as an array, the length can vary between
|
|
hw versions.
|
|
- qcom,ath10k-pre-calibration-data : pre calibration data as an array,
|
|
the length can vary between hw versions.
|
|
|
|
Example (to supply the calibration data alone):
|
|
|
|
In this example, the node is defined as child node of the PCI controller.
|
|
|
|
pci {
|
|
pcie@0 {
|
|
reg = <0 0 0 0 0>;
|
|
#interrupt-cells = <1>;
|
|
#size-cells = <2>;
|
|
#address-cells = <3>;
|
|
device_type = "pci";
|
|
|
|
ath10k@0,0 {
|
|
reg = <0 0 0 0 0>;
|
|
device_type = "pci";
|
|
qcom,ath10k-calibration-data = [ 01 02 03 ... ];
|
|
};
|
|
};
|
|
};
|
|
|
|
Example (to supply ipq4019 SoC wifi block details):
|
|
|
|
wifi0: wifi@a000000 {
|
|
compatible = "qcom,ipq4019-wifi";
|
|
reg = <0xa000000 0x200000>;
|
|
resets = <&gcc WIFI0_CPU_INIT_RESET>,
|
|
<&gcc WIFI0_RADIO_SRIF_RESET>,
|
|
<&gcc WIFI0_RADIO_WARM_RESET>,
|
|
<&gcc WIFI0_RADIO_COLD_RESET>,
|
|
<&gcc WIFI0_CORE_WARM_RESET>,
|
|
<&gcc WIFI0_CORE_COLD_RESET>;
|
|
reset-names = "wifi_cpu_init",
|
|
"wifi_radio_srif",
|
|
"wifi_radio_warm",
|
|
"wifi_radio_cold",
|
|
"wifi_core_warm",
|
|
"wifi_core_cold";
|
|
clocks = <&gcc GCC_WCSS2G_CLK>,
|
|
<&gcc GCC_WCSS2G_REF_CLK>,
|
|
<&gcc GCC_WCSS2G_RTC_CLK>;
|
|
clock-names = "wifi_wcss_cmd",
|
|
"wifi_wcss_ref",
|
|
"wifi_wcss_rtc";
|
|
interrupts = <0 0x20 0x1>,
|
|
<0 0x21 0x1>,
|
|
<0 0x22 0x1>,
|
|
<0 0x23 0x1>,
|
|
<0 0x24 0x1>,
|
|
<0 0x25 0x1>,
|
|
<0 0x26 0x1>,
|
|
<0 0x27 0x1>,
|
|
<0 0x28 0x1>,
|
|
<0 0x29 0x1>,
|
|
<0 0x2a 0x1>,
|
|
<0 0x2b 0x1>,
|
|
<0 0x2c 0x1>,
|
|
<0 0x2d 0x1>,
|
|
<0 0x2e 0x1>,
|
|
<0 0x2f 0x1>,
|
|
<0 0xa8 0x0>;
|
|
interrupt-names = "msi0", "msi1", "msi2", "msi3",
|
|
"msi4", "msi5", "msi6", "msi7",
|
|
"msi8", "msi9", "msi10", "msi11",
|
|
"msi12", "msi13", "msi14", "msi15",
|
|
"legacy";
|
|
qcom,msi_addr = <0x0b006040>;
|
|
qcom,msi_base = <0x40>;
|
|
qcom,ath10k-pre-calibration-data = [ 01 02 03 ... ];
|
|
};
|