diff options
| author | Olof Johansson <olof@lixom.net> | 2021-06-15 08:17:10 -0700 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2021-06-15 08:17:12 -0700 | 
| commit | cda1138fcc74394efa8e774ec182b93427de122f (patch) | |
| tree | 5bb21173b02c09f500a5641b6934d8b86741e9ad | |
| parent | ec3171d7beaff469fa48def08f8d0bc028d158ea (diff) | |
| parent | 82a6cbf007648e2c07c29a133cce060fc30aa48f (diff) | |
| download | linux-cda1138fcc74394efa8e774ec182b93427de122f.tar.bz2 | |
Merge tag 'qcom-drivers-for-5.14' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/drivers
Qualcomm driver updates for v5.14
In addition to fixing a kerneldoc issue in the qcom-ebi2 driver this
populates socinfo with a range of platforms and PMICs and extends a few
of the Qualcomm drivers bits of support for MSM8226, MDM9607, SM6125 and
SC8180X.
* tag 'qcom-drivers-for-5.14' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  firmware: qcom_scm: Add MDM9607 compatible
  soc: qcom: rpmpd: Add MDM9607 RPM Power Domains
  soc: qcom: smd-rpm: Add MSM8226 compatible
  dt-bindings: soc: qcom: smd-rpm: Add MSM8226 compatible
  soc: qcom: socinfo: import PMIC IDs from pmic-spmi
  bus: qcom-ebi2: Fix incorrect documentation for '{slow,fast}_cfg'
  soc: qcom: socinfo: Add more IDs
  soc: qcom: rpmhpd: Add SC8180X
  dt-bindings: power: rpmpd: Add SC8180X to rpmpd binding
  dt-bindings: soc: qcom: smd-rpm: Document SM6125 compatible
  soc: qcom: smd-rpm: Add SM6125 compatible
  soc: qcom: socinfo: Add remaining IPQ6018 family ID-s
  soc: qcom: socinfo: Add missing SoC ID for SM6125
Link: https://lore.kernel.org/r/20210614223727.393159-1-bjorn.andersson@linaro.org
Signed-off-by: Olof Johansson <olof@lixom.net>
| -rw-r--r-- | Documentation/devicetree/bindings/firmware/qcom,scm.txt | 1 | ||||
| -rw-r--r-- | Documentation/devicetree/bindings/power/qcom,rpmpd.yaml | 2 | ||||
| -rw-r--r-- | Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 2 | ||||
| -rw-r--r-- | drivers/bus/qcom-ebi2.c | 4 | ||||
| -rw-r--r-- | drivers/firmware/qcom_scm.c | 3 | ||||
| -rw-r--r-- | drivers/soc/qcom/rpmhpd.c | 21 | ||||
| -rw-r--r-- | drivers/soc/qcom/rpmpd.c | 22 | ||||
| -rw-r--r-- | drivers/soc/qcom/smd-rpm.c | 2 | ||||
| -rw-r--r-- | drivers/soc/qcom/socinfo.c | 56 | ||||
| -rw-r--r-- | include/dt-bindings/power/qcom-rpmpd.h | 21 | 
10 files changed, 126 insertions, 8 deletions
| diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt index e747d73687cb..a7333ad938d2 100644 --- a/Documentation/devicetree/bindings/firmware/qcom,scm.txt +++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt @@ -12,6 +12,7 @@ Required properties:   * "qcom,scm-ipq4019"   * "qcom,scm-ipq806x"   * "qcom,scm-ipq8074" + * "qcom,scm-mdm9607"   * "qcom,scm-msm8660"   * "qcom,scm-msm8916"   * "qcom,scm-msm8960" diff --git a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml index ff21bfef8204..4807b560f00d 100644 --- a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml +++ b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml @@ -16,6 +16,7 @@ description:  properties:    compatible:      enum: +      - qcom,mdm9607-rpmpd        - qcom,msm8916-rpmpd        - qcom,msm8939-rpmpd        - qcom,msm8976-rpmpd @@ -26,6 +27,7 @@ properties:        - qcom,sdm660-rpmpd        - qcom,sc7180-rpmhpd        - qcom,sc7280-rpmhpd +      - qcom,sc8180x-rpmhpd        - qcom,sdm845-rpmhpd        - qcom,sdx55-rpmhpd        - qcom,sm8150-rpmhpd diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml index 2684f22a1d85..d511f01fcac6 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml @@ -32,12 +32,14 @@ properties:      enum:        - qcom,rpm-apq8084        - qcom,rpm-ipq6018 +      - qcom,rpm-msm8226        - qcom,rpm-msm8916        - qcom,rpm-msm8974        - qcom,rpm-msm8976        - qcom,rpm-msm8996        - qcom,rpm-msm8998        - qcom,rpm-sdm660 +      - qcom,rpm-sm6125        - qcom,rpm-qcs404    qcom,smd-channels: diff --git a/drivers/bus/qcom-ebi2.c b/drivers/bus/qcom-ebi2.c index 0b8f53a688b8..663c82749222 100644 --- a/drivers/bus/qcom-ebi2.c +++ b/drivers/bus/qcom-ebi2.c @@ -102,8 +102,8 @@  /**   * struct cs_data - struct with info on a chipselect setting   * @enable_mask: mask to enable the chipselect in the EBI2 config - * @slow_cfg0: offset to XMEMC slow CS config - * @fast_cfg1: offset to XMEMC fast CS config + * @slow_cfg: offset to XMEMC slow CS config + * @fast_cfg: offset to XMEMC fast CS config   */  struct cs_data {  	u32 enable_mask; diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index ee9cb545e73b..47ea2bd42b10 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -1281,6 +1281,9 @@ static const struct of_device_id qcom_scm_dt_match[] = {  							     SCM_HAS_BUS_CLK)  	},  	{ .compatible = "qcom,scm-ipq4019" }, +	{ .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK | +							     SCM_HAS_IFACE_CLK | +							     SCM_HAS_BUS_CLK) },  	{ .compatible = "qcom,scm-msm8660", .data = (void *) SCM_HAS_CORE_CLK },  	{ .compatible = "qcom,scm-msm8960", .data = (void *) SCM_HAS_CORE_CLK },  	{ .compatible = "qcom,scm-msm8916", .data = (void *)(SCM_HAS_CORE_CLK | diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c index bb21c4f1c0c4..2daa17ba54a3 100644 --- a/drivers/soc/qcom/rpmhpd.c +++ b/drivers/soc/qcom/rpmhpd.c @@ -271,9 +271,30 @@ static const struct rpmhpd_desc sc7280_desc = {  	.num_pds = ARRAY_SIZE(sc7280_rpmhpds),  }; +/* SC8180x RPMH powerdomains */ +static struct rpmhpd *sc8180x_rpmhpds[] = { +	[SC8180X_CX] = &sdm845_cx, +	[SC8180X_CX_AO] = &sdm845_cx_ao, +	[SC8180X_EBI] = &sdm845_ebi, +	[SC8180X_GFX] = &sdm845_gfx, +	[SC8180X_LCX] = &sdm845_lcx, +	[SC8180X_LMX] = &sdm845_lmx, +	[SC8180X_MMCX] = &sm8150_mmcx, +	[SC8180X_MMCX_AO] = &sm8150_mmcx_ao, +	[SC8180X_MSS] = &sdm845_mss, +	[SC8180X_MX] = &sdm845_mx, +	[SC8180X_MX_AO] = &sdm845_mx_ao, +}; + +static const struct rpmhpd_desc sc8180x_desc = { +	.rpmhpds = sc8180x_rpmhpds, +	.num_pds = ARRAY_SIZE(sc8180x_rpmhpds), +}; +  static const struct of_device_id rpmhpd_match_table[] = {  	{ .compatible = "qcom,sc7180-rpmhpd", .data = &sc7180_desc },  	{ .compatible = "qcom,sc7280-rpmhpd", .data = &sc7280_desc }, +	{ .compatible = "qcom,sc8180x-rpmhpd", .data = &sc8180x_desc },  	{ .compatible = "qcom,sdm845-rpmhpd", .data = &sdm845_desc },  	{ .compatible = "qcom,sdx55-rpmhpd", .data = &sdx55_desc},  	{ .compatible = "qcom,sm8150-rpmhpd", .data = &sm8150_desc }, diff --git a/drivers/soc/qcom/rpmpd.c b/drivers/soc/qcom/rpmpd.c index 27733b0e7fca..0b532a892d60 100644 --- a/drivers/soc/qcom/rpmpd.c +++ b/drivers/soc/qcom/rpmpd.c @@ -118,6 +118,27 @@ struct rpmpd_desc {  static DEFINE_MUTEX(rpmpd_lock); +/* mdm9607 RPM Power Domains */ +DEFINE_RPMPD_PAIR(mdm9607, vddcx, vddcx_ao, SMPA, LEVEL, 3); +DEFINE_RPMPD_VFL(mdm9607, vddcx_vfl, SMPA, 3); + +DEFINE_RPMPD_PAIR(mdm9607, vddmx, vddmx_ao, LDOA, LEVEL, 12); +DEFINE_RPMPD_VFL(mdm9607, vddmx_vfl, LDOA, 12); +static struct rpmpd *mdm9607_rpmpds[] = { +	[MDM9607_VDDCX] =	&mdm9607_vddcx, +	[MDM9607_VDDCX_AO] =	&mdm9607_vddcx_ao, +	[MDM9607_VDDCX_VFL] =	&mdm9607_vddcx_vfl, +	[MDM9607_VDDMX] =	&mdm9607_vddmx, +	[MDM9607_VDDMX_AO] =	&mdm9607_vddmx_ao, +	[MDM9607_VDDMX_VFL] =	&mdm9607_vddmx_vfl, +}; + +static const struct rpmpd_desc mdm9607_desc = { +	.rpmpds = mdm9607_rpmpds, +	.num_pds = ARRAY_SIZE(mdm9607_rpmpds), +	.max_state = RPM_SMD_LEVEL_TURBO, +}; +  /* msm8939 RPM Power Domains */  DEFINE_RPMPD_PAIR(msm8939, vddmd, vddmd_ao, SMPA, CORNER, 1);  DEFINE_RPMPD_VFC(msm8939, vddmd_vfc, SMPA, 1); @@ -326,6 +347,7 @@ static const struct rpmpd_desc sdm660_desc = {  };  static const struct of_device_id rpmpd_match_table[] = { +	{ .compatible = "qcom,mdm9607-rpmpd", .data = &mdm9607_desc },  	{ .compatible = "qcom,msm8916-rpmpd", .data = &msm8916_desc },  	{ .compatible = "qcom,msm8939-rpmpd", .data = &msm8939_desc },  	{ .compatible = "qcom,msm8976-rpmpd", .data = &msm8976_desc }, diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c index b93218cb50b5..bc0be1d4be5f 100644 --- a/drivers/soc/qcom/smd-rpm.c +++ b/drivers/soc/qcom/smd-rpm.c @@ -233,6 +233,7 @@ static void qcom_smd_rpm_remove(struct rpmsg_device *rpdev)  static const struct of_device_id qcom_smd_rpm_of_match[] = {  	{ .compatible = "qcom,rpm-apq8084" },  	{ .compatible = "qcom,rpm-ipq6018" }, +	{ .compatible = "qcom,rpm-msm8226" },  	{ .compatible = "qcom,rpm-msm8916" },  	{ .compatible = "qcom,rpm-msm8936" },  	{ .compatible = "qcom,rpm-msm8974" }, @@ -241,6 +242,7 @@ static const struct of_device_id qcom_smd_rpm_of_match[] = {  	{ .compatible = "qcom,rpm-msm8996" },  	{ .compatible = "qcom,rpm-msm8998" },  	{ .compatible = "qcom,rpm-sdm660" }, +	{ .compatible = "qcom,rpm-sm6125" },  	{ .compatible = "qcom,rpm-qcs404" },  	{}  }; diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c index f6cfb79338f0..b2f049faa3df 100644 --- a/drivers/soc/qcom/socinfo.c +++ b/drivers/soc/qcom/socinfo.c @@ -70,21 +70,33 @@ static const char *const socinfo_image_names[] = {  static const char *const pmic_models[] = {  	[0]  = "Unknown PMIC model", +	[1]  = "PM8941", +	[2]  = "PM8841", +	[3]  = "PM8019", +	[4]  = "PM8226", +	[5]  = "PM8110", +	[6]  = "PMA8084", +	[7]  = "PMI8962", +	[8]  = "PMD9635",  	[9]  = "PM8994", +	[10] = "PMI8994",  	[11] = "PM8916", -	[13] = "PM8058", +	[12] = "PM8004", +	[13] = "PM8909/PM8058",  	[14] = "PM8028",  	[15] = "PM8901", -	[16] = "PM8027", -	[17] = "ISL9519", +	[16] = "PM8950/PM8027", +	[17] = "PMI8950/ISL9519",  	[18] = "PM8921",  	[19] = "PM8018", -	[20] = "PM8015", -	[21] = "PM8014", +	[20] = "PM8998/PM8015", +	[21] = "PMI8998/PM8014",  	[22] = "PM8821",  	[23] = "PM8038", -	[24] = "PM8922", +	[24] = "PM8005/PM8922",  	[25] = "PM8917", +	[26] = "PM660L", +	[27] = "PM660",  	[30] = "PM8150",  	[31] = "PM8150L",  	[32] = "PM8150B", @@ -195,11 +207,30 @@ static const struct soc_id soc_id[] = {  	{ 139, "APQ8060AB" },  	{ 140, "MSM8260AB" },  	{ 141, "MSM8660AB" }, +	{ 145, "MSM8626" }, +	{ 147, "MSM8610" }, +	{ 153, "APQ8064AB" }, +	{ 158, "MSM8226" }, +	{ 159, "MSM8526" }, +	{ 161, "MSM8110" }, +	{ 162, "MSM8210" }, +	{ 163, "MSM8810" }, +	{ 164, "MSM8212" }, +	{ 165, "MSM8612" }, +	{ 166, "MSM8112" }, +	{ 168, "MSM8225Q" }, +	{ 169, "MSM8625Q" }, +	{ 170, "MSM8125Q" }, +	{ 172, "APQ8064AA" },  	{ 178, "APQ8084" },  	{ 184, "APQ8074" },  	{ 185, "MSM8274" },  	{ 186, "MSM8674" },  	{ 194, "MSM8974PRO" }, +	{ 198, "MSM8126" }, +	{ 199, "APQ8026" }, +	{ 200, "MSM8926" }, +	{ 205, "MSM8326" },  	{ 206, "MSM8916" },  	{ 207, "MSM8994" },  	{ 208, "APQ8074-AA" }, @@ -213,6 +244,14 @@ static const struct soc_id soc_id[] = {  	{ 216, "MSM8674PRO" },  	{ 217, "MSM8974-AA" },  	{ 218, "MSM8974-AB" }, +	{ 219, "APQ8028" }, +	{ 220, "MSM8128" }, +	{ 221, "MSM8228" }, +	{ 222, "MSM8528" }, +	{ 223, "MSM8628" }, +	{ 224, "MSM8928" }, +	{ 225, "MSM8510" }, +	{ 226, "MSM8512" },  	{ 233, "MSM8936" },  	{ 239, "MSM8939" },  	{ 240, "APQ8036" }, @@ -254,8 +293,13 @@ static const struct soc_id soc_id[] = {  	{ 350, "SDA632" },  	{ 351, "SDA450" },  	{ 356, "SM8250" }, +	{ 394, "SM6125" },  	{ 402, "IPQ6018" }, +	{ 403, "IPQ6028" }, +	{ 421, "IPQ6000" }, +	{ 422, "IPQ6010" },  	{ 425, "SC7180" }, +	{ 453, "IPQ6005" },  	{ 455, "QRB5165" },  }; diff --git a/include/dt-bindings/power/qcom-rpmpd.h b/include/dt-bindings/power/qcom-rpmpd.h index eedb5d94c020..8b5708bb9671 100644 --- a/include/dt-bindings/power/qcom-rpmpd.h +++ b/include/dt-bindings/power/qcom-rpmpd.h @@ -81,6 +81,19 @@  #define SC7280_LCX	7  #define SC7280_MSS	8 +/* SC8180X Power Domain Indexes */ +#define SC8180X_CX	0 +#define SC8180X_CX_AO	1 +#define SC8180X_EBI	2 +#define SC8180X_GFX	3 +#define SC8180X_LCX	4 +#define SC8180X_LMX	5 +#define SC8180X_MMCX	6 +#define SC8180X_MMCX_AO	7 +#define SC8180X_MSS	8 +#define SC8180X_MX	9 +#define SC8180X_MX_AO	10 +  /* SDM845 Power Domain performance levels */  #define RPMH_REGULATOR_LEVEL_RETENTION	16  #define RPMH_REGULATOR_LEVEL_MIN_SVS	48 @@ -95,6 +108,14 @@  #define RPMH_REGULATOR_LEVEL_TURBO	384  #define RPMH_REGULATOR_LEVEL_TURBO_L1	416 +/* MDM9607 Power Domains */ +#define MDM9607_VDDCX		0 +#define MDM9607_VDDCX_AO	1 +#define MDM9607_VDDCX_VFL	2 +#define MDM9607_VDDMX		3 +#define MDM9607_VDDMX_AO	4 +#define MDM9607_VDDMX_VFL	5 +  /* MSM8939 Power Domains */  #define MSM8939_VDDMDCX		0  #define MSM8939_VDDMDCX_AO	1 |