* [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC
@ 2016-06-17 10:22 Neil Armstrong
2016-06-17 10:22 ` [PATCH 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
` (4 more replies)
0 siblings, 5 replies; 20+ messages in thread
From: Neil Armstrong @ 2016-06-17 10:22 UTC (permalink / raw)
To: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni
Cc: Neil Armstrong, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
In order to support the Qualcomm MDM9615 in the Sierra Wireless WP8548
Modules, add the PM8018 PMIC support into MFD, Regulator, RTC and input.
This patchset is part of a global SoC + Module + Board support for the
Sierra Wireless mangOH Board support with the WP8548 module.
Neil Armstrong (5):
mfd: pm8921: Add support for pm8018
input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
rtc: rtc-pm8xxx: Add support for pm8018 rtc
mfd: qcom-rpm: Add support for pm8018 RPM Regulator
regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
.../bindings/input/qcom,pm8xxx-pwrkey.txt | 1 +
.../devicetree/bindings/mfd/qcom-pm8xxx.txt | 1 +
Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 15 +++
drivers/input/misc/pmic8xxx-pwrkey.c | 1 +
drivers/mfd/pm8921-core.c | 1 +
drivers/mfd/qcom_rpm.c | 45 +++++++
drivers/regulator/qcom_rpm-regulator.c | 134 +++++++++++++++++++++
drivers/rtc/rtc-pm8xxx.c | 11 ++
include/dt-bindings/mfd/qcom-rpm.h | 23 ++++
9 files changed, 232 insertions(+)
--
1.9.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 1/5] mfd: pm8921: Add support for pm8018
2016-06-17 10:22 [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
@ 2016-06-17 10:22 ` Neil Armstrong
2016-06-22 5:07 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
` (3 subsequent siblings)
4 siblings, 1 reply; 20+ messages in thread
From: Neil Armstrong @ 2016-06-17 10:22 UTC (permalink / raw)
To: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni
Cc: Neil Armstrong, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
In order to support the Qualcomm MDM9615 PMIC, add support for the
pm8018 in pm8921 mfd driver.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
drivers/mfd/pm8921-core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mfd/pm8921-core.c b/drivers/mfd/pm8921-core.c
index 1b7ec08..0e3a2ea 100644
--- a/drivers/mfd/pm8921-core.c
+++ b/drivers/mfd/pm8921-core.c
@@ -309,6 +309,7 @@ static const struct regmap_config ssbi_regmap_config = {
};
static const struct of_device_id pm8921_id_table[] = {
+ { .compatible = "qcom,pm8018", },
{ .compatible = "qcom,pm8058", },
{ .compatible = "qcom,pm8921", },
{ }
--
1.9.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
2016-06-17 10:22 [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
2016-06-17 10:22 ` [PATCH 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
@ 2016-06-17 10:22 ` Neil Armstrong
2016-06-18 16:21 ` Dmitry Torokhov
2016-06-22 5:25 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
` (2 subsequent siblings)
4 siblings, 2 replies; 20+ messages in thread
From: Neil Armstrong @ 2016-06-17 10:22 UTC (permalink / raw)
To: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni
Cc: Neil Armstrong, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
In order to support pwrkey for Qualcomm MDM9615 SoC, add support
for the pm8018 pwrkey in pmic8xxx-pwrkey.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt | 1 +
drivers/input/misc/pmic8xxx-pwrkey.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
index 588536c..9e530e2 100644
--- a/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
+++ b/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
@@ -8,6 +8,7 @@ PROPERTIES
Definition: must be one of:
"qcom,pm8058-pwrkey"
"qcom,pm8921-pwrkey"
+ "qcom,pm8018-pwrkey"
- reg:
Usage: required
diff --git a/drivers/input/misc/pmic8xxx-pwrkey.c b/drivers/input/misc/pmic8xxx-pwrkey.c
index 67aab86..f6f9b87 100644
--- a/drivers/input/misc/pmic8xxx-pwrkey.c
+++ b/drivers/input/misc/pmic8xxx-pwrkey.c
@@ -446,6 +446,7 @@ static int pmic8xxx_pwrkey_remove(struct platform_device *pdev)
}
static const struct of_device_id pm8xxx_pwr_key_id_table[] = {
+ { .compatible = "qcom,pm8018-pwrkey", .data = &pm8921_pwrkey_shutdown },
{ .compatible = "qcom,pm8058-pwrkey", .data = &pm8058_pwrkey_shutdown },
{ .compatible = "qcom,pm8921-pwrkey", .data = &pm8921_pwrkey_shutdown },
{ }
--
1.9.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc
2016-06-17 10:22 [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
2016-06-17 10:22 ` [PATCH 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
2016-06-17 10:22 ` [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
@ 2016-06-17 10:22 ` Neil Armstrong
2016-06-21 16:24 ` Alexandre Belloni
2016-06-22 5:06 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
2016-06-17 10:22 ` [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
4 siblings, 2 replies; 20+ messages in thread
From: Neil Armstrong @ 2016-06-17 10:22 UTC (permalink / raw)
To: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni
Cc: Neil Armstrong, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
In order to support RTC on Qualcomm MDM9615 SoC, add support for
the pm8018 rtc in rtc-pm8xxx driver.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt | 1 +
drivers/rtc/rtc-pm8xxx.c | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
index f24f334..37a088f 100644
--- a/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
+++ b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
@@ -62,6 +62,7 @@ The below bindings specify the set of valid subnodes.
"qcom,pm8058-rtc"
"qcom,pm8921-rtc"
"qcom,pm8941-rtc"
+ "qcom,pm8018-rtc"
- reg:
Usage: required
diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c
index 795fcbd..976f5f6 100644
--- a/drivers/rtc/rtc-pm8xxx.c
+++ b/drivers/rtc/rtc-pm8xxx.c
@@ -393,6 +393,16 @@ static int pm8xxx_rtc_enable(struct pm8xxx_rtc *rtc_dd)
return 0;
}
+static const struct pm8xxx_rtc_regs pm8018_regs = {
+ .ctrl = 0x11d,
+ .write = 0x11f,
+ .read = 0x123,
+ .alarm_rw = 0x127,
+ .alarm_ctrl = 0x11d,
+ .alarm_ctrl2 = 0x11e,
+ .alarm_en = BIT(1),
+};
+
static const struct pm8xxx_rtc_regs pm8921_regs = {
.ctrl = 0x11d,
.write = 0x11f,
@@ -428,6 +438,7 @@ static const struct pm8xxx_rtc_regs pm8941_regs = {
*/
static const struct of_device_id pm8xxx_id_table[] = {
{ .compatible = "qcom,pm8921-rtc", .data = &pm8921_regs },
+ { .compatible = "qcom,pm8018-rtc", .data = &pm8018_regs },
{ .compatible = "qcom,pm8058-rtc", .data = &pm8058_regs },
{ .compatible = "qcom,pm8941-rtc", .data = &pm8941_regs },
{ },
--
1.9.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator
2016-06-17 10:22 [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
` (2 preceding siblings ...)
2016-06-17 10:22 ` [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
@ 2016-06-17 10:22 ` Neil Armstrong
2016-06-22 5:23 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
4 siblings, 1 reply; 20+ messages in thread
From: Neil Armstrong @ 2016-06-17 10:22 UTC (permalink / raw)
To: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni
Cc: Neil Armstrong, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
In order to support the Qualcomm MDM9615 SoC, add support for the
RPM regulator entries in the qcom-rpm driver.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 1 +
drivers/mfd/qcom_rpm.c | 45 ++++++++++++++++++++++
include/dt-bindings/mfd/qcom-rpm.h | 23 +++++++++++
3 files changed, 69 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
index b98b291..72d68d4 100644
--- a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
+++ b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
@@ -13,6 +13,7 @@ frequencies.
"qcom,rpm-msm8660"
"qcom,rpm-msm8960"
"qcom,rpm-ipq8064"
+ "qcom,rpm-mdm9615"
- reg:
Usage: required
diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c
index 1be47ad..81d78fb 100644
--- a/drivers/mfd/qcom_rpm.c
+++ b/drivers/mfd/qcom_rpm.c
@@ -364,11 +364,56 @@ static const struct qcom_rpm_data ipq806x_template = {
.n_resources = ARRAY_SIZE(ipq806x_rpm_resource_table),
};
+static const struct qcom_rpm_resource mdm9615_rpm_resource_table[] = {
+ [QCOM_RPM_CXO_CLK] = { 25, 9, 5, 1 },
+ [QCOM_RPM_SYS_FABRIC_CLK] = { 26, 10, 9, 1 },
+ [QCOM_RPM_DAYTONA_FABRIC_CLK] = { 27, 11, 11, 1 },
+ [QCOM_RPM_SFPB_CLK] = { 28, 12, 12, 1 },
+ [QCOM_RPM_CFPB_CLK] = { 29, 13, 13, 1 },
+ [QCOM_RPM_EBI1_CLK] = { 30, 14, 16, 1 },
+ [QCOM_RPM_APPS_FABRIC_HALT] = { 31, 15, 22, 2 },
+ [QCOM_RPM_APPS_FABRIC_MODE] = { 33, 16, 23, 3 },
+ [QCOM_RPM_APPS_FABRIC_IOCTL] = { 36, 17, 24, 1 },
+ [QCOM_RPM_APPS_FABRIC_ARB] = { 37, 18, 25, 27 },
+ [QCOM_RPM_PM8018_SMPS1] = { 64, 19, 30, 2 },
+ [QCOM_RPM_PM8018_SMPS2] = { 66, 21, 31, 2 },
+ [QCOM_RPM_PM8018_SMPS3] = { 68, 23, 32, 2 },
+ [QCOM_RPM_PM8018_SMPS4] = { 70, 25, 33, 2 },
+ [QCOM_RPM_PM8018_SMPS5] = { 72, 27, 34, 2 },
+ [QCOM_RPM_PM8018_LDO1] = { 74, 29, 35, 2 },
+ [QCOM_RPM_PM8018_LDO2] = { 76, 31, 36, 2 },
+ [QCOM_RPM_PM8018_LDO3] = { 78, 33, 37, 2 },
+ [QCOM_RPM_PM8018_LDO4] = { 80, 35, 38, 2 },
+ [QCOM_RPM_PM8018_LDO5] = { 82, 37, 39, 2 },
+ [QCOM_RPM_PM8018_LDO6] = { 84, 39, 40, 2 },
+ [QCOM_RPM_PM8018_LDO7] = { 86, 41, 41, 2 },
+ [QCOM_RPM_PM8018_LDO8] = { 88, 43, 42, 2 },
+ [QCOM_RPM_PM8018_LDO9] = { 90, 45, 43, 2 },
+ [QCOM_RPM_PM8018_LDO10] = { 92, 47, 44, 2 },
+ [QCOM_RPM_PM8018_LDO11] = { 94, 49, 45, 2 },
+ [QCOM_RPM_PM8018_LDO12] = { 96, 51, 46, 2 },
+ [QCOM_RPM_PM8018_LDO13] = { 98, 53, 47, 2 },
+ [QCOM_RPM_PM8018_LDO14] = { 100, 55, 48, 2 },
+ [QCOM_RPM_PM8018_LVS1] = { 102, 57, 49, 1 },
+ [QCOM_RPM_NCP] = { 103, 58, 80, 2 },
+ [QCOM_RPM_CXO_BUFFERS] = { 105, 60, 81, 1 },
+ [QCOM_RPM_USB_OTG_SWITCH] = { 106, 61, 82, 1 },
+ [QCOM_RPM_HDMI_SWITCH] = { 107, 62, 83, 1 },
+ [QCOM_RPM_VOLTAGE_CORNER] = { 109, 64, 87, 1 },
+};
+
+static const struct qcom_rpm_data mdm9615_template = {
+ .version = 3,
+ .resource_table = mdm9615_rpm_resource_table,
+ .n_resources = ARRAY_SIZE(mdm9615_rpm_resource_table),
+};
+
static const struct of_device_id qcom_rpm_of_match[] = {
{ .compatible = "qcom,rpm-apq8064", .data = &apq8064_template },
{ .compatible = "qcom,rpm-msm8660", .data = &msm8660_template },
{ .compatible = "qcom,rpm-msm8960", .data = &msm8960_template },
{ .compatible = "qcom,rpm-ipq8064", .data = &ipq806x_template },
+ { .compatible = "qcom,rpm-mdm9615", .data = &mdm9615_template },
{ }
};
MODULE_DEVICE_TABLE(of, qcom_rpm_of_match);
diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
index 13a9d4b..db85912 100644
--- a/include/dt-bindings/mfd/qcom-rpm.h
+++ b/include/dt-bindings/mfd/qcom-rpm.h
@@ -148,6 +148,29 @@
#define QCOM_RPM_SMB208_S2a 138
#define QCOM_RPM_SMB208_S2b 139
+#define QCOM_RPM_PM8018_SMPS1 200
+#define QCOM_RPM_PM8018_SMPS2 201
+#define QCOM_RPM_PM8018_SMPS3 202
+#define QCOM_RPM_PM8018_SMPS4 203
+#define QCOM_RPM_PM8018_SMPS5 204
+#define QCOM_RPM_PM8018_LDO1 205
+#define QCOM_RPM_PM8018_LDO2 206
+#define QCOM_RPM_PM8018_LDO3 207
+#define QCOM_RPM_PM8018_LDO4 208
+#define QCOM_RPM_PM8018_LDO5 209
+#define QCOM_RPM_PM8018_LDO6 210
+#define QCOM_RPM_PM8018_LDO7 211
+#define QCOM_RPM_PM8018_LDO8 212
+#define QCOM_RPM_PM8018_LDO9 213
+#define QCOM_RPM_PM8018_LDO10 214
+#define QCOM_RPM_PM8018_LDO11 215
+#define QCOM_RPM_PM8018_LDO12 216
+#define QCOM_RPM_PM8018_LDO13 217
+#define QCOM_RPM_PM8018_LDO14 218
+#define QCOM_RPM_PM8018_LVS1 219
+#define QCOM_RPM_NCP 220
+#define QCOM_RPM_VOLTAGE_CORNER 221
+
/*
* Constants used to select force mode for regulators.
*/
--
1.9.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
2016-06-17 10:22 [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
` (3 preceding siblings ...)
2016-06-17 10:22 ` [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
@ 2016-06-17 10:22 ` Neil Armstrong
2016-06-17 12:24 ` Mark Brown
2016-06-17 16:53 ` Bjorn Andersson
4 siblings, 2 replies; 20+ messages in thread
From: Neil Armstrong @ 2016-06-17 10:22 UTC (permalink / raw)
To: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni
Cc: Neil Armstrong, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
In order to support eh Qualcomm MDM9615 SoC, add support for the
PM8018 RPM regulator in the qcom_rpm-regulator driver.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 14 +++
drivers/regulator/qcom_rpm-regulator.c | 134 +++++++++++++++++++++
2 files changed, 148 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
index 72d68d4..d866a69 100644
--- a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
+++ b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
@@ -60,6 +60,7 @@ Regulator nodes are identified by their compatible:
"qcom,rpm-pm8058-regulators"
"qcom,rpm-pm8901-regulators"
"qcom,rpm-pm8921-regulators"
+ "qcom,rpm-pm8018-regulators"
- vdd_l0_l1_lvs-supply:
- vdd_l2_l11_l12-supply:
@@ -138,6 +139,15 @@ Regulator nodes are identified by their compatible:
Definition: reference to regulator supplying the input pin, as
described in the data sheet
+- vin_lvs1-supply:
+- vdd_l7-supply:
+- vdd_l8-supply:
+- vdd_l9_l10_l11_l12-supply:
+ Usage: optional (pm8018 only)
+ Value type: <phandle>
+ Definition: reference to regulator supplying the input pin, as
+ described in the data sheet
+
The regulator node houses sub-nodes for each regulator within the device. Each
sub-node is identified using the node's name, with valid values listed for each
of the pmics below.
@@ -157,6 +167,10 @@ pm8921:
l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
ncp
+pm8018:
+ s1, s2, s3, s4, s5, , l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
+ l12, l14, lvs1, dig_corner
+
The content of each sub-node is defined by the standard binding for regulators -
see regulator.txt - with additional custom properties described below:
diff --git a/drivers/regulator/qcom_rpm-regulator.c b/drivers/regulator/qcom_rpm-regulator.c
index e254272..93ef130 100644
--- a/drivers/regulator/qcom_rpm-regulator.c
+++ b/drivers/regulator/qcom_rpm-regulator.c
@@ -70,6 +70,45 @@ struct qcom_rpm_reg {
bool supports_force_mode_bypass;
};
+static struct rpm_reg_parts rpm8018_ldo_parts = {
+ .request_len = 2,
+ .uV = { 0, 0x007FFFFF, 0},
+ .pd = { 0, 0x00800000, 23},
+ .pc = { 0, 0x0F000000, 24},
+ .pf = { 0, 0xF0000000, 28},
+ .ip = { 1, 0x000003FF, 0},
+ .ia = { 1, 0x000FFC00, 10},
+ .fm = { 1, 0x00700000, 20},
+};
+
+static struct rpm_reg_parts rpm8018_smps_parts = {
+ .request_len = 2,
+ .uV = { 0, 0x007FFFFF, 0},
+ .pd = { 0, 0x00800000, 23},
+ .pc = { 0, 0x0F000000, 24},
+ .pf = { 0, 0xF0000000, 28},
+ .ip = { 1, 0x000003FF, 0},
+ .ia = { 1, 0x000FFC00, 10},
+ .fm = { 1, 0x00700000, 20},
+ .pm = { 1, 0x00800000, 23},
+ .freq = { 1, 0x1F000000, 24},
+ .freq_clk_src = { 1, 0x60000000, 29},
+};
+
+static struct rpm_reg_parts rpm8018_switch_parts = {
+ .request_len = 1,
+ .enable_state = { 0, 0x00000001, 0},
+ .pd = { 0, 0x00000002, 1},
+ .pc = { 0, 0x0000003C, 2},
+ .pf = { 0, 0x000003C0, 6},
+ .hpm = { 0, 0x00000C00, 10},
+};
+
+static struct rpm_reg_parts rpm8018_corner_parts = {
+ .request_len = 1,
+ .uV = { 0, 0x00000003, 0},
+};
+
static const struct rpm_reg_parts rpm8660_ldo_parts = {
.request_len = 2,
.mV = { 0, 0x00000FFF, 0 },
@@ -194,6 +233,24 @@ static const struct regulator_linear_range ncp_ranges[] = {
REGULATOR_LINEAR_RANGE(1500000, 0, 31, 50000),
};
+/**
+ * enum rpm_vreg_voltage_corner - possible voltage corner values
+ *
+ * These should be used in regulator_set_voltage and rpm_vreg_set_voltage calls
+ * for corner type regulators as if they had units of uV.
+ */
+enum rpm_vreg_voltage_corner {
+ RPM_VREG_CORNER_NONE = 1,
+ RPM_VREG_CORNER_LOW,
+ RPM_VREG_CORNER_NOMINAL,
+ RPM_VREG_CORNER_HIGH,
+};
+
+static struct regulator_linear_range corner_ranges[] = {
+ REGULATOR_LINEAR_RANGE(RPM_VREG_CORNER_NONE, 0,
+ RPM_VREG_CORNER_HIGH, 1),
+};
+
static int rpm_reg_write(struct qcom_rpm_reg *vreg,
const struct request_member *req,
const int value)
@@ -448,6 +505,52 @@ static struct regulator_ops switch_ops = {
};
/*
+ * PM8018 regulators
+ */
+static const struct qcom_rpm_reg pm8018_pldo = {
+ .desc.linear_ranges = pldo_ranges,
+ .desc.n_linear_ranges = ARRAY_SIZE(pldo_ranges),
+ .desc.n_voltages = 161,
+ .desc.ops = &uV_ops,
+ .parts = &rpm8018_ldo_parts,
+ .supports_force_mode_auto = false,
+ .supports_force_mode_bypass = false,
+};
+
+static const struct qcom_rpm_reg pm8018_nldo = {
+ .desc.linear_ranges = nldo_ranges,
+ .desc.n_linear_ranges = ARRAY_SIZE(nldo_ranges),
+ .desc.n_voltages = 64,
+ .desc.ops = &uV_ops,
+ .parts = &rpm8018_ldo_parts,
+ .supports_force_mode_auto = false,
+ .supports_force_mode_bypass = false,
+};
+
+static const struct qcom_rpm_reg pm8018_smps = {
+ .desc.linear_ranges = smps_ranges,
+ .desc.n_linear_ranges = ARRAY_SIZE(smps_ranges),
+ .desc.n_voltages = 154,
+ .desc.ops = &uV_ops,
+ .parts = &rpm8018_smps_parts,
+ .supports_force_mode_auto = false,
+ .supports_force_mode_bypass = false,
+};
+
+static const struct qcom_rpm_reg pm8018_switch = {
+ .desc.ops = &switch_ops,
+ .parts = &rpm8018_switch_parts,
+};
+
+static const struct qcom_rpm_reg pm8018_corner = {
+ .desc.linear_ranges = corner_ranges,
+ .desc.n_linear_ranges = ARRAY_SIZE(corner_ranges),
+ .desc.n_voltages = 4,
+ .desc.ops = &uV_ops,
+ .parts = &rpm8018_corner_parts,
+};
+
+/*
* PM8058 regulators
*/
static const struct qcom_rpm_reg pm8058_pldo = {
@@ -755,6 +858,35 @@ struct rpm_regulator_data {
const char *supply;
};
+static const struct rpm_regulator_data rpm_pm8018_regulators[] = {
+ { "s1", QCOM_RPM_PM8018_SMPS1, &pm8018_smps, "vdd_s1" },
+ { "s2", QCOM_RPM_PM8018_SMPS2, &pm8018_smps, "vdd_s2" },
+ { "s3", QCOM_RPM_PM8018_SMPS3, &pm8018_smps, "vdd_s3" },
+ { "s4", QCOM_RPM_PM8018_SMPS4, &pm8018_smps, "vdd_s4" },
+ { "s5", QCOM_RPM_PM8018_SMPS5, &pm8018_smps, "vdd_s5" },
+
+ { "l2", QCOM_RPM_PM8018_LDO2, &pm8018_pldo, "vdd_l2" },
+ { "l3", QCOM_RPM_PM8018_LDO3, &pm8018_pldo, "vdd_l3" },
+ { "l4", QCOM_RPM_PM8018_LDO4, &pm8018_pldo, "vdd_l4" },
+ { "l5", QCOM_RPM_PM8018_LDO5, &pm8018_pldo, "vdd_l5" },
+ { "l6", QCOM_RPM_PM8018_LDO6, &pm8018_pldo, "vdd_l7" },
+ { "l7", QCOM_RPM_PM8018_LDO7, &pm8018_pldo, "vdd_l7" },
+ { "l8", QCOM_RPM_PM8018_LDO8, &pm8018_nldo, "vdd_l8" },
+ { "l9", QCOM_RPM_PM8018_LDO9, &pm8921_nldo1200,
+ "vdd_l9_l10_l11_l12" },
+ { "l10", QCOM_RPM_PM8018_LDO10, &pm8018_nldo, "vdd_l9_l10_l11_l12" },
+ { "l11", QCOM_RPM_PM8018_LDO11, &pm8018_nldo, "vdd_l9_l10_l11_l12" },
+ { "l12", QCOM_RPM_PM8018_LDO12, &pm8018_nldo, "vdd_l9_l10_l11_l12" },
+ { "l14", QCOM_RPM_PM8018_LDO14, &pm8018_pldo, "vdd_l14" },
+
+ { "lvs1", QCOM_RPM_PM8018_LVS1, &pm8018_switch, "lvs1_in" },
+
+ { "dig_corner", QCOM_RPM_VOLTAGE_CORNER, &pm8018_corner,
+ "vdd_dig_corner" },
+
+ { }
+};
+
static const struct rpm_regulator_data rpm_pm8058_regulators[] = {
{ "l0", QCOM_RPM_PM8058_LDO0, &pm8058_nldo, "vdd_l0_l1_lvs" },
{ "l1", QCOM_RPM_PM8058_LDO1, &pm8058_nldo, "vdd_l0_l1_lvs" },
@@ -870,6 +1002,8 @@ static const struct rpm_regulator_data rpm_pm8921_regulators[] = {
};
static const struct of_device_id rpm_of_match[] = {
+ { .compatible = "qcom,rpm-pm8018-regulators",
+ .data = &rpm_pm8018_regulators },
{ .compatible = "qcom,rpm-pm8058-regulators", .data = &rpm_pm8058_regulators },
{ .compatible = "qcom,rpm-pm8901-regulators", .data = &rpm_pm8901_regulators },
{ .compatible = "qcom,rpm-pm8921-regulators", .data = &rpm_pm8921_regulators },
--
1.9.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
2016-06-17 10:22 ` [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
@ 2016-06-17 12:24 ` Mark Brown
2016-06-17 16:53 ` Bjorn Andersson
1 sibling, 0 replies; 20+ messages in thread
From: Mark Brown @ 2016-06-17 12:24 UTC (permalink / raw)
To: Neil Armstrong
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
[-- Attachment #1: Type: text/plain, Size: 231 bytes --]
On Fri, Jun 17, 2016 at 12:22:09PM +0200, Neil Armstrong wrote:
> In order to support eh Qualcomm MDM9615 SoC, add support for the
> PM8018 RPM regulator in the qcom_rpm-regulator driver.
Acked-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
2016-06-17 10:22 ` [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
2016-06-17 12:24 ` Mark Brown
@ 2016-06-17 16:53 ` Bjorn Andersson
2016-06-18 9:47 ` Mark Brown
` (2 more replies)
1 sibling, 3 replies; 20+ messages in thread
From: Bjorn Andersson @ 2016-06-17 16:53 UTC (permalink / raw)
To: Neil Armstrong
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
> In order to support eh Qualcomm MDM9615 SoC, add support for the
> PM8018 RPM regulator in the qcom_rpm-regulator driver.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
[..]
> diff --git a/drivers/regulator/qcom_rpm-regulator.c b/drivers/regulator/qcom_rpm-regulator.c
[..]
> +/**
> + * enum rpm_vreg_voltage_corner - possible voltage corner values
> + *
> + * These should be used in regulator_set_voltage and rpm_vreg_set_voltage calls
> + * for corner type regulators as if they had units of uV.
> + */
> +enum rpm_vreg_voltage_corner {
> + RPM_VREG_CORNER_NONE = 1,
> + RPM_VREG_CORNER_LOW,
> + RPM_VREG_CORNER_NOMINAL,
> + RPM_VREG_CORNER_HIGH,
> +};
> +
> +static struct regulator_linear_range corner_ranges[] = {
> + REGULATOR_LINEAR_RANGE(RPM_VREG_CORNER_NONE, 0,
> + RPM_VREG_CORNER_HIGH, 1),
> +};
> +
> static int rpm_reg_write(struct qcom_rpm_reg *vreg,
[..]
> +
> +static const struct qcom_rpm_reg pm8018_corner = {
> + .desc.linear_ranges = corner_ranges,
> + .desc.n_linear_ranges = ARRAY_SIZE(corner_ranges),
> + .desc.n_voltages = 4,
> + .desc.ops = &uV_ops,
> + .parts = &rpm8018_corner_parts,
> +};
> +
[..]
> +static const struct rpm_regulator_data rpm_pm8018_regulators[] = {
[..]
> + { "dig_corner", QCOM_RPM_VOLTAGE_CORNER, &pm8018_corner,
> + "vdd_dig_corner" },
> +
> + { }
> +};
We have discussed the corners for a long time and I think we've
concluded that they should be exposed as something like an OPP. What we
have agreed on is that they should not be exposed as a regulator with
voltages 1-4uV.
So please drop the corner for now.
Regards,
Bjorn
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
2016-06-17 16:53 ` Bjorn Andersson
@ 2016-06-18 9:47 ` Mark Brown
2016-06-20 9:03 ` Neil Armstrong
2016-06-22 8:39 ` Neil Armstrong
2 siblings, 0 replies; 20+ messages in thread
From: Mark Brown @ 2016-06-18 9:47 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Neil Armstrong, dmitry.torokhov, andy.gross, david.brown,
lee.jones, lgirdwood, a.zummo, alexandre.belloni, linux-input,
linux-kernel, linux-arm-msm, linux-soc, rtc-linux
[-- Attachment #1: Type: text/plain, Size: 566 bytes --]
On Fri, Jun 17, 2016 at 09:53:52AM -0700, Bjorn Andersson wrote:
> On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
> > + { "dig_corner", QCOM_RPM_VOLTAGE_CORNER, &pm8018_corner,
> > + "vdd_dig_corner" },
> > +
> > + { }
> > +};
> We have discussed the corners for a long time and I think we've
> concluded that they should be exposed as something like an OPP. What we
> have agreed on is that they should not be exposed as a regulator with
> voltages 1-4uV.
Oops, missed this - yes, that needs to go as it's definitely a complete
abuse of the API.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
2016-06-17 10:22 ` [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
@ 2016-06-18 16:21 ` Dmitry Torokhov
2016-06-22 5:25 ` Bjorn Andersson
1 sibling, 0 replies; 20+ messages in thread
From: Dmitry Torokhov @ 2016-06-18 16:21 UTC (permalink / raw)
To: Neil Armstrong
Cc: andy.gross, david.brown, lee.jones, lgirdwood, broonie, a.zummo,
alexandre.belloni, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
Hi Neil,
On Fri, Jun 17, 2016 at 12:22:06PM +0200, Neil Armstrong wrote:
> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
> for the pm8018 pwrkey in pmic8xxx-pwrkey.
Why do we need a new compat string if IP block is compatible with 8921?
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt | 1 +
> drivers/input/misc/pmic8xxx-pwrkey.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt b/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
> index 588536c..9e530e2 100644
> --- a/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
> +++ b/Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
> @@ -8,6 +8,7 @@ PROPERTIES
> Definition: must be one of:
> "qcom,pm8058-pwrkey"
> "qcom,pm8921-pwrkey"
> + "qcom,pm8018-pwrkey"
>
> - reg:
> Usage: required
> diff --git a/drivers/input/misc/pmic8xxx-pwrkey.c b/drivers/input/misc/pmic8xxx-pwrkey.c
> index 67aab86..f6f9b87 100644
> --- a/drivers/input/misc/pmic8xxx-pwrkey.c
> +++ b/drivers/input/misc/pmic8xxx-pwrkey.c
> @@ -446,6 +446,7 @@ static int pmic8xxx_pwrkey_remove(struct platform_device *pdev)
> }
>
> static const struct of_device_id pm8xxx_pwr_key_id_table[] = {
> + { .compatible = "qcom,pm8018-pwrkey", .data = &pm8921_pwrkey_shutdown },
> { .compatible = "qcom,pm8058-pwrkey", .data = &pm8058_pwrkey_shutdown },
> { .compatible = "qcom,pm8921-pwrkey", .data = &pm8921_pwrkey_shutdown },
> { }
> --
> 1.9.1
>
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
2016-06-17 16:53 ` Bjorn Andersson
2016-06-18 9:47 ` Mark Brown
@ 2016-06-20 9:03 ` Neil Armstrong
2016-06-22 8:39 ` Neil Armstrong
2 siblings, 0 replies; 20+ messages in thread
From: Neil Armstrong @ 2016-06-20 9:03 UTC (permalink / raw)
To: Bjorn Andersson
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
On 06/17/2016 06:53 PM, Bjorn Andersson wrote:
> On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
>
>> In order to support eh Qualcomm MDM9615 SoC, add support for the
>> PM8018 RPM regulator in the qcom_rpm-regulator driver.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> [..]
>> diff --git a/drivers/regulator/qcom_rpm-regulator.c b/drivers/regulator/qcom_rpm-regulator.c
> [..]
>> +/**
>> + * enum rpm_vreg_voltage_corner - possible voltage corner values
>> + *
>> + * These should be used in regulator_set_voltage and rpm_vreg_set_voltage calls
>> + * for corner type regulators as if they had units of uV.
>> + */
>> +enum rpm_vreg_voltage_corner {
>> + RPM_VREG_CORNER_NONE = 1,
>> + RPM_VREG_CORNER_LOW,
>> + RPM_VREG_CORNER_NOMINAL,
>> + RPM_VREG_CORNER_HIGH,
>> +};
>> +
>> +static struct regulator_linear_range corner_ranges[] = {
>> + REGULATOR_LINEAR_RANGE(RPM_VREG_CORNER_NONE, 0,
>> + RPM_VREG_CORNER_HIGH, 1),
>> +};
>> +
>> static int rpm_reg_write(struct qcom_rpm_reg *vreg,
> [..]
>> +
>> +static const struct qcom_rpm_reg pm8018_corner = {
>> + .desc.linear_ranges = corner_ranges,
>> + .desc.n_linear_ranges = ARRAY_SIZE(corner_ranges),
>> + .desc.n_voltages = 4,
>> + .desc.ops = &uV_ops,
>> + .parts = &rpm8018_corner_parts,
>> +};
>> +
> [..]
>> +static const struct rpm_regulator_data rpm_pm8018_regulators[] = {
> [..]
>> + { "dig_corner", QCOM_RPM_VOLTAGE_CORNER, &pm8018_corner,
>> + "vdd_dig_corner" },
>> +
>> + { }
>> +};
>
> We have discussed the corners for a long time and I think we've
> concluded that they should be exposed as something like an OPP. What we
> have agreed on is that they should not be exposed as a regulator with
> voltages 1-4uV.
>
> So please drop the corner for now.
OK,
Thanks,
Neil
>
> Regards,
> Bjorn
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc
2016-06-17 10:22 ` [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
@ 2016-06-21 16:24 ` Alexandre Belloni
2016-06-22 5:06 ` Bjorn Andersson
1 sibling, 0 replies; 20+ messages in thread
From: Alexandre Belloni @ 2016-06-21 16:24 UTC (permalink / raw)
To: Neil Armstrong
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, linux-input, linux-kernel, linux-arm-msm,
linux-soc, rtc-linux
On 17/06/2016 at 12:22:07 +0200, Neil Armstrong wrote :
> In order to support RTC on Qualcomm MDM9615 SoC, add support for
> the pm8018 rtc in rtc-pm8xxx driver.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc
2016-06-17 10:22 ` [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
2016-06-21 16:24 ` Alexandre Belloni
@ 2016-06-22 5:06 ` Bjorn Andersson
1 sibling, 0 replies; 20+ messages in thread
From: Bjorn Andersson @ 2016-06-22 5:06 UTC (permalink / raw)
To: Neil Armstrong
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
> In order to support RTC on Qualcomm MDM9615 SoC, add support for
> the pm8018 rtc in rtc-pm8xxx driver.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt | 1 +
> drivers/rtc/rtc-pm8xxx.c | 11 +++++++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
> index f24f334..37a088f 100644
> --- a/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
> +++ b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
> @@ -62,6 +62,7 @@ The below bindings specify the set of valid subnodes.
> "qcom,pm8058-rtc"
> "qcom,pm8921-rtc"
> "qcom,pm8941-rtc"
> + "qcom,pm8018-rtc"
Would be nice if we kept this sorted, but the patch looks good.
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/5] mfd: pm8921: Add support for pm8018
2016-06-17 10:22 ` [PATCH 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
@ 2016-06-22 5:07 ` Bjorn Andersson
0 siblings, 0 replies; 20+ messages in thread
From: Bjorn Andersson @ 2016-06-22 5:07 UTC (permalink / raw)
To: Neil Armstrong
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
> In order to support the Qualcomm MDM9615 PMIC, add support for the
> pm8018 in pm8921 mfd driver.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator
2016-06-17 10:22 ` [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
@ 2016-06-22 5:23 ` Bjorn Andersson
2016-06-22 8:34 ` Neil Armstrong
0 siblings, 1 reply; 20+ messages in thread
From: Bjorn Andersson @ 2016-06-22 5:23 UTC (permalink / raw)
To: Neil Armstrong
Cc: linus.walleij, dmitry.torokhov, andy.gross, david.brown,
lee.jones, lgirdwood, broonie, a.zummo, alexandre.belloni,
linux-input, linux-kernel, linux-arm-msm, linux-soc, rtc-linux
On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
[..]
> diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c
[..]
> +
> +static const struct qcom_rpm_data mdm9615_template = {
> + .version = 3,
> + .resource_table = mdm9615_rpm_resource_table,
> + .n_resources = ARRAY_SIZE(mdm9615_rpm_resource_table),
> +};
Please see:
https://patchwork.kernel.org/patch/9177159/
You should set the new .sel_size to 4 here, please either rebase ontop
of Linus patch or send an update after both are merged.
> +
> static const struct of_device_id qcom_rpm_of_match[] = {
> { .compatible = "qcom,rpm-apq8064", .data = &apq8064_template },
> { .compatible = "qcom,rpm-msm8660", .data = &msm8660_template },
> { .compatible = "qcom,rpm-msm8960", .data = &msm8960_template },
> { .compatible = "qcom,rpm-ipq8064", .data = &ipq806x_template },
> + { .compatible = "qcom,rpm-mdm9615", .data = &mdm9615_template },
> { }
> };
> MODULE_DEVICE_TABLE(of, qcom_rpm_of_match);
> diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
> index 13a9d4b..db85912 100644
> --- a/include/dt-bindings/mfd/qcom-rpm.h
> +++ b/include/dt-bindings/mfd/qcom-rpm.h
> @@ -148,6 +148,29 @@
> #define QCOM_RPM_SMB208_S2a 138
> #define QCOM_RPM_SMB208_S2b 139
>
> +#define QCOM_RPM_PM8018_SMPS1 200
These numbers are a logical identifier and as such you shouldn't skip
140-199.
> +#define QCOM_RPM_PM8018_SMPS2 201
> +#define QCOM_RPM_PM8018_SMPS3 202
> +#define QCOM_RPM_PM8018_SMPS4 203
> +#define QCOM_RPM_PM8018_SMPS5 204
> +#define QCOM_RPM_PM8018_LDO1 205
> +#define QCOM_RPM_PM8018_LDO2 206
> +#define QCOM_RPM_PM8018_LDO3 207
> +#define QCOM_RPM_PM8018_LDO4 208
> +#define QCOM_RPM_PM8018_LDO5 209
> +#define QCOM_RPM_PM8018_LDO6 210
> +#define QCOM_RPM_PM8018_LDO7 211
> +#define QCOM_RPM_PM8018_LDO8 212
> +#define QCOM_RPM_PM8018_LDO9 213
> +#define QCOM_RPM_PM8018_LDO10 214
> +#define QCOM_RPM_PM8018_LDO11 215
> +#define QCOM_RPM_PM8018_LDO12 216
> +#define QCOM_RPM_PM8018_LDO13 217
> +#define QCOM_RPM_PM8018_LDO14 218
> +#define QCOM_RPM_PM8018_LVS1 219
> +#define QCOM_RPM_NCP 220
We already have PM8921_NCP and PM8058_NCP, so better make this
QCOM_RPM_PM8018_NCP for consistency.
> +#define QCOM_RPM_VOLTAGE_CORNER 221
> +
Other then these details
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
2016-06-17 10:22 ` [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
2016-06-18 16:21 ` Dmitry Torokhov
@ 2016-06-22 5:25 ` Bjorn Andersson
2016-06-22 5:33 ` Dmitry Torokhov
1 sibling, 1 reply; 20+ messages in thread
From: Bjorn Andersson @ 2016-06-22 5:25 UTC (permalink / raw)
To: Neil Armstrong
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
> for the pm8018 pwrkey in pmic8xxx-pwrkey.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
2016-06-22 5:25 ` Bjorn Andersson
@ 2016-06-22 5:33 ` Dmitry Torokhov
0 siblings, 0 replies; 20+ messages in thread
From: Dmitry Torokhov @ 2016-06-22 5:33 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Neil Armstrong, Andy Gross, David Brown, Lee Jones,
Liam Girdwood, Mark Brown, Alessandro Zummo, Alexandre Belloni,
linux-input, lkml, linux-arm-msm, linux-soc, RTCLINUX
On Tue, Jun 21, 2016 at 10:25 PM, Bjorn Andersson
<bjorn.andersson@linaro.org> wrote:
> On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
>
>> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
>> for the pm8018 pwrkey in pmic8xxx-pwrkey.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
But why? What does this new compat string gives us if the behavior is
exactly the same as 8921?
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator
2016-06-22 5:23 ` Bjorn Andersson
@ 2016-06-22 8:34 ` Neil Armstrong
2016-06-22 15:52 ` Bjorn Andersson
0 siblings, 1 reply; 20+ messages in thread
From: Neil Armstrong @ 2016-06-22 8:34 UTC (permalink / raw)
To: Bjorn Andersson
Cc: linus.walleij, dmitry.torokhov, andy.gross, david.brown,
lee.jones, lgirdwood, broonie, a.zummo, alexandre.belloni,
linux-input, linux-kernel, linux-arm-msm, linux-soc, rtc-linux
On 06/22/2016 07:23 AM, Bjorn Andersson wrote:
> On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
>
> [..]
>> diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c
> [..]
>> +
>> +static const struct qcom_rpm_data mdm9615_template = {
>> + .version = 3,
>> + .resource_table = mdm9615_rpm_resource_table,
>> + .n_resources = ARRAY_SIZE(mdm9615_rpm_resource_table),
>> +};
>
> Please see:
> https://patchwork.kernel.org/patch/9177159/
>
> You should set the new .sel_size to 4 here, please either rebase ontop
> of Linus patch or send an update after both are merged.
>
>> +
>> static const struct of_device_id qcom_rpm_of_match[] = {
>> { .compatible = "qcom,rpm-apq8064", .data = &apq8064_template },
>> { .compatible = "qcom,rpm-msm8660", .data = &msm8660_template },
>> { .compatible = "qcom,rpm-msm8960", .data = &msm8960_template },
>> { .compatible = "qcom,rpm-ipq8064", .data = &ipq806x_template },
>> + { .compatible = "qcom,rpm-mdm9615", .data = &mdm9615_template },
>> { }
>> };
>> MODULE_DEVICE_TABLE(of, qcom_rpm_of_match);
>> diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
>> index 13a9d4b..db85912 100644
>> --- a/include/dt-bindings/mfd/qcom-rpm.h
>> +++ b/include/dt-bindings/mfd/qcom-rpm.h
>> @@ -148,6 +148,29 @@
>> #define QCOM_RPM_SMB208_S2a 138
>> #define QCOM_RPM_SMB208_S2b 139
>>
>> +#define QCOM_RPM_PM8018_SMPS1 200
>
> These numbers are a logical identifier and as such you shouldn't skip
> 140-199.
>
>> +#define QCOM_RPM_PM8018_SMPS2 201
>> +#define QCOM_RPM_PM8018_SMPS3 202
>> +#define QCOM_RPM_PM8018_SMPS4 203
>> +#define QCOM_RPM_PM8018_SMPS5 204
>> +#define QCOM_RPM_PM8018_LDO1 205
>> +#define QCOM_RPM_PM8018_LDO2 206
>> +#define QCOM_RPM_PM8018_LDO3 207
>> +#define QCOM_RPM_PM8018_LDO4 208
>> +#define QCOM_RPM_PM8018_LDO5 209
>> +#define QCOM_RPM_PM8018_LDO6 210
>> +#define QCOM_RPM_PM8018_LDO7 211
>> +#define QCOM_RPM_PM8018_LDO8 212
>> +#define QCOM_RPM_PM8018_LDO9 213
>> +#define QCOM_RPM_PM8018_LDO10 214
>> +#define QCOM_RPM_PM8018_LDO11 215
>> +#define QCOM_RPM_PM8018_LDO12 216
>> +#define QCOM_RPM_PM8018_LDO13 217
>> +#define QCOM_RPM_PM8018_LDO14 218
>> +#define QCOM_RPM_PM8018_LVS1 219
>> +#define QCOM_RPM_NCP 220
>
> We already have PM8921_NCP and PM8058_NCP, so better make this
> QCOM_RPM_PM8018_NCP for consistency.
>
>> +#define QCOM_RPM_VOLTAGE_CORNER 221
>> +
>
> Other then these details
> Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
>
> Regards,
> Bjorn
>
Thanks,
I rebased on Linus two patches ("fix offset error for msm8660" and "parametrize also ack selector size")
I suppose I should also drop the QCOM_RPM_VOLTAGE_CORNER rpm entry also ?
Neil
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
2016-06-17 16:53 ` Bjorn Andersson
2016-06-18 9:47 ` Mark Brown
2016-06-20 9:03 ` Neil Armstrong
@ 2016-06-22 8:39 ` Neil Armstrong
2 siblings, 0 replies; 20+ messages in thread
From: Neil Armstrong @ 2016-06-22 8:39 UTC (permalink / raw)
To: Bjorn Andersson
Cc: dmitry.torokhov, andy.gross, david.brown, lee.jones, lgirdwood,
broonie, a.zummo, alexandre.belloni, linux-input, linux-kernel,
linux-arm-msm, linux-soc, rtc-linux
On 06/17/2016 06:53 PM, Bjorn Andersson wrote:
> On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
>
>> In order to support eh Qualcomm MDM9615 SoC, add support for the
>> PM8018 RPM regulator in the qcom_rpm-regulator driver.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> [..]
>> diff --git a/drivers/regulator/qcom_rpm-regulator.c b/drivers/regulator/qcom_rpm-regulator.c
> [..]
>> +/**
>> + * enum rpm_vreg_voltage_corner - possible voltage corner values
>> + *
>> + * These should be used in regulator_set_voltage and rpm_vreg_set_voltage calls
>> + * for corner type regulators as if they had units of uV.
>> + */
>> +enum rpm_vreg_voltage_corner {
>> + RPM_VREG_CORNER_NONE = 1,
>> + RPM_VREG_CORNER_LOW,
>> + RPM_VREG_CORNER_NOMINAL,
>> + RPM_VREG_CORNER_HIGH,
>> +};
>> +
>> +static struct regulator_linear_range corner_ranges[] = {
>> + REGULATOR_LINEAR_RANGE(RPM_VREG_CORNER_NONE, 0,
>> + RPM_VREG_CORNER_HIGH, 1),
>> +};
>> +
>> static int rpm_reg_write(struct qcom_rpm_reg *vreg,
> [..]
>> +
>> +static const struct qcom_rpm_reg pm8018_corner = {
>> + .desc.linear_ranges = corner_ranges,
>> + .desc.n_linear_ranges = ARRAY_SIZE(corner_ranges),
>> + .desc.n_voltages = 4,
>> + .desc.ops = &uV_ops,
>> + .parts = &rpm8018_corner_parts,
>> +};
>> +
> [..]
>> +static const struct rpm_regulator_data rpm_pm8018_regulators[] = {
> [..]
>> + { "dig_corner", QCOM_RPM_VOLTAGE_CORNER, &pm8018_corner,
>> + "vdd_dig_corner" },
>> +
>> + { }
>> +};
>
> We have discussed the corners for a long time and I think we've
> concluded that they should be exposed as something like an OPP. What we
> have agreed on is that they should not be exposed as a regulator with
> voltages 1-4uV.
>
> So please drop the corner for now.
>
> Regards,
> Bjorn
>
OK, dropped.
Thanks,
Neil
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator
2016-06-22 8:34 ` Neil Armstrong
@ 2016-06-22 15:52 ` Bjorn Andersson
0 siblings, 0 replies; 20+ messages in thread
From: Bjorn Andersson @ 2016-06-22 15:52 UTC (permalink / raw)
To: Neil Armstrong
Cc: linus.walleij, dmitry.torokhov, andy.gross, david.brown,
lee.jones, lgirdwood, broonie, a.zummo, alexandre.belloni,
linux-input, linux-kernel, linux-arm-msm, linux-soc, rtc-linux
On Wed 22 Jun 01:34 PDT 2016, Neil Armstrong wrote:
> On 06/22/2016 07:23 AM, Bjorn Andersson wrote:
> > On Fri 17 Jun 03:22 PDT 2016, Neil Armstrong wrote:
> >
> > [..]
> >> diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c
> > [..]
> >> +
> >> +static const struct qcom_rpm_data mdm9615_template = {
> >> + .version = 3,
> >> + .resource_table = mdm9615_rpm_resource_table,
> >> + .n_resources = ARRAY_SIZE(mdm9615_rpm_resource_table),
> >> +};
> >
> > Please see:
> > https://patchwork.kernel.org/patch/9177159/
> >
> > You should set the new .sel_size to 4 here, please either rebase ontop
> > of Linus patch or send an update after both are merged.
> >
> >> +
> >> static const struct of_device_id qcom_rpm_of_match[] = {
> >> { .compatible = "qcom,rpm-apq8064", .data = &apq8064_template },
> >> { .compatible = "qcom,rpm-msm8660", .data = &msm8660_template },
> >> { .compatible = "qcom,rpm-msm8960", .data = &msm8960_template },
> >> { .compatible = "qcom,rpm-ipq8064", .data = &ipq806x_template },
> >> + { .compatible = "qcom,rpm-mdm9615", .data = &mdm9615_template },
> >> { }
> >> };
> >> MODULE_DEVICE_TABLE(of, qcom_rpm_of_match);
> >> diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
> >> index 13a9d4b..db85912 100644
> >> --- a/include/dt-bindings/mfd/qcom-rpm.h
> >> +++ b/include/dt-bindings/mfd/qcom-rpm.h
> >> @@ -148,6 +148,29 @@
> >> #define QCOM_RPM_SMB208_S2a 138
> >> #define QCOM_RPM_SMB208_S2b 139
> >>
> >> +#define QCOM_RPM_PM8018_SMPS1 200
> >
> > These numbers are a logical identifier and as such you shouldn't skip
> > 140-199.
> >
> >> +#define QCOM_RPM_PM8018_SMPS2 201
> >> +#define QCOM_RPM_PM8018_SMPS3 202
> >> +#define QCOM_RPM_PM8018_SMPS4 203
> >> +#define QCOM_RPM_PM8018_SMPS5 204
> >> +#define QCOM_RPM_PM8018_LDO1 205
> >> +#define QCOM_RPM_PM8018_LDO2 206
> >> +#define QCOM_RPM_PM8018_LDO3 207
> >> +#define QCOM_RPM_PM8018_LDO4 208
> >> +#define QCOM_RPM_PM8018_LDO5 209
> >> +#define QCOM_RPM_PM8018_LDO6 210
> >> +#define QCOM_RPM_PM8018_LDO7 211
> >> +#define QCOM_RPM_PM8018_LDO8 212
> >> +#define QCOM_RPM_PM8018_LDO9 213
> >> +#define QCOM_RPM_PM8018_LDO10 214
> >> +#define QCOM_RPM_PM8018_LDO11 215
> >> +#define QCOM_RPM_PM8018_LDO12 216
> >> +#define QCOM_RPM_PM8018_LDO13 217
> >> +#define QCOM_RPM_PM8018_LDO14 218
> >> +#define QCOM_RPM_PM8018_LVS1 219
> >> +#define QCOM_RPM_NCP 220
> >
> > We already have PM8921_NCP and PM8058_NCP, so better make this
> > QCOM_RPM_PM8018_NCP for consistency.
> >
> >> +#define QCOM_RPM_VOLTAGE_CORNER 221
> >> +
> >
> > Other then these details
> > Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> >
> > Regards,
> > Bjorn
> >
> Thanks,
>
> I rebased on Linus two patches ("fix offset error for msm8660" and "parametrize also ack selector size")
>
> I suppose I should also drop the QCOM_RPM_VOLTAGE_CORNER rpm entry also ?
The open question is how we expose the corner to client drivers, but
it's still part of the rpm protocol. So please leave it here.
Regards,
Bjorn
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2016-06-22 15:52 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-17 10:22 [PATCH 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
2016-06-17 10:22 ` [PATCH 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
2016-06-22 5:07 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
2016-06-18 16:21 ` Dmitry Torokhov
2016-06-22 5:25 ` Bjorn Andersson
2016-06-22 5:33 ` Dmitry Torokhov
2016-06-17 10:22 ` [PATCH 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
2016-06-21 16:24 ` Alexandre Belloni
2016-06-22 5:06 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
2016-06-22 5:23 ` Bjorn Andersson
2016-06-22 8:34 ` Neil Armstrong
2016-06-22 15:52 ` Bjorn Andersson
2016-06-17 10:22 ` [PATCH 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
2016-06-17 12:24 ` Mark Brown
2016-06-17 16:53 ` Bjorn Andersson
2016-06-18 9:47 ` Mark Brown
2016-06-20 9:03 ` Neil Armstrong
2016-06-22 8:39 ` Neil Armstrong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).