Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1707202 > unrolled thread

[PATCH v3 0/2] add support for AXP22X/AXP288/AXP8XX PEK

Started byQuentin Schulz <quentin.schulz@free-electrons.com>
First post2017-08-09 11:50 +0200
Last post2017-08-09 11:50 +0200
Articles 2 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/2] add support for AXP22X/AXP288/AXP8XX PEK Quentin Schulz <quentin.schulz@free-electrons.com> - 2017-08-09 11:50 +0200
    [PATCH v3 2/2] Input: axp20x-pek: add support for AXP221 PEK Quentin Schulz <quentin.schulz@free-electrons.com> - 2017-08-09 11:50 +0200

#1707202 — [PATCH v3 0/2] add support for AXP22X/AXP288/AXP8XX PEK

FromQuentin Schulz <quentin.schulz@free-electrons.com>
Date2017-08-09 11:50 +0200
Subject[PATCH v3 0/2] add support for AXP22X/AXP288/AXP8XX PEK
Message-ID<ucvMJ-5na-3@gated-at.bofh.it>
According to their datasheets, the AXP221, AXP223, AXP288, AXP803,
AXP809 and AXP813 PEK have different values for startup time bits from
the AXP20X PEK (which are currently used for all the aforementioned PMICs).

This patch series adds support for platform_device_id to axp20x-pek driver
to support different startup time bits depending on PMIC's variant and set
the correct platform_device_id in the mfd.

This has been tested on AXP813. To perform the test, modify the value of
startup and/or shutdown of the pek in sysfs. Press the button soldered to
PEK input of the AXP the amount of time you set in sysfs. The PMIC shuts
down the board without needing to unplug any power supply. Press PEK button
the amount of time you set in sysfs for startup and the PMIC will start the
board. Note that the time bits are obivoulsy hardware reset to their
default when you unplug all power supplies from the board.

v3:
  - name correctly the newly added functions (remove ext_ in their name),
  - since only two functions remained with an ext_ in their name (and
  since they are used by the newly added functions), rename it directly in
  the first patch (thus, remove the second patch of v2),
  - fix over-80-chars line checkpatch warning,

v2:
  - instead of duplicating all extended attributes, use the driver_data of
  platform_device_id to get startup and shutdown times and their respective
  masks,
  - remove extended attributes and use the structure storing startup and
  shutdown times and their respective masks,
  - separate in different patches,
  - removed mfd patch to correct mfd cell name since Chen-Yu will take care
  of it in another patch series,

Thanks,
Quentin

Quentin Schulz (2):
  Input: axp20x-pek: use driver_data of platform_device_id instead of extended attributes
  Input: axp20x-pek: add support for AXP221 PEK

 drivers/input/misc/axp20x-pek.c | 147 +++++++++++++++++++++++----------
 1 file changed, 104 insertions(+), 43 deletions(-)

base-commit: 22bbe310b60b37b029659460843265f190364e48
-- 
git-series 0.9.1

[toc] | [next] | [standalone]


#1707205 — [PATCH v3 2/2] Input: axp20x-pek: add support for AXP221 PEK

FromQuentin Schulz <quentin.schulz@free-electrons.com>
Date2017-08-09 11:50 +0200
Subject[PATCH v3 2/2] Input: axp20x-pek: add support for AXP221 PEK
Message-ID<ucvMK-5na-19@gated-at.bofh.it>
In reply to#1707202
The AXP221 has different values for startup time bits from the AXP20X.

Signed-off-by: Quentin Schulz <quentin.schulz@free-electrons.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
---
 drivers/input/misc/axp20x-pek.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/input/misc/axp20x-pek.c b/drivers/input/misc/axp20x-pek.c
index f616fe5..a542906 100644
--- a/drivers/input/misc/axp20x-pek.c
+++ b/drivers/input/misc/axp20x-pek.c
@@ -56,6 +56,13 @@ static const struct axp20x_time startup_time[] = {
 	{ .time = 2000, .idx = 3 },
 };
 
+static const struct axp20x_time axp221_startup_time[] = {
+	{ .time = 128,  .idx = 0 },
+	{ .time = 1000, .idx = 1 },
+	{ .time = 2000, .idx = 2 },
+	{ .time = 3000, .idx = 3 },
+};
+
 static const struct axp20x_time shutdown_time[] = {
 	{ .time = 4000,  .idx = 0 },
 	{ .time = 6000,  .idx = 1 },
@@ -70,6 +77,13 @@ static const struct axp20x_info axp20x_info = {
 	.shutdown_mask = AXP20X_PEK_SHUTDOWN_MASK,
 };
 
+static const struct axp20x_info axp221_info = {
+	.startup_time = axp221_startup_time,
+	.startup_mask = AXP20X_PEK_STARTUP_MASK,
+	.shutdown_time = shutdown_time,
+	.shutdown_mask = AXP20X_PEK_SHUTDOWN_MASK,
+};
+
 static ssize_t axp20x_show_attr(struct device *dev,
 				const struct axp20x_time *time,
 				unsigned int mask, char *buf)
@@ -382,6 +396,9 @@ static const struct platform_device_id axp_pek_id_match[] = {
 	{
 		.name = "axp20x-pek",
 		.driver_data = (kernel_ulong_t)&axp20x_info,
+	}, {
+		.name = "axp221-pek",
+		.driver_data = (kernel_ulong_t)&axp221_info,
 	},
 };
 
-- 
git-series 0.9.1

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web