From: "Andreas Färber" <afaerber@suse.de>
To: linux-realtek-soc@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
"James Tai [戴志峰]" <james.tai@realtek.com>,
"Stanley Chang [昌育德]" <stanley_chang@realtek.com>,
"Edgar Lee" <cylee12@realtek.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [PATCH v2 26/29] soc: realtek: chip: Detect RTD1294
Date: Tue, 23 Jun 2020 04:51:03 +0200 [thread overview]
Message-ID: <20200623025106.31273-27-afaerber@suse.de> (raw)
In-Reply-To: <20200623025106.31273-1-afaerber@suse.de>
Detection logic from downstream include/soc/realtek/rtd129x_cpu.h.
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
Note: We don't have any RTD1294 .dtsi/.dts yet.
v1 -> v2:
* Instead of direct eFuse register access use nvmem cell API
* Warn on errors other than deferred probing
drivers/soc/realtek/chip.c | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/soc/realtek/chip.c b/drivers/soc/realtek/chip.c
index 9cee760bac35..bed028ce1b16 100644
--- a/drivers/soc/realtek/chip.c
+++ b/drivers/soc/realtek/chip.c
@@ -10,6 +10,7 @@
#include <linux/io.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
+#include <linux/nvmem-consumer.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
@@ -26,6 +27,8 @@
#define REG_ISO_CHIP_INFO1 0x028
+#define REG_EFUSE_PACKAGE_ID 0x1d8
+
struct dhc_soc_revision {
const char *name;
u16 chip_rev;
@@ -76,6 +79,33 @@ struct dhc_soc {
const char *codename;
};
+static int dhc_efuse_read_u8(struct device *dev, const char *cell_id, u8 *val)
+{
+ struct nvmem_cell *cell;
+ void *buf;
+ size_t len;
+
+ cell = nvmem_cell_get(dev, cell_id);
+ if (IS_ERR(cell))
+ return PTR_ERR(cell);
+
+ buf = nvmem_cell_read(cell, &len);
+ if (IS_ERR(buf)) {
+ nvmem_cell_put(cell);
+ return PTR_ERR(buf);
+ }
+ if (len != sizeof(*val)) {
+ kfree(buf);
+ nvmem_cell_put(cell);
+ return -EINVAL;
+ }
+ memcpy(val, buf, 1);
+ kfree(buf);
+ nvmem_cell_put(cell);
+
+ return 0;
+}
+
static const char *default_name(struct device *dev, const struct dhc_soc *s)
{
return s->family;
@@ -86,6 +116,15 @@ static const char *rtd1295_name(struct device *dev, const struct dhc_soc *s)
struct regmap *regmap;
unsigned int val;
int ret;
+ u8 b;
+
+ ret = dhc_efuse_read_u8(dev, "efuse_package_id", &b);
+ if (ret == -EPROBE_DEFER)
+ return ERR_PTR(ret);
+ else if (ret)
+ dev_warn(dev, "Could not read efuse package_id (%d)\n", ret);
+ else if (b == 0x1)
+ return "RTD1294";
regmap = syscon_regmap_lookup_by_phandle(dev->of_node, "iso-syscon");
if (IS_ERR(regmap)) {
--
2.26.2
next prev parent reply other threads:[~2020-06-23 2:52 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-23 2:50 [PATCH v2 00/29] ARM: Realtek DHC SoC info Andreas Färber
2020-06-23 2:50 ` [PATCH v2 01/29] dt-bindings: soc: Add Realtek RTD1195 chip info binding Andreas Färber
2020-07-14 2:13 ` Rob Herring
2020-06-23 2:50 ` [PATCH v2 02/29] soc: Add Realtek DHC chip info driver for RTD1195 and RTD1295 Andreas Färber
2020-07-10 7:55 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 03/29] arm64: dts: realtek: rtd129x: Add chip info node Andreas Färber
2020-07-10 7:56 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 04/29] ARM: dts: rtd1195: " Andreas Färber
2020-07-10 7:57 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 05/29] dt-bindings: soc: realtek: rtd1195-chip: Add iso-syscon property Andreas Färber
2020-07-14 2:13 ` Rob Herring
2020-06-23 2:50 ` [PATCH v2 06/29] soc: realtek: chip: Detect RTD1296 Andreas Färber
2020-07-10 7:58 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 07/29] arm64: dts: realtek: rtd129x: Extend chip-info reg with CHIP_INFO1 Andreas Färber
2020-07-10 7:59 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 08/29] soc: realtek: chip: Detect RTD1293 Andreas Färber
2020-06-23 2:50 ` [PATCH v2 09/29] soc: realtek: chip: Add RTD1395 info Andreas Färber
2020-07-10 8:01 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 10/29] arm64: dts: realtek: rtd139x: Add chip info node Andreas Färber
2020-07-10 8:03 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 11/29] soc: realtek: chip: Add RTD1619 info Andreas Färber
2020-07-10 8:02 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 12/29] arm64: dts: realtek: rtd16xx: Add chip info node Andreas Färber
2020-07-10 8:02 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 13/29] soc: realtek: chip: Add RTD1319 info Andreas Färber
2020-07-10 8:04 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 14/29] soc: realtek: chip: Add RTD1319 revisions Andreas Färber
2020-07-10 8:04 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 15/29] arm64: dts: realtek: rtd13xx: Add chip info node Andreas Färber
2020-07-10 8:06 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 16/29] soc: realtek: chip: Detect RTD1392 Andreas Färber
2020-07-10 8:05 ` Stanley Chang[昌育德]
2020-06-23 2:50 ` [PATCH v2 17/29] dt-bindings: nvmem: Add Realtek RTD1195 eFuse Andreas Färber
2020-07-14 2:15 ` Rob Herring
2020-06-23 2:50 ` [PATCH v2 18/29] nvmem: Add Realtek DHC eFuse driver Andreas Färber
2020-06-23 9:32 ` Srinivas Kandagatla
2020-06-23 11:15 ` Andreas Färber
2020-07-20 9:31 ` Srinivas Kandagatla
2020-06-23 2:50 ` [PATCH v2 19/29] ARM: dts: rtd1195: Add eFuse node Andreas Färber
2020-06-23 2:50 ` [PATCH v2 20/29] arm64: dts: realtek: rtd129x: " Andreas Färber
2020-06-23 2:50 ` [PATCH v2 21/29] arm64: dts: realtek: rtd139x: " Andreas Färber
2020-06-23 2:50 ` [PATCH v2 22/29] arm64: dts: realtek: rtd16xx: " Andreas Färber
2020-06-23 2:51 ` [PATCH v2 23/29] arm64: dts: realtek: rtd13xx: " Andreas Färber
2020-06-23 2:51 ` [PATCH v2 24/29] dt-bindings: soc: realtek: rtd1195-chip: Allow nvmem-cells property Andreas Färber
2020-07-14 2:15 ` Rob Herring
2020-06-23 2:51 ` [PATCH v2 25/29] arm64: dts: realtek: rtd129x: Add eFuse package_id to chip-info Andreas Färber
2020-06-23 2:51 ` Andreas Färber [this message]
2020-07-10 8:07 ` [PATCH v2 26/29] soc: realtek: chip: Detect RTD1294 Stanley Chang[昌育德]
2020-06-23 2:51 ` [PATCH v2 27/29] nvmem: core: Grammar fixes for help text Andreas Färber
2020-06-23 9:30 ` Srinivas Kandagatla
2020-06-23 2:51 ` [PATCH v2 28/29] nvmem: core: Add nvmem_cell_read_u8() Andreas Färber
2020-06-23 9:30 ` Srinivas Kandagatla
2020-06-23 2:51 ` [PATCH v2 29/29] soc: realtek: chip: Adopt nvmem_cell_read_u8() helper Andreas Färber
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=20200623025106.31273-27-afaerber@suse.de \
--to=afaerber@suse.de \
--cc=cylee12@realtek.com \
--cc=james.tai@realtek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-realtek-soc@lists.infradead.org \
--cc=stanley_chang@realtek.com \
/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
all inboxes | Powered by JetHome®