mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
b5f32064ed
Qualcomm Atheros IPQ807x is a modern WiSoC featuring: * Quad Core ARMv8 Cortex A-53 * @ 2.2 GHz (IPQ8072A/4A/6A/8A) Codename Hawkeye * @ 1.4 GHz (IPQ8070A/1A) Codename Acorn * Dual Band simultaneaous IEEE 802.11ax * 5G: 8x8/80 or 4x4/160MHz (IPQ8074A/8A) * 5G: 4x4/80 or 2x2/160MHz (IPQ8071A/2A/6A) * 5G: 2x2/80MHz (IPQ8070A) * 2G: 4x4/40MHz (IPQ8072A/4A/6A/8A) * 2G: 2x2/40MHz (IPQ8070A/1A) * 1x PSGMII via QCA8072/5 (Max 5x 1GbE ports) * 2x SGMII/USXGMII (1/2.5/5/10 GbE) on Hawkeye * 2x SGMII/USXGMII (1/2.5/5 GbE) on Acorn * DDR3L/4 32/16 bit up to 2400MT/s * SDIO 3.0/SD card 3.0/eMMC 5.1 * Dual USB 3.0 * One PCIe Gen2.1 and one PCIe Gen3.0 port (Single lane) * Parallel NAND (ONFI)/LCD * 6x QUP BLSP SPI/I2C/UART * I2S, PCM, and TDMA * HW PWM * 1.8V configurable GPIO * Companion PMP8074 PMIC via SPMI (GPIOS, RTC etc) Note that only v2 SOC models aka the ones ending with A suffix are supported, v1 models do not comply to the final 802.11ax and have lower clocks, lack the Gen3 PCIe etc. SoC itself has two UBI32 cores for the NSS offloading system, however currently no offloading is supported. Signed-off-by: Robert Marko <robimarko@gmail.com>
80 lines
2.4 KiB
Diff
80 lines
2.4 KiB
Diff
From 8c73af6e8d78c66cfef0f551b00d375ec0b67ff3 Mon Sep 17 00:00:00 2001
|
|
From: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
|
|
Date: Sat, 30 Jan 2021 10:50:09 +0530
|
|
Subject: [PATCH] remoteproc: qcom: Update regmap offsets for halt register
|
|
|
|
Fixed issue in reading halt-regs parameter from device-tree.
|
|
|
|
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
|
|
Signed-off-by: Sricharan R <sricharan@codeaurora.org>
|
|
---
|
|
drivers/remoteproc/qcom_q6v5_wcss.c | 22 ++++++++++++++--------
|
|
1 file changed, 14 insertions(+), 8 deletions(-)
|
|
|
|
--- a/drivers/remoteproc/qcom_q6v5_wcss.c
|
|
+++ b/drivers/remoteproc/qcom_q6v5_wcss.c
|
|
@@ -86,7 +86,7 @@
|
|
#define TCSR_WCSS_CLK_MASK 0x1F
|
|
#define TCSR_WCSS_CLK_ENABLE 0x14
|
|
|
|
-#define MAX_HALT_REG 3
|
|
+#define MAX_HALT_REG 4
|
|
|
|
#define WCNSS_PAS_ID 6
|
|
|
|
@@ -154,6 +154,7 @@ struct wcss_data {
|
|
u32 version;
|
|
bool aon_reset_required;
|
|
bool wcss_q6_reset_required;
|
|
+ bool bcr_reset_required;
|
|
const char *ssr_name;
|
|
const char *sysmon_name;
|
|
int ssctl_id;
|
|
@@ -875,10 +876,13 @@ static int q6v5_wcss_init_reset(struct q
|
|
}
|
|
}
|
|
|
|
- wcss->wcss_q6_bcr_reset = devm_reset_control_get_exclusive(dev, "wcss_q6_bcr_reset");
|
|
- if (IS_ERR(wcss->wcss_q6_bcr_reset)) {
|
|
- dev_err(wcss->dev, "unable to acquire wcss_q6_bcr_reset\n");
|
|
- return PTR_ERR(wcss->wcss_q6_bcr_reset);
|
|
+ if (desc->bcr_reset_required) {
|
|
+ wcss->wcss_q6_bcr_reset = devm_reset_control_get_exclusive(dev,
|
|
+ "wcss_q6_bcr_reset");
|
|
+ if (IS_ERR(wcss->wcss_q6_bcr_reset)) {
|
|
+ dev_err(wcss->dev, "unable to acquire wcss_q6_bcr_reset\n");
|
|
+ return PTR_ERR(wcss->wcss_q6_bcr_reset);
|
|
+ }
|
|
}
|
|
|
|
return 0;
|
|
@@ -929,9 +933,9 @@ static int q6v5_wcss_init_mmio(struct q6
|
|
return -EINVAL;
|
|
}
|
|
|
|
- wcss->halt_q6 = halt_reg[0];
|
|
- wcss->halt_wcss = halt_reg[1];
|
|
- wcss->halt_nc = halt_reg[2];
|
|
+ wcss->halt_q6 = halt_reg[1];
|
|
+ wcss->halt_wcss = halt_reg[2];
|
|
+ wcss->halt_nc = halt_reg[3];
|
|
|
|
return 0;
|
|
}
|
|
@@ -1178,6 +1182,7 @@ static const struct wcss_data wcss_ipq80
|
|
.crash_reason_smem = WCSS_CRASH_REASON,
|
|
.aon_reset_required = true,
|
|
.wcss_q6_reset_required = true,
|
|
+ .bcr_reset_required = false,
|
|
.ssr_name = "q6wcss",
|
|
.ops = &q6v5_wcss_ipq8074_ops,
|
|
.requires_force_stop = true,
|
|
@@ -1192,6 +1197,7 @@ static const struct wcss_data wcss_qcs40
|
|
.version = WCSS_QCS404,
|
|
.aon_reset_required = false,
|
|
.wcss_q6_reset_required = false,
|
|
+ .bcr_reset_required = true,
|
|
.ssr_name = "mpss",
|
|
.sysmon_name = "wcnss",
|
|
.ssctl_id = 0x12,
|