Commit 99978d2f authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'qcom-drivers-for-5.20-2' of...

Merge tag 'qcom-drivers-for-5.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/drivers

More Qualcomm driver changes for v5.20

This adds support for booting secondary cores, SPM, SMD-RPM and RPM
power-domain support for the MSM8909 platform.

It drops an unnecessary print in icc-bwmon, corrects SA8540P entries in
socinfo and a Kconfig build dependency for QCOM_RPMPD.

Lastly it continues to clean up up the Devicetree bindings for the
Qualcomm drivers.

* tag 'qcom-drivers-for-5.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  dt-bindings: soc: qcom: qcom,smd-rpm: add power-controller
  dt-bindings: soc: qcom: aoss: document qcom,sm8450-aoss-qmp
  dt-bindings: soc: qcom,rpmh-rsc: simplify qcom,tcs-config
  ARM: mach-qcom: Add support for MSM8909
  dt-bindings: arm: cpus: Document "qcom,msm8909-smp" enable-method
  soc: qcom: spm: Add CPU data for MSM8909
  dt-bindings: soc: qcom: spm: Add MSM8909 CPU compatible
  soc: qcom: rpmpd: Add compatible for MSM8909
  dt-bindings: power: qcom-rpmpd: Add MSM8909 power domains
  soc: qcom: smd-rpm: Add compatible for MSM8909
  dt-bindings: soc: qcom: smd-rpm: Add MSM8909
  soc: qcom: icc-bwmon: Remove unnecessary print function dev_err()
  soc: qcom: socinfo: Fix the id of SA8540P SoC
  soc: qcom: Make QCOM_RPMPD depend on PM

Link: https://lore.kernel.org/r/20220720230648.2113609-1-bjorn.andersson@linaro.orgSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents f740949d c23b7d49
...@@ -221,6 +221,7 @@ properties: ...@@ -221,6 +221,7 @@ properties:
- qcom,kpss-acc-v1 - qcom,kpss-acc-v1
- qcom,kpss-acc-v2 - qcom,kpss-acc-v2
- qcom,msm8226-smp - qcom,msm8226-smp
- qcom,msm8909-smp
# Only valid on ARM 32-bit, see above for ARM v8 64-bit # Only valid on ARM 32-bit, see above for ARM v8 64-bit
- qcom,msm8916-smp - qcom,msm8916-smp
- renesas,apmu - renesas,apmu
......
...@@ -18,6 +18,7 @@ properties: ...@@ -18,6 +18,7 @@ properties:
enum: enum:
- qcom,mdm9607-rpmpd - qcom,mdm9607-rpmpd
- qcom,msm8226-rpmpd - qcom,msm8226-rpmpd
- qcom,msm8909-rpmpd
- qcom,msm8916-rpmpd - qcom,msm8916-rpmpd
- qcom,msm8939-rpmpd - qcom,msm8939-rpmpd
- qcom,msm8953-rpmpd - qcom,msm8953-rpmpd
......
...@@ -33,6 +33,7 @@ properties: ...@@ -33,6 +33,7 @@ properties:
- qcom,sm8150-aoss-qmp - qcom,sm8150-aoss-qmp
- qcom,sm8250-aoss-qmp - qcom,sm8250-aoss-qmp
- qcom,sm8350-aoss-qmp - qcom,sm8350-aoss-qmp
- qcom,sm8450-aoss-qmp
- const: qcom,aoss-qmp - const: qcom,aoss-qmp
reg: reg:
......
...@@ -65,33 +65,22 @@ properties: ...@@ -65,33 +65,22 @@ properties:
qcom,tcs-config: qcom,tcs-config:
$ref: /schemas/types.yaml#/definitions/uint32-matrix $ref: /schemas/types.yaml#/definitions/uint32-matrix
minItems: 4
maxItems: 4
items: items:
- items: items:
- description: TCS type - description: |
enum: [ 0, 1, 2, 3 ] TCS type::
- description: Number of TCS - ACTIVE_TCS
- items: - SLEEP_TCS
- description: TCS type - WAKE_TCS
enum: [ 0, 1, 2, 3 ] - CONTROL_TCS
- description: Number of TCS enum: [ 0, 1, 2, 3 ]
- items: - description: Number of TCS
- description: TCS type
enum: [ 0, 1, 2, 3]
- description: Numbe r of TCS
- items:
- description: TCS type
enum: [ 0, 1, 2, 3 ]
- description: Number of TCS
description: | description: |
The tuple defining the configuration of TCS. Must have two cells which The tuple defining the configuration of TCS. Must have two cells which
describe each TCS type. The order of the TCS must match the hardware describe each TCS type. The order of the TCS must match the hardware
configuration. configuration.
Cell 1 (TCS Type):: TCS types to be specified::
- ACTIVE_TCS
- SLEEP_TCS
- WAKE_TCS
- CONTROL_TCS
Cell 2 (Number of TCS):: <u32>
qcom,tcs-offset: qcom,tcs-offset:
$ref: /schemas/types.yaml#/definitions/uint32 $ref: /schemas/types.yaml#/definitions/uint32
......
...@@ -34,6 +34,7 @@ properties: ...@@ -34,6 +34,7 @@ properties:
- qcom,rpm-apq8084 - qcom,rpm-apq8084
- qcom,rpm-ipq6018 - qcom,rpm-ipq6018
- qcom,rpm-msm8226 - qcom,rpm-msm8226
- qcom,rpm-msm8909
- qcom,rpm-msm8916 - qcom,rpm-msm8916
- qcom,rpm-msm8936 - qcom,rpm-msm8936
- qcom,rpm-msm8953 - qcom,rpm-msm8953
...@@ -51,6 +52,9 @@ properties: ...@@ -51,6 +52,9 @@ properties:
$ref: /schemas/clock/qcom,rpmcc.yaml# $ref: /schemas/clock/qcom,rpmcc.yaml#
unevaluatedProperties: false unevaluatedProperties: false
power-controller:
$ref: /schemas/power/qcom,rpmpd.yaml#
qcom,smd-channels: qcom,smd-channels:
$ref: /schemas/types.yaml#/definitions/string-array $ref: /schemas/types.yaml#/definitions/string-array
description: Channel name used for the RPM communication description: Channel name used for the RPM communication
......
...@@ -22,6 +22,7 @@ properties: ...@@ -22,6 +22,7 @@ properties:
- qcom,sdm660-silver-saw2-v4.1-l2 - qcom,sdm660-silver-saw2-v4.1-l2
- qcom,msm8998-gold-saw2-v4.1-l2 - qcom,msm8998-gold-saw2-v4.1-l2
- qcom,msm8998-silver-saw2-v4.1-l2 - qcom,msm8998-silver-saw2-v4.1-l2
- qcom,msm8909-saw2-v3.0-cpu
- qcom,msm8916-saw2-v3.0-cpu - qcom,msm8916-saw2-v3.0-cpu
- qcom,msm8226-saw2-v2.1-cpu - qcom,msm8226-saw2-v2.1-cpu
- qcom,msm8974-saw2-v2.1-cpu - qcom,msm8974-saw2-v2.1-cpu
......
...@@ -20,6 +20,10 @@ config ARCH_MSM8X60 ...@@ -20,6 +20,10 @@ config ARCH_MSM8X60
bool "Enable support for MSM8X60" bool "Enable support for MSM8X60"
select CLKSRC_QCOM select CLKSRC_QCOM
config ARCH_MSM8909
bool "Enable support for MSM8909"
select HAVE_ARM_ARCH_TIMER
config ARCH_MSM8916 config ARCH_MSM8916
bool "Enable support for MSM8916" bool "Enable support for MSM8916"
select HAVE_ARM_ARCH_TIMER select HAVE_ARM_ARCH_TIMER
......
...@@ -384,6 +384,7 @@ static const struct smp_operations qcom_smp_cortex_a7_ops __initconst = { ...@@ -384,6 +384,7 @@ static const struct smp_operations qcom_smp_cortex_a7_ops __initconst = {
#endif #endif
}; };
CPU_METHOD_OF_DECLARE(qcom_smp_msm8226, "qcom,msm8226-smp", &qcom_smp_cortex_a7_ops); CPU_METHOD_OF_DECLARE(qcom_smp_msm8226, "qcom,msm8226-smp", &qcom_smp_cortex_a7_ops);
CPU_METHOD_OF_DECLARE(qcom_smp_msm8909, "qcom,msm8909-smp", &qcom_smp_cortex_a7_ops);
CPU_METHOD_OF_DECLARE(qcom_smp_msm8916, "qcom,msm8916-smp", &qcom_smp_cortex_a7_ops); CPU_METHOD_OF_DECLARE(qcom_smp_msm8916, "qcom,msm8916-smp", &qcom_smp_cortex_a7_ops);
static const struct smp_operations qcom_smp_kpssv1_ops __initconst = { static const struct smp_operations qcom_smp_kpssv1_ops __initconst = {
......
...@@ -129,6 +129,7 @@ config QCOM_RPMHPD ...@@ -129,6 +129,7 @@ config QCOM_RPMHPD
config QCOM_RPMPD config QCOM_RPMPD
tristate "Qualcomm RPM Power domain driver" tristate "Qualcomm RPM Power domain driver"
depends on PM
depends on QCOM_SMD_RPM depends on QCOM_SMD_RPM
select PM_GENERIC_DOMAINS select PM_GENERIC_DOMAINS
select PM_GENERIC_DOMAINS_OF select PM_GENERIC_DOMAINS_OF
......
...@@ -345,10 +345,8 @@ static int bwmon_probe(struct platform_device *pdev) ...@@ -345,10 +345,8 @@ static int bwmon_probe(struct platform_device *pdev)
} }
bwmon->irq = platform_get_irq(pdev, 0); bwmon->irq = platform_get_irq(pdev, 0);
if (bwmon->irq < 0) { if (bwmon->irq < 0)
dev_err(dev, "failed to acquire bwmon IRQ\n");
return bwmon->irq; return bwmon->irq;
}
ret = devm_pm_opp_of_add_table(dev); ret = devm_pm_opp_of_add_table(dev);
if (ret) if (ret)
......
...@@ -453,6 +453,7 @@ static const struct rpmpd_desc qcm2290_desc = { ...@@ -453,6 +453,7 @@ static const struct rpmpd_desc qcm2290_desc = {
static const struct of_device_id rpmpd_match_table[] = { static const struct of_device_id rpmpd_match_table[] = {
{ .compatible = "qcom,mdm9607-rpmpd", .data = &mdm9607_desc }, { .compatible = "qcom,mdm9607-rpmpd", .data = &mdm9607_desc },
{ .compatible = "qcom,msm8226-rpmpd", .data = &msm8226_desc }, { .compatible = "qcom,msm8226-rpmpd", .data = &msm8226_desc },
{ .compatible = "qcom,msm8909-rpmpd", .data = &msm8916_desc },
{ .compatible = "qcom,msm8916-rpmpd", .data = &msm8916_desc }, { .compatible = "qcom,msm8916-rpmpd", .data = &msm8916_desc },
{ .compatible = "qcom,msm8939-rpmpd", .data = &msm8939_desc }, { .compatible = "qcom,msm8939-rpmpd", .data = &msm8939_desc },
{ .compatible = "qcom,msm8953-rpmpd", .data = &msm8953_desc }, { .compatible = "qcom,msm8953-rpmpd", .data = &msm8953_desc },
......
...@@ -234,6 +234,7 @@ static const struct of_device_id qcom_smd_rpm_of_match[] = { ...@@ -234,6 +234,7 @@ static const struct of_device_id qcom_smd_rpm_of_match[] = {
{ .compatible = "qcom,rpm-apq8084" }, { .compatible = "qcom,rpm-apq8084" },
{ .compatible = "qcom,rpm-ipq6018" }, { .compatible = "qcom,rpm-ipq6018" },
{ .compatible = "qcom,rpm-msm8226" }, { .compatible = "qcom,rpm-msm8226" },
{ .compatible = "qcom,rpm-msm8909" },
{ .compatible = "qcom,rpm-msm8916" }, { .compatible = "qcom,rpm-msm8916" },
{ .compatible = "qcom,rpm-msm8936" }, { .compatible = "qcom,rpm-msm8936" },
{ .compatible = "qcom,rpm-msm8953" }, { .compatible = "qcom,rpm-msm8953" },
......
...@@ -328,7 +328,8 @@ static const struct soc_id soc_id[] = { ...@@ -328,7 +328,8 @@ static const struct soc_id soc_id[] = {
{ 455, "QRB5165" }, { 455, "QRB5165" },
{ 457, "SM8450" }, { 457, "SM8450" },
{ 459, "SM7225" }, { 459, "SM7225" },
{ 460, "SA8540P" }, { 460, "SA8295P" },
{ 461, "SA8540P" },
{ 480, "SM8450" }, { 480, "SM8450" },
{ 482, "SM8450" }, { 482, "SM8450" },
{ 487, "SC7280" }, { 487, "SC7280" },
......
...@@ -74,6 +74,18 @@ static const u16 spm_reg_offset_v3_0[SPM_REG_NR] = { ...@@ -74,6 +74,18 @@ static const u16 spm_reg_offset_v3_0[SPM_REG_NR] = {
[SPM_REG_SEQ_ENTRY] = 0x400, [SPM_REG_SEQ_ENTRY] = 0x400,
}; };
/* SPM register data for 8909 */
static const struct spm_reg_data spm_reg_8909_cpu = {
.reg_offset = spm_reg_offset_v3_0,
.spm_cfg = 0x1,
.spm_dly = 0x3C102800,
.seq = { 0x60, 0x03, 0x60, 0x0B, 0x0F, 0x20, 0x10, 0x80, 0x30, 0x90,
0x5B, 0x60, 0x03, 0x60, 0x76, 0x76, 0x0B, 0x94, 0x5B, 0x80,
0x10, 0x26, 0x30, 0x0F },
.start_index[PM_SLEEP_MODE_STBY] = 0,
.start_index[PM_SLEEP_MODE_SPC] = 5,
};
/* SPM register data for 8916 */ /* SPM register data for 8916 */
static const struct spm_reg_data spm_reg_8916_cpu = { static const struct spm_reg_data spm_reg_8916_cpu = {
.reg_offset = spm_reg_offset_v3_0, .reg_offset = spm_reg_offset_v3_0,
...@@ -195,6 +207,8 @@ static const struct of_device_id spm_match_table[] = { ...@@ -195,6 +207,8 @@ static const struct of_device_id spm_match_table[] = {
.data = &spm_reg_660_silver_l2 }, .data = &spm_reg_660_silver_l2 },
{ .compatible = "qcom,msm8226-saw2-v2.1-cpu", { .compatible = "qcom,msm8226-saw2-v2.1-cpu",
.data = &spm_reg_8226_cpu }, .data = &spm_reg_8226_cpu },
{ .compatible = "qcom,msm8909-saw2-v3.0-cpu",
.data = &spm_reg_8909_cpu },
{ .compatible = "qcom,msm8916-saw2-v3.0-cpu", { .compatible = "qcom,msm8916-saw2-v3.0-cpu",
.data = &spm_reg_8916_cpu }, .data = &spm_reg_8916_cpu },
{ .compatible = "qcom,msm8974-saw2-v2.1-cpu", { .compatible = "qcom,msm8974-saw2-v2.1-cpu",
......
...@@ -187,6 +187,13 @@ ...@@ -187,6 +187,13 @@
#define MSM8916_VDDMX 3 #define MSM8916_VDDMX 3
#define MSM8916_VDDMX_AO 4 #define MSM8916_VDDMX_AO 4
/* MSM8909 Power Domain Indexes */
#define MSM8909_VDDCX MSM8916_VDDCX
#define MSM8909_VDDCX_AO MSM8916_VDDCX_AO
#define MSM8909_VDDCX_VFC MSM8916_VDDCX_VFC
#define MSM8909_VDDMX MSM8916_VDDMX
#define MSM8909_VDDMX_AO MSM8916_VDDMX_AO
/* MSM8953 Power Domain Indexes */ /* MSM8953 Power Domain Indexes */
#define MSM8953_VDDMD 0 #define MSM8953_VDDMD 0
#define MSM8953_VDDMD_AO 1 #define MSM8953_VDDMD_AO 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment