From: Lubomir Rintel <lkundrak@v3.sk>
To: Mark Brown <broonie@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Darren Hart <dvhart@infradead.org>,
Andy Shevchenko <andy@infradead.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
James Cameron <quozl@laptop.org>,
Sebastian Reichel <sre@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Eric Miao <eric.y.miao@gmail.com>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
Daniel Mack <daniel@zonque.org>,
Robert Jarzmik <robert.jarzmik@free.fr>,
linux-spi@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
platform-driver-x86@vger.kernel.org, devel@driverdev.osuosl.org,
linux-pm@vger.kernel.org, Lubomir Rintel <lkundrak@v3.sk>
Subject: [PATCH 11/15] x86, olpc: Use a correct version when making up a battery node
Date: Wed, 10 Oct 2018 19:22:56 +0200 [thread overview]
Message-ID: <20181010172300.317643-12-lkundrak@v3.sk> (raw)
In-Reply-To: <20181010172300.317643-1-lkundrak@v3.sk>
The XO-1 and XO-1.5 batteries apparently differ in an ability to report
ambient temperature. Add a different compatible string to the 1.5
battery.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
arch/x86/platform/olpc/olpc_dt.c | 59 +++++++++++++++++++++++---------
1 file changed, 42 insertions(+), 17 deletions(-)
diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
index d6ee92986920..6e54e116b0c5 100644
--- a/arch/x86/platform/olpc/olpc_dt.c
+++ b/arch/x86/platform/olpc/olpc_dt.c
@@ -218,10 +218,28 @@ static u32 __init olpc_dt_get_board_revision(void)
return be32_to_cpu(rev);
}
-void __init olpc_dt_fixup(void)
+int olpc_dt_compatible_match(phandle node, const char *compat)
{
- int r;
char buf[64];
+ int plen;
+ char *p;
+ int len;
+
+ plen = olpc_dt_getproperty(node, "compatible", buf, sizeof(buf));
+ if (plen <= 0)
+ return 0;
+
+ len = strlen(compat);
+ for (p = buf; p < buf + plen; p += strlen(p) + 1) {
+ if (strcmp(p, compat) == 0)
+ return 1;
+ }
+
+ return 0;
+}
+
+void __init olpc_dt_fixup(void)
+{
phandle node;
u32 board_rev;
@@ -229,32 +247,33 @@ void __init olpc_dt_fixup(void)
if (!node)
return;
- /*
- * If the battery node has a compatible property, we are running a new
- * enough firmware and don't have fixups to make.
- */
- r = olpc_dt_getproperty(node, "compatible", buf, sizeof(buf));
- if (r > 0)
- return;
-
- pr_info("PROM DT: Old firmware detected, applying fixes\n");
-
- /* Add olpc,xo1-battery compatible marker to battery node */
- olpc_dt_interpret("\" /battery@0\" find-device"
- " \" olpc,xo1-battery\" +compatible"
- " device-end");
-
board_rev = olpc_dt_get_board_revision();
if (!board_rev)
return;
if (board_rev >= olpc_board_pre(0xd0)) {
+ if (olpc_dt_compatible_match(node, "olpc,xo1.5-battery"))
+ return;
+
+ /* Add olpc,xo1.5-battery compatible marker to battery node */
+ olpc_dt_interpret("\" /battery@0\" find-device"
+ " \" olpc,xo1.5-battery\" +compatible"
+ " device-end");
+
+ /* We're running a very old firmware if this is missing. */
+ if (olpc_dt_compatible_match(node, "olpc,xo1-battery"))
+ return;
+
/* XO-1.5: add dcon device */
olpc_dt_interpret("\" /pci/display@1\" find-device"
" new-device"
" \" dcon\" device-name \" olpc,xo1-dcon\" +compatible"
" finish-device device-end");
} else {
+ /* We're running a very old firmware if this is missing. */
+ if (olpc_dt_compatible_match(node, "olpc,xo1-battery"))
+ return;
+
/* XO-1: add dcon device, mark RTC as olpc,xo1-rtc */
olpc_dt_interpret("\" /pci/display@1,1\" find-device"
" new-device"
@@ -264,6 +283,11 @@ void __init olpc_dt_fixup(void)
" \" olpc,xo1-rtc\" +compatible"
" device-end");
}
+
+ /* Add olpc,xo1-battery compatible marker to battery node */
+ olpc_dt_interpret("\" /battery@0\" find-device"
+ " \" olpc,xo1-battery\" +compatible"
+ " device-end");
}
void __init olpc_dt_build_devicetree(void)
@@ -289,6 +313,7 @@ void __init olpc_dt_build_devicetree(void)
/* A list of DT node/bus matches that we want to expose as platform devices */
static struct of_device_id __initdata of_ids[] = {
{ .compatible = "olpc,xo1-battery" },
+ { .compatible = "olpc,xo1.5-battery" },
{ .compatible = "olpc,xo1-dcon" },
{ .compatible = "olpc,xo1-rtc" },
{},
--
2.19.0
next prev parent reply other threads:[~2018-10-10 17:23 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-10 17:22 [PATCH 0/15] Add support for OLPC XO 1.75 Embedded Controller Lubomir Rintel
2018-10-10 17:22 ` [PATCH 01/15] power: supply: olpc_battery: correct the temperature units Lubomir Rintel
2018-10-19 13:00 ` Andy Shevchenko
2018-10-21 21:27 ` Sebastian Reichel
2018-11-02 22:16 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 02/15] Revert "platform/olpc: Make ec explicitly non-modular" Lubomir Rintel
2018-10-19 13:04 ` Andy Shevchenko
2018-11-02 22:16 ` Pavel Machek
2018-11-15 18:57 ` Lubomir Rintel
2018-10-10 17:22 ` [PATCH 03/15] dt-bindings: olpc,xo1.75-ec: Add OLPC XO-1.75 EC bindings Lubomir Rintel
2018-10-17 19:38 ` Rob Herring
2018-11-04 12:26 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 04/15] Platform: OLPC: Remove an unused include Lubomir Rintel
2018-10-19 13:05 ` Andy Shevchenko
2018-11-13 13:59 ` Lubomir Rintel
2018-11-04 12:26 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 05/15] Platform: OLPC: Move OLPC config symbol out of x86 tree Lubomir Rintel
2018-10-19 13:09 ` Andy Shevchenko
2018-11-04 12:27 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 06/15] Platform: OLPC: Add XO-1.75 EC driver Lubomir Rintel
2018-10-19 16:06 ` Andy Shevchenko
2018-11-13 17:26 ` Lubomir Rintel
2018-11-13 22:06 ` James Cameron
2018-11-19 10:40 ` Pavel Machek
2018-11-19 13:25 ` Lubomir Rintel
2018-10-10 17:22 ` [PATCH 07/15] Platform: OLPC: Avoid a warning if the EC didn't register yet Lubomir Rintel
2018-10-19 13:11 ` Andy Shevchenko
2018-11-04 12:30 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 08/15] Platform: OLPC: Move EC-specific functionality out from x86 Lubomir Rintel
2018-10-19 13:36 ` Andy Shevchenko
2018-11-14 16:20 ` Lubomir Rintel
2018-11-04 12:31 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 09/15] Platform: OLPC: add a regulator for the DCON Lubomir Rintel
2018-10-19 13:39 ` Andy Shevchenko
2018-10-10 17:22 ` [PATCH 10/15] dt-bindings: olpc_battery: Add XO-1.5 battery Lubomir Rintel
2018-10-17 19:38 ` Rob Herring
2018-11-04 12:32 ` Pavel Machek
2018-10-10 17:22 ` Lubomir Rintel [this message]
2018-10-19 13:43 ` [PATCH 11/15] x86, olpc: Use a correct version when making up a battery node Andy Shevchenko
2018-11-14 16:49 ` Lubomir Rintel
2018-11-04 12:34 ` Pavel Machek
2018-10-10 17:22 ` [PATCH 12/15] power: supply: olpc_battery: Use DT to get battery version Lubomir Rintel
2018-10-19 13:45 ` Andy Shevchenko
2018-11-15 18:33 ` Lubomir Rintel
2018-11-04 12:37 ` Pavel Machek
2018-11-15 18:36 ` Lubomir Rintel
2018-10-10 17:22 ` [PATCH 13/15] power: supply: olpc_battery: Move priv data to a struct Lubomir Rintel
2018-10-19 13:48 ` Andy Shevchenko
2018-11-04 14:37 ` Pavel Machek
2018-11-14 17:10 ` Lubomir Rintel
2018-10-10 17:22 ` [PATCH 14/15] power: supply: olpc_battery: Avoid using platform_info Lubomir Rintel
2018-10-19 13:50 ` Andy Shevchenko
2018-11-14 17:19 ` Lubomir Rintel
2018-11-04 14:39 ` Pavel Machek
2018-10-10 17:23 ` [PATCH 15/15] power: supply: olpc_battery: Add OLPC XO 1.75 support Lubomir Rintel
2018-10-19 13:55 ` Andy Shevchenko
2018-11-04 14:39 ` Pavel Machek
2018-10-10 19:26 ` [PATCH 0/15] Add support for OLPC XO 1.75 Embedded Controller Rob Herring
2018-10-11 10:42 ` Lubomir Rintel
2018-10-19 13:57 ` Andy Shevchenko
2018-10-23 17:03 ` Lubomir Rintel
2018-10-21 21:45 ` Sebastian Reichel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181010172300.317643-12-lkundrak@v3.sk \
--to=lkundrak@v3.sk \
--cc=andy@infradead.org \
--cc=broonie@kernel.org \
--cc=daniel@zonque.org \
--cc=devel@driverdev.osuosl.org \
--cc=devicetree@vger.kernel.org \
--cc=dvhart@infradead.org \
--cc=eric.y.miao@gmail.com \
--cc=geert+renesas@glider.be \
--cc=gregkh@linuxfoundation.org \
--cc=haojian.zhuang@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=quozl@laptop.org \
--cc=robert.jarzmik@free.fr \
--cc=robh+dt@kernel.org \
--cc=sre@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).