linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC
@ 2016-06-24  9:18 Neil Armstrong
  2016-06-24  9:18 ` [PATCH v2 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Neil Armstrong @ 2016-06-24  9:18 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.

Patch "mfd: qcom-rpm: Add support for pm8018 RPM Regulator" depends on :
 - "fix offset error for msm8660" at http://lkml.kernel.org/r/1465897725-16213-1-git-send-email-linus.walleij@linaro.org
 - "parametrize also ack selector size" at http://lkml.kernel.org/r/1466576837-21995-1-git-send-email-linus.walleij@linaro.org

Changes since v1 at http://lkml.kernel.org/r/1466158929-19524-1-git-send-email-narmstrong@baylibre.com :
 - Rebase mfd/qcom_rpm.c on top of Linus "fix offset error for msm8660" and "parametrize also ack selector size" patches
 - Rename QCOM_RPM_NCP in to QCOM_RPM_PM8018_NCP
 - Rebased qcom-rpm.h PM8018 defines numbers without a gap
 - Dropped regulator corner

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                             |  51 +++++++++++
 drivers/regulator/qcom_rpm-regulator.c             | 100 +++++++++++++++++++++
 drivers/rtc/rtc-pm8xxx.c                           |  11 +++
 include/dt-bindings/mfd/qcom-rpm.h                 |  22 +++++
 9 files changed, 203 insertions(+)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v2 1/5] mfd: pm8921: Add support for pm8018
  2016-06-24  9:18 [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
@ 2016-06-24  9:18 ` Neil Armstrong
  2016-06-28 15:10   ` Lee Jones
  2016-06-24  9:18 ` [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Neil Armstrong @ 2016-06-24  9:18 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.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
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] 13+ messages in thread

* [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
  2016-06-24  9:18 [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
  2016-06-24  9:18 ` [PATCH v2 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
@ 2016-06-24  9:18 ` Neil Armstrong
  2016-06-24 22:07   ` Dmitry Torokhov
  2016-06-24  9:18 ` [PATCH v2 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Neil Armstrong @ 2016-06-24  9:18 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.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
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] 13+ messages in thread

* [PATCH v2 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc
  2016-06-24  9:18 [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
  2016-06-24  9:18 ` [PATCH v2 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
  2016-06-24  9:18 ` [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
@ 2016-06-24  9:18 ` Neil Armstrong
  2016-06-24  9:18 ` [PATCH v2 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
  2016-06-24  9:18 ` [PATCH v2 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
  4 siblings, 0 replies; 13+ messages in thread
From: Neil Armstrong @ 2016-06-24  9:18 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.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
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] 13+ messages in thread

* [PATCH v2 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator
  2016-06-24  9:18 [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
                   ` (2 preceding siblings ...)
  2016-06-24  9:18 ` [PATCH v2 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
@ 2016-06-24  9:18 ` Neil Armstrong
  2016-06-28 15:09   ` Lee Jones
  2016-06-24  9:18 ` [PATCH v2 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
  4 siblings, 1 reply; 13+ messages in thread
From: Neil Armstrong @ 2016-06-24  9:18 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.

Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 Documentation/devicetree/bindings/mfd/qcom-rpm.txt |  1 +
 drivers/mfd/qcom_rpm.c                             | 51 ++++++++++++++++++++++
 include/dt-bindings/mfd/qcom-rpm.h                 | 22 ++++++++++
 3 files changed, 74 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 880d469..c309ebe 100644
--- a/drivers/mfd/qcom_rpm.c
+++ b/drivers/mfd/qcom_rpm.c
@@ -390,11 +390,62 @@ static const struct qcom_rpm_data ipq806x_template = {
 	.ack_sel_size = 7,
 };
 
+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_PM8018_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),
+	.req_ctx_off = 3,
+	.req_sel_off = 11,
+	.ack_ctx_off = 15,
+	.ack_sel_off = 23,
+	.req_sel_size = 4,
+	.ack_sel_size = 7,
+};
+
 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..54aef5e 100644
--- a/include/dt-bindings/mfd/qcom-rpm.h
+++ b/include/dt-bindings/mfd/qcom-rpm.h
@@ -147,6 +147,28 @@
 #define QCOM_RPM_SMB208_S1b			137
 #define QCOM_RPM_SMB208_S2a			138
 #define QCOM_RPM_SMB208_S2b			139
+#define QCOM_RPM_PM8018_SMPS1			140
+#define QCOM_RPM_PM8018_SMPS2			141
+#define QCOM_RPM_PM8018_SMPS3			142
+#define QCOM_RPM_PM8018_SMPS4			143
+#define QCOM_RPM_PM8018_SMPS5			144
+#define QCOM_RPM_PM8018_LDO1			145
+#define QCOM_RPM_PM8018_LDO2			146
+#define QCOM_RPM_PM8018_LDO3			147
+#define QCOM_RPM_PM8018_LDO4			148
+#define QCOM_RPM_PM8018_LDO5			149
+#define QCOM_RPM_PM8018_LDO6			150
+#define QCOM_RPM_PM8018_LDO7			151
+#define QCOM_RPM_PM8018_LDO8			152
+#define QCOM_RPM_PM8018_LDO9			153
+#define QCOM_RPM_PM8018_LDO10			154
+#define QCOM_RPM_PM8018_LDO11			155
+#define QCOM_RPM_PM8018_LDO12			156
+#define QCOM_RPM_PM8018_LDO13			157
+#define QCOM_RPM_PM8018_LDO14			158
+#define QCOM_RPM_PM8018_LVS1			159
+#define QCOM_RPM_PM8018_NCP			160
+#define QCOM_RPM_VOLTAGE_CORNER			161
 
 /*
  * Constants used to select force mode for regulators.
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v2 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
  2016-06-24  9:18 [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
                   ` (3 preceding siblings ...)
  2016-06-24  9:18 ` [PATCH v2 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
@ 2016-06-24  9:18 ` Neil Armstrong
  2016-06-24 10:31   ` Mark Brown
  4 siblings, 1 reply; 13+ messages in thread
From: Neil Armstrong @ 2016-06-24  9:18 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             | 100 +++++++++++++++++++++
 2 files changed, 114 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
index 72d68d4..485bc59 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
+
 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..0734a5f 100644
--- a/drivers/regulator/qcom_rpm-regulator.c
+++ b/drivers/regulator/qcom_rpm-regulator.c
@@ -70,6 +70,40 @@ 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 const struct rpm_reg_parts rpm8660_ldo_parts = {
 	.request_len    = 2,
 	.mV             = { 0, 0x00000FFF,  0 },
@@ -448,6 +482,44 @@ 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,
+};
+
+/*
  * PM8058 regulators
  */
 static const struct qcom_rpm_reg pm8058_pldo = {
@@ -755,6 +827,32 @@ 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" },
+
+	{ }
+};
+
 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 +968,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] 13+ messages in thread

* Re: [PATCH v2 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator
  2016-06-24  9:18 ` [PATCH v2 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
@ 2016-06-24 10:31   ` Mark Brown
  0 siblings, 0 replies; 13+ messages in thread
From: Mark Brown @ 2016-06-24 10:31 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 24, 2016 at 11:18:07AM +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] 13+ messages in thread

* Re: [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
  2016-06-24  9:18 ` [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
@ 2016-06-24 22:07   ` Dmitry Torokhov
  2016-06-25  8:34     ` Neil Armstrong
  0 siblings, 1 reply; 13+ messages in thread
From: Dmitry Torokhov @ 2016-06-24 22:07 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

On Fri, Jun 24, 2016 at 11:18:04AM +0200, Neil Armstrong wrote:
> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
> for the pm8018 pwrkey in pmic8xxx-pwrkey.
> 
> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

NAK.

> ---
>  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
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
  2016-06-24 22:07   ` Dmitry Torokhov
@ 2016-06-25  8:34     ` Neil Armstrong
  2016-06-25 15:53       ` Dmitry Torokhov
  0 siblings, 1 reply; 13+ messages in thread
From: Neil Armstrong @ 2016-06-25  8:34 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: andy.gross, david.brown, lee.jones, lgirdwood, broonie, a.zummo,
	alexandre.belloni, linux-input, linux-kernel, linux-arm-msm,
	linux-soc, rtc-linux, Rob Herring

On 06/25/2016 12:07 AM, Dmitry Torokhov wrote:
> On Fri, Jun 24, 2016 at 11:18:04AM +0200, Neil Armstrong wrote:
>> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
>> for the pm8018 pwrkey in pmic8xxx-pwrkey.
>>
>> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> 
> NAK.

Hi Dmitry,

Actually, the new compatible string make sense, because the driver is compatible with the
"pm8018" pwrkey but from a system point of view, it's not a pm8921 pwrkey, hence the new
compatible string.

Rob Herring was very clear with me with this policy, and it will simplify further driver
architecture change since it will not imply devicetree changes anymore.

My point of view is that the devicetree describes the hardware and need to have SoC specific
compatible string since it describes the actual silicon, and drivers must make sure to handle
all the SoC or family variants using the compatible string and the match data.

Neil
> 
>> ---
>>  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	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
  2016-06-25  8:34     ` Neil Armstrong
@ 2016-06-25 15:53       ` Dmitry Torokhov
  2016-06-26 13:06         ` Neil Armstrong
  0 siblings, 1 reply; 13+ messages in thread
From: Dmitry Torokhov @ 2016-06-25 15:53 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, Rob Herring

On Sat, Jun 25, 2016 at 10:34:04AM +0200, Neil Armstrong wrote:
> On 06/25/2016 12:07 AM, Dmitry Torokhov wrote:
> > On Fri, Jun 24, 2016 at 11:18:04AM +0200, Neil Armstrong wrote:
> >> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
> >> for the pm8018 pwrkey in pmic8xxx-pwrkey.
> >>
> >> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> >> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> > 
> > NAK.
> 
> Hi Dmitry,
> 
> Actually, the new compatible string make sense, because the driver is compatible with the
> "pm8018" pwrkey but from a system point of view, it's not a pm8921 pwrkey, hence the new
> compatible string.

A lot of systems note this fact in DTS, but not require driver changes,
by specifying several compatible strings:

	compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
	compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
	compatible = "rockchip,rk3036-timer", "rockchip,rk3288-timer";

> 
> Rob Herring was very clear with me with this policy, and it will simplify further driver

Could I get a pointer to this discussion so I can educate myself better
about DT policies?

> architecture change since it will not imply devicetree changes anymore.

Would we need the driver changes? What are the differences in power key
functionality between 8018 and 8921?

> 
> My point of view is that the devicetree describes the hardware and need to have SoC specific
> compatible string since it describes the actual silicon, and drivers must make sure to handle
> all the SoC or family variants using the compatible string and the match data.

No, the compatible string means that the hardware is *compatible* with
something. It does not mean that we need to adjust driver every time a
company pumps out a new package including said hardware.

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey
  2016-06-25 15:53       ` Dmitry Torokhov
@ 2016-06-26 13:06         ` Neil Armstrong
  0 siblings, 0 replies; 13+ messages in thread
From: Neil Armstrong @ 2016-06-26 13:06 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: andy.gross, david.brown, lee.jones, lgirdwood, broonie, a.zummo,
	alexandre.belloni, linux-input, linux-kernel, linux-arm-msm,
	linux-soc, rtc-linux, Rob Herring

On 06/25/2016 05:53 PM, Dmitry Torokhov wrote:
> On Sat, Jun 25, 2016 at 10:34:04AM +0200, Neil Armstrong wrote:
>> On 06/25/2016 12:07 AM, Dmitry Torokhov wrote:
>>> On Fri, Jun 24, 2016 at 11:18:04AM +0200, Neil Armstrong wrote:
>>>> In order to support pwrkey for Qualcomm MDM9615 SoC, add support
>>>> for the pm8018 pwrkey in pmic8xxx-pwrkey.
>>>>
>>>> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
>>>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>>>
>>> NAK.
>>
>> Hi Dmitry,
>>
>> Actually, the new compatible string make sense, because the driver is compatible with the
>> "pm8018" pwrkey but from a system point of view, it's not a pm8921 pwrkey, hence the new
>> compatible string.
> 
> A lot of systems note this fact in DTS, but not require driver changes,
> by specifying several compatible strings:
> 
> 	compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
> 	compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
> 	compatible = "rockchip,rk3036-timer", "rockchip,rk3288-timer";

Sure, your point is valid.
But here, the situation is quite different, the question is about confidence.
>From the system point of view, I'm 100% sure there is a pm8010-pwrkey variant here, but
I`m not convinced at all how it is similar from the 8921 version.
>From the software point of view, I'm 80% sure the *actual* driver in it current form
somehow works for the pm8018-pwrkey, not more.
If somehow the driver is updated to support a 8921 feature that is not supported by the
8018 version, it will rely on the compatible string to make this a smart move.
Since I do not have the pm8018 datasheet and the 8921 either, I cannot statue on this,
So the smartest move from my side is to actually have a different compatible string
to avoid future blocking situations.

>>
>> Rob Herring was very clear with me with this policy, and it will simplify further driver
> 
> Could I get a pointer to this discussion so I can educate myself better
> about DT policies?

I had quite a lot of comments on the OXNAS support push (started here https://lkml.org/lkml/2016/3/3/495) were
the policy was to narrow the new compatible strings to a SoC specific naming.
For the qcom driver, the strings the already compliant and why not continue with the pm8018 ?

>> architecture change since it will not imply devicetree changes anymore.
> 
> Would we need the driver changes? What are the differences in power key
> functionality between 8018 and 8921?

You raise the biggest question, I do not know, so why should we say the pm8018-pwrkey /is/ compatible with pm8921-pwronly only by looking existing driver ?

>>
>> My point of view is that the devicetree describes the hardware and need to have SoC specific
>> compatible string since it describes the actual silicon, and drivers must make sure to handle
>> all the SoC or family variants using the compatible string and the match data.
> 
> No, the compatible string means that the hardware is *compatible* with
> something. It does not mean that we need to adjust driver every time a
> company pumps out a new package including said hardware.

It was something that I questionned myself about, but it seems the maintainers agrees quite easily to accept these compatible adding patches
like the USB Ids or PCI ids patches.

Regards,
Neil

> Thanks.
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator
  2016-06-24  9:18 ` [PATCH v2 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
@ 2016-06-28 15:09   ` Lee Jones
  0 siblings, 0 replies; 13+ messages in thread
From: Lee Jones @ 2016-06-28 15:09 UTC (permalink / raw)
  To: Neil Armstrong
  Cc: dmitry.torokhov, andy.gross, david.brown, lgirdwood, broonie,
	a.zummo, alexandre.belloni, linux-input, linux-kernel,
	linux-arm-msm, linux-soc, rtc-linux

On Fri, 24 Jun 2016, Neil Armstrong wrote:

> In order to support the Qualcomm MDM9615 SoC, add support for the
> RPM regulator entries in the qcom-rpm driver.
> 
> Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  Documentation/devicetree/bindings/mfd/qcom-rpm.txt |  1 +
>  drivers/mfd/qcom_rpm.c                             | 51 ++++++++++++++++++++++
>  include/dt-bindings/mfd/qcom-rpm.h                 | 22 ++++++++++
>  3 files changed, 74 insertions(+)

For my own reference:
  Acked-by: Lee Jones <lee.jones@linaro.org>
  
> 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 880d469..c309ebe 100644
> --- a/drivers/mfd/qcom_rpm.c
> +++ b/drivers/mfd/qcom_rpm.c
> @@ -390,11 +390,62 @@ static const struct qcom_rpm_data ipq806x_template = {
>  	.ack_sel_size = 7,
>  };
>  
> +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_PM8018_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),
> +	.req_ctx_off = 3,
> +	.req_sel_off = 11,
> +	.ack_ctx_off = 15,
> +	.ack_sel_off = 23,
> +	.req_sel_size = 4,
> +	.ack_sel_size = 7,
> +};
> +
>  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..54aef5e 100644
> --- a/include/dt-bindings/mfd/qcom-rpm.h
> +++ b/include/dt-bindings/mfd/qcom-rpm.h
> @@ -147,6 +147,28 @@
>  #define QCOM_RPM_SMB208_S1b			137
>  #define QCOM_RPM_SMB208_S2a			138
>  #define QCOM_RPM_SMB208_S2b			139
> +#define QCOM_RPM_PM8018_SMPS1			140
> +#define QCOM_RPM_PM8018_SMPS2			141
> +#define QCOM_RPM_PM8018_SMPS3			142
> +#define QCOM_RPM_PM8018_SMPS4			143
> +#define QCOM_RPM_PM8018_SMPS5			144
> +#define QCOM_RPM_PM8018_LDO1			145
> +#define QCOM_RPM_PM8018_LDO2			146
> +#define QCOM_RPM_PM8018_LDO3			147
> +#define QCOM_RPM_PM8018_LDO4			148
> +#define QCOM_RPM_PM8018_LDO5			149
> +#define QCOM_RPM_PM8018_LDO6			150
> +#define QCOM_RPM_PM8018_LDO7			151
> +#define QCOM_RPM_PM8018_LDO8			152
> +#define QCOM_RPM_PM8018_LDO9			153
> +#define QCOM_RPM_PM8018_LDO10			154
> +#define QCOM_RPM_PM8018_LDO11			155
> +#define QCOM_RPM_PM8018_LDO12			156
> +#define QCOM_RPM_PM8018_LDO13			157
> +#define QCOM_RPM_PM8018_LDO14			158
> +#define QCOM_RPM_PM8018_LVS1			159
> +#define QCOM_RPM_PM8018_NCP			160
> +#define QCOM_RPM_VOLTAGE_CORNER			161
>  
>  /*
>   * Constants used to select force mode for regulators.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2 1/5] mfd: pm8921: Add support for pm8018
  2016-06-24  9:18 ` [PATCH v2 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
@ 2016-06-28 15:10   ` Lee Jones
  0 siblings, 0 replies; 13+ messages in thread
From: Lee Jones @ 2016-06-28 15:10 UTC (permalink / raw)
  To: Neil Armstrong
  Cc: dmitry.torokhov, andy.gross, david.brown, lgirdwood, broonie,
	a.zummo, alexandre.belloni, linux-input, linux-kernel,
	linux-arm-msm, linux-soc, rtc-linux

On Fri, 24 Jun 2016, Neil Armstrong wrote:

> In order to support the Qualcomm MDM9615 PMIC, add support for the
> pm8018 in pm8921 mfd driver.
> 
> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  drivers/mfd/pm8921-core.c | 1 +
>  1 file changed, 1 insertion(+)

For my own reference:
  Acked-by: Lee Jones <lee.jones@linaro.org>

> 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", },
>  	{ }

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-06-28 15:10 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-24  9:18 [PATCH v2 0/5] Add support for the Qualcomm PM8018 PMIC Neil Armstrong
2016-06-24  9:18 ` [PATCH v2 1/5] mfd: pm8921: Add support for pm8018 Neil Armstrong
2016-06-28 15:10   ` Lee Jones
2016-06-24  9:18 ` [PATCH v2 2/5] input: pmic8xxx-pwrkey: Add support for pm8018 pwrkey Neil Armstrong
2016-06-24 22:07   ` Dmitry Torokhov
2016-06-25  8:34     ` Neil Armstrong
2016-06-25 15:53       ` Dmitry Torokhov
2016-06-26 13:06         ` Neil Armstrong
2016-06-24  9:18 ` [PATCH v2 3/5] rtc: rtc-pm8xxx: Add support for pm8018 rtc Neil Armstrong
2016-06-24  9:18 ` [PATCH v2 4/5] mfd: qcom-rpm: Add support for pm8018 RPM Regulator Neil Armstrong
2016-06-28 15:09   ` Lee Jones
2016-06-24  9:18 ` [PATCH v2 5/5] regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator Neil Armstrong
2016-06-24 10:31   ` Mark Brown

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).