LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor
@ 2021-07-26 17:18 Emil Renner Berthing
  2021-07-26 17:18 ` [PATCH v3 1/2] dt-bindings: hwmon: add starfive,jh7100-temp bindings Emil Renner Berthing
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Emil Renner Berthing @ 2021-07-26 17:18 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck, Rob Herring, Jonathan Corbet, Samin Guo
  Cc: Emil Renner Berthing, linux-hwmon, devicetree, linux-doc, linux-kernel

This adds a driver for the temperature sensor on the JH7100, a RISC-V
SoC by StarFive Technology Co. Ltd., and most likely also the upcoming
JH7110 version.

The SoC is used on the BeagleV Starlight board:
https://github.com/beagleboard/beaglev-starlight

Support for this SoC is not yet upstreamed, but is actively worked on,
so it should only be a matter of time before that happens.

v3:
* Handle timeouts from wait_for_completion_interruptible_timeout
  properly.

v2:
* Fix checkpatch.pl --strict warnings
  - Add myself to MAINTAINERS
  - Fix multiline comments
  - Use proper case and whitespace for #defines
  - Add comment to sfctemp::lock mutex.
* Remaining comments by Guenter Roeck
  - Add Documentation/hwmon/sfctemp.rst
  - Use devm_add_action() and devm_hwmon_device_register_with_info()
    instead of a driver .remove function.
  - Don't do test conversion at probe time.
  - #include <linux/io.h>
  - Remove unused #defines
  - Use int return variable in sfctemp_convert().
* Add Samin's Signed-off-by to patch 2/2

Emil Renner Berthing (2):
  dt-bindings: hwmon: add starfive,jh7100-temp bindings
  hwmon: (sfctemp) Add StarFive JH7100 temperature sensor

 .../bindings/hwmon/starfive,jh7100-temp.yaml  |  43 +++
 Documentation/hwmon/index.rst                 |   1 +
 Documentation/hwmon/sfctemp.rst               |  32 ++
 MAINTAINERS                                   |   8 +
 drivers/hwmon/Kconfig                         |  10 +
 drivers/hwmon/Makefile                        |   1 +
 drivers/hwmon/sfctemp.c                       | 291 ++++++++++++++++++
 7 files changed, 386 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml
 create mode 100644 Documentation/hwmon/sfctemp.rst
 create mode 100644 drivers/hwmon/sfctemp.c

-- 
2.32.0


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

* [PATCH v3 1/2] dt-bindings: hwmon: add starfive,jh7100-temp bindings
  2021-07-26 17:18 [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor Emil Renner Berthing
@ 2021-07-26 17:18 ` Emil Renner Berthing
  2021-07-26 17:18 ` [PATCH v3 2/2] hwmon: (sfctemp) Add StarFive JH7100 temperature sensor Emil Renner Berthing
  2021-07-28 16:54 ` [PATCH v3 0/2] hwmon: " Guenter Roeck
  2 siblings, 0 replies; 7+ messages in thread
From: Emil Renner Berthing @ 2021-07-26 17:18 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck, Rob Herring, Jonathan Corbet, Samin Guo
  Cc: Emil Renner Berthing, linux-hwmon, devicetree, linux-doc,
	linux-kernel, Rob Herring

Add bindings for the temperature sensor on the StarFive JH7100 SoC.

Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../bindings/hwmon/starfive,jh7100-temp.yaml  | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml

diff --git a/Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml b/Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml
new file mode 100644
index 000000000000..5ca52c08d142
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/starfive,jh7100-temp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive JH7100 Temperature Sensor
+
+maintainers:
+  - Emil Renner Berthing <kernel@esmil.dk>
+
+description: |
+  StarFive Technology Co. JH7100 embedded temperature sensor
+
+properties:
+  compatible:
+    enum:
+      - starfive,jh7100-temp
+
+  reg:
+    maxItems: 1
+
+  '#thermal-sensor-cells':
+    const: 0
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    tmon: tmon@124a0000 {
+        compatible = "starfive,jh7100-temp";
+        reg = <0x124a0000 0x10000>;
+        #thermal-sensor-cells = <0>;
+        interrupts = <122>;
+    };
-- 
2.32.0


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

* [PATCH v3 2/2] hwmon: (sfctemp) Add StarFive JH7100 temperature sensor
  2021-07-26 17:18 [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor Emil Renner Berthing
  2021-07-26 17:18 ` [PATCH v3 1/2] dt-bindings: hwmon: add starfive,jh7100-temp bindings Emil Renner Berthing
@ 2021-07-26 17:18 ` Emil Renner Berthing
  2021-07-28 16:54 ` [PATCH v3 0/2] hwmon: " Guenter Roeck
  2 siblings, 0 replies; 7+ messages in thread
From: Emil Renner Berthing @ 2021-07-26 17:18 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck, Rob Herring, Jonathan Corbet, Samin Guo
  Cc: Emil Renner Berthing, linux-hwmon, devicetree, linux-doc, linux-kernel

Register definitions and conversion constants based on sfctemp driver by
Samin in the StarFive 5.10 kernel.

Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Signed-off-by: Samin Guo <samin.guo@starfivetech.com>
---
 Documentation/hwmon/index.rst   |   1 +
 Documentation/hwmon/sfctemp.rst |  32 ++++
 MAINTAINERS                     |   8 +
 drivers/hwmon/Kconfig           |  10 ++
 drivers/hwmon/Makefile          |   1 +
 drivers/hwmon/sfctemp.c         | 291 ++++++++++++++++++++++++++++++++
 6 files changed, 343 insertions(+)
 create mode 100644 Documentation/hwmon/sfctemp.rst
 create mode 100644 drivers/hwmon/sfctemp.c

diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
index bc01601ea81a..961b6d93bead 100644
--- a/Documentation/hwmon/index.rst
+++ b/Documentation/hwmon/index.rst
@@ -164,6 +164,7 @@ Hardware Monitoring Kernel Drivers
    sch5627
    sch5636
    scpi-hwmon
+   sfctemp
    sht15
    sht21
    sht3x
diff --git a/Documentation/hwmon/sfctemp.rst b/Documentation/hwmon/sfctemp.rst
new file mode 100644
index 000000000000..465edce2fea5
--- /dev/null
+++ b/Documentation/hwmon/sfctemp.rst
@@ -0,0 +1,32 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+Kernel driver sfctemp
+=====================
+
+Supported chips:
+ - StarFive JH7100
+
+Authors:
+ - Emil Renner Berthing <kernel@esmil.dk>
+
+Description
+-----------
+
+This driver adds support for reading the built-in temperature sensor on the
+JH7100 RISC-V SoC by StarFive Technology Co. Ltd.
+
+``sysfs`` interface
+-------------------
+
+The temperature sensor can be enabled, disabled and queried via the standard
+hwmon interface in sysfs under ``/sys/class/hwmon/hwmonX`` for some value of
+``X``:
+
+================ ==== =============================================
+Name             Perm Description
+================ ==== =============================================
+temp1_enable     RW   Enable or disable temperature sensor.
+                      Automatically enabled by the driver,
+                      but may be disabled to save power.
+temp1_input      RO   Temperature reading in milli-degrees Celsius.
+================ ==== =============================================
diff --git a/MAINTAINERS b/MAINTAINERS
index 19135a9d778e..6fb1fd015c19 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16751,6 +16751,14 @@ L:	netdev@vger.kernel.org
 S:	Supported
 F:	drivers/net/ethernet/sfc/
 
+SFCTEMP HWMON DRIVER
+M:	Emil Renner Berthing <kernel@esmil.dk>
+L:	linux-hwmon@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml
+F:	Documentation/hwmon/sfctemp.rst
+F:	drivers/hwmon/sfctemp.c
+
 SFF/SFP/SFP+ MODULE SUPPORT
 M:	Russell King <linux@armlinux.org.uk>
 L:	netdev@vger.kernel.org
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index e3675377bc5d..ef3e345d6ce3 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -1762,6 +1762,16 @@ config SENSORS_STTS751
 	  This driver can also be built as a module. If so, the module
 	  will be called stts751.
 
+config SENSORS_SFCTEMP
+	tristate "Starfive JH7100 temperature sensor"
+	depends on OF && (RISCV || COMPILE_TEST)
+	help
+	  If you say yes here you get support for temperature sensor
+	  on the Starfive JH7100 SoC.
+
+	  This driver can also be built as a module.  If so, the module
+	  will be called sfctemp.
+
 config SENSORS_SMM665
 	tristate "Summit Microelectronics SMM665"
 	depends on I2C
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index d712c61c1f5e..869f8806561e 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -167,6 +167,7 @@ obj-$(CONFIG_SENSORS_SBTSI)	+= sbtsi_temp.o
 obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o
 obj-$(CONFIG_SENSORS_SCH5627)	+= sch5627.o
 obj-$(CONFIG_SENSORS_SCH5636)	+= sch5636.o
+obj-$(CONFIG_SENSORS_SFCTEMP)	+= sfctemp.o
 obj-$(CONFIG_SENSORS_SL28CPLD)	+= sl28cpld-hwmon.o
 obj-$(CONFIG_SENSORS_SHT15)	+= sht15.o
 obj-$(CONFIG_SENSORS_SHT21)	+= sht21.o
diff --git a/drivers/hwmon/sfctemp.c b/drivers/hwmon/sfctemp.c
new file mode 100644
index 000000000000..35d3ca682e50
--- /dev/null
+++ b/drivers/hwmon/sfctemp.c
@@ -0,0 +1,291 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk>
+ * Copyright (C) 2021 Samin Guo <samin.guo@starfivetech.com>
+ */
+#include <linux/completion.h>
+#include <linux/delay.h>
+#include <linux/hwmon.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+
+/*
+ * TempSensor reset. The RSTN can be de-asserted once the analog core has
+ * powered up. Trst(min 100ns)
+ * 0:reset  1:de-assert
+ */
+#define SFCTEMP_RSTN	BIT(0)
+
+/*
+ * TempSensor analog core power down. The analog core will be powered up
+ * Tpu(min 50us) after PD is de-asserted. RSTN should be held low until the
+ * analog core is powered up.
+ * 0:power up  1:power down
+ */
+#define SFCTEMP_PD	BIT(1)
+
+/*
+ * TempSensor start conversion enable.
+ * 0:disable  1:enable
+ */
+#define SFCTEMP_RUN	BIT(2)
+
+/*
+ * TempSensor conversion value output.
+ * Temp(C)=DOUT*Y/4094 - K
+ */
+#define SFCTEMP_DOUT_POS	16
+#define SFCTEMP_DOUT_MSK	GENMASK(27, 16)
+
+/* DOUT to Celcius conversion constants */
+#define SFCTEMP_Y1000	237500L
+#define SFCTEMP_Z	4094L
+#define SFCTEMP_K1000	81100L
+
+struct sfctemp {
+	/* serialize access to hardware register and enabled below */
+	struct mutex lock;
+	struct completion conversion_done;
+	void __iomem *regs;
+	bool enabled;
+};
+
+static irqreturn_t sfctemp_isr(int irq, void *data)
+{
+	struct sfctemp *sfctemp = data;
+
+	complete(&sfctemp->conversion_done);
+	return IRQ_HANDLED;
+}
+
+static void sfctemp_power_up(struct sfctemp *sfctemp)
+{
+	/* make sure we're powered down first */
+	writel(SFCTEMP_PD, sfctemp->regs);
+	udelay(1);
+
+	writel(0, sfctemp->regs);
+	/* wait t_pu(50us) + t_rst(100ns) */
+	usleep_range(60, 200);
+
+	/* de-assert reset */
+	writel(SFCTEMP_RSTN, sfctemp->regs);
+	udelay(1); /* wait t_su(500ps) */
+}
+
+static void sfctemp_power_down(struct sfctemp *sfctemp)
+{
+	writel(SFCTEMP_PD, sfctemp->regs);
+}
+
+static void sfctemp_run_single(struct sfctemp *sfctemp)
+{
+	writel(SFCTEMP_RSTN | SFCTEMP_RUN, sfctemp->regs);
+	udelay(1);
+	writel(SFCTEMP_RSTN, sfctemp->regs);
+}
+
+static int sfctemp_enable(struct sfctemp *sfctemp)
+{
+	mutex_lock(&sfctemp->lock);
+	if (sfctemp->enabled)
+		goto done;
+
+	sfctemp_power_up(sfctemp);
+	sfctemp->enabled = true;
+done:
+	mutex_unlock(&sfctemp->lock);
+	return 0;
+}
+
+static int sfctemp_disable(struct sfctemp *sfctemp)
+{
+	mutex_lock(&sfctemp->lock);
+	if (!sfctemp->enabled)
+		goto done;
+
+	sfctemp_power_down(sfctemp);
+	sfctemp->enabled = false;
+done:
+	mutex_unlock(&sfctemp->lock);
+	return 0;
+}
+
+static void sfctemp_disable_action(void *data)
+{
+	sfctemp_disable(data);
+}
+
+static int sfctemp_convert(struct sfctemp *sfctemp, long *val)
+{
+	int ret;
+
+	mutex_lock(&sfctemp->lock);
+	if (!sfctemp->enabled) {
+		ret = -ENODATA;
+		goto out;
+	}
+
+	sfctemp_run_single(sfctemp);
+
+	ret = wait_for_completion_interruptible_timeout(&sfctemp->conversion_done,
+							msecs_to_jiffies(10));
+	if (ret <= 0) {
+		if (ret == 0)
+			ret = -ETIMEDOUT;
+		goto out;
+	}
+
+	/* calculate temperature in milli Celcius */
+	*val = (long)((readl(sfctemp->regs) & SFCTEMP_DOUT_MSK) >> SFCTEMP_DOUT_POS)
+		* SFCTEMP_Y1000 / SFCTEMP_Z - SFCTEMP_K1000;
+
+	ret = 0;
+out:
+	mutex_unlock(&sfctemp->lock);
+	return ret;
+}
+
+static umode_t sfctemp_is_visible(const void *data, enum hwmon_sensor_types type,
+				  u32 attr, int channel)
+{
+	switch (type) {
+	case hwmon_temp:
+		switch (attr) {
+		case hwmon_temp_enable:
+			return 0644;
+		case hwmon_temp_input:
+			return 0444;
+		}
+		return 0;
+	default:
+		return 0;
+	}
+}
+
+static int sfctemp_read(struct device *dev, enum hwmon_sensor_types type,
+			u32 attr, int channel, long *val)
+{
+	struct sfctemp *sfctemp = dev_get_drvdata(dev);
+
+	switch (type) {
+	case hwmon_temp:
+		switch (attr) {
+		case hwmon_temp_enable:
+			*val = sfctemp->enabled;
+			return 0;
+		case hwmon_temp_input:
+			return sfctemp_convert(sfctemp, val);
+		}
+		return -EINVAL;
+	default:
+		return -EINVAL;
+	}
+}
+
+static int sfctemp_write(struct device *dev, enum hwmon_sensor_types type,
+			 u32 attr, int channel, long val)
+{
+	struct sfctemp *sfctemp = dev_get_drvdata(dev);
+
+	switch (type) {
+	case hwmon_temp:
+		switch (attr) {
+		case hwmon_temp_enable:
+			if (val == 0)
+				return sfctemp_disable(sfctemp);
+			if (val == 1)
+				return sfctemp_enable(sfctemp);
+			break;
+		}
+		return -EINVAL;
+	default:
+		return -EINVAL;
+	}
+}
+
+static const struct hwmon_channel_info *sfctemp_info[] = {
+	HWMON_CHANNEL_INFO(chip, HWMON_C_REGISTER_TZ),
+	HWMON_CHANNEL_INFO(temp, HWMON_T_ENABLE | HWMON_T_INPUT),
+	NULL
+};
+
+static const struct hwmon_ops sfctemp_hwmon_ops = {
+	.is_visible = sfctemp_is_visible,
+	.read = sfctemp_read,
+	.write = sfctemp_write,
+};
+
+static const struct hwmon_chip_info sfctemp_chip_info = {
+	.ops = &sfctemp_hwmon_ops,
+	.info = sfctemp_info,
+};
+
+static int sfctemp_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct device *hwmon_dev;
+	struct resource *mem;
+	struct sfctemp *sfctemp;
+	int ret;
+
+	sfctemp = devm_kzalloc(dev, sizeof(*sfctemp), GFP_KERNEL);
+	if (!sfctemp)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, sfctemp);
+	mutex_init(&sfctemp->lock);
+	init_completion(&sfctemp->conversion_done);
+
+	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	sfctemp->regs = devm_ioremap_resource(dev, mem);
+	if (IS_ERR(sfctemp->regs))
+		return PTR_ERR(sfctemp->regs);
+
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		return ret;
+
+	ret = devm_request_irq(dev, ret, sfctemp_isr,
+			       IRQF_SHARED, pdev->name, sfctemp);
+	if (ret) {
+		dev_err(dev, "request irq failed: %d\n", ret);
+		return ret;
+	}
+
+	ret = devm_add_action(dev, sfctemp_disable_action, sfctemp);
+	if (ret)
+		return ret;
+
+	ret = sfctemp_enable(sfctemp);
+	if (ret)
+		return ret;
+
+	hwmon_dev = devm_hwmon_device_register_with_info(dev, pdev->name, sfctemp,
+							 &sfctemp_chip_info, NULL);
+	return PTR_ERR_OR_ZERO(hwmon_dev);
+}
+
+static const struct of_device_id sfctemp_of_match[] = {
+	{ .compatible = "starfive,jh7100-temp" },
+	{ /* sentinel */ }
+};
+
+MODULE_DEVICE_TABLE(of, sfctemp_of_match);
+
+static struct platform_driver sfctemp_driver = {
+	.driver = {
+		.name = "sfctemp",
+		.of_match_table = of_match_ptr(sfctemp_of_match),
+	},
+	.probe  = sfctemp_probe,
+};
+module_platform_driver(sfctemp_driver);
+
+MODULE_AUTHOR("Emil Renner Berthing");
+MODULE_DESCRIPTION("StarFive JH7100 temperature sensor driver");
+MODULE_LICENSE("GPL");
-- 
2.32.0


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

* Re: [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor
  2021-07-26 17:18 [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor Emil Renner Berthing
  2021-07-26 17:18 ` [PATCH v3 1/2] dt-bindings: hwmon: add starfive,jh7100-temp bindings Emil Renner Berthing
  2021-07-26 17:18 ` [PATCH v3 2/2] hwmon: (sfctemp) Add StarFive JH7100 temperature sensor Emil Renner Berthing
@ 2021-07-28 16:54 ` Guenter Roeck
  2021-07-28 17:05   ` Emil Renner Berthing
  2 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2021-07-28 16:54 UTC (permalink / raw)
  To: Emil Renner Berthing, Jean Delvare, Rob Herring, Jonathan Corbet,
	Samin Guo
  Cc: linux-hwmon, devicetree, linux-doc, linux-kernel

On 7/26/21 10:18 AM, Emil Renner Berthing wrote:
> This adds a driver for the temperature sensor on the JH7100, a RISC-V
> SoC by StarFive Technology Co. Ltd., and most likely also the upcoming
> JH7110 version.
> 
> The SoC is used on the BeagleV Starlight board:
> https://github.com/beagleboard/beaglev-starlight
> 
> Support for this SoC is not yet upstreamed, but is actively worked on,
> so it should only be a matter of time before that happens.
> 

Hmm, makes me wonder if I should apply the series now or later,
when the chip is actually supported by the kernel. Comments/thoughts ?

Guenter

> v3:
> * Handle timeouts from wait_for_completion_interruptible_timeout
>    properly.
> 
> v2:
> * Fix checkpatch.pl --strict warnings
>    - Add myself to MAINTAINERS
>    - Fix multiline comments
>    - Use proper case and whitespace for #defines
>    - Add comment to sfctemp::lock mutex.
> * Remaining comments by Guenter Roeck
>    - Add Documentation/hwmon/sfctemp.rst
>    - Use devm_add_action() and devm_hwmon_device_register_with_info()
>      instead of a driver .remove function.
>    - Don't do test conversion at probe time.
>    - #include <linux/io.h>
>    - Remove unused #defines
>    - Use int return variable in sfctemp_convert().
> * Add Samin's Signed-off-by to patch 2/2
> 
> Emil Renner Berthing (2):
>    dt-bindings: hwmon: add starfive,jh7100-temp bindings
>    hwmon: (sfctemp) Add StarFive JH7100 temperature sensor
> 
>   .../bindings/hwmon/starfive,jh7100-temp.yaml  |  43 +++
>   Documentation/hwmon/index.rst                 |   1 +
>   Documentation/hwmon/sfctemp.rst               |  32 ++
>   MAINTAINERS                                   |   8 +
>   drivers/hwmon/Kconfig                         |  10 +
>   drivers/hwmon/Makefile                        |   1 +
>   drivers/hwmon/sfctemp.c                       | 291 ++++++++++++++++++
>   7 files changed, 386 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml
>   create mode 100644 Documentation/hwmon/sfctemp.rst
>   create mode 100644 drivers/hwmon/sfctemp.c
> 


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

* Re: [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor
  2021-07-28 16:54 ` [PATCH v3 0/2] hwmon: " Guenter Roeck
@ 2021-07-28 17:05   ` Emil Renner Berthing
  2021-08-01 20:19     ` Emil Renner Berthing
  0 siblings, 1 reply; 7+ messages in thread
From: Emil Renner Berthing @ 2021-07-28 17:05 UTC (permalink / raw)
  To: Guenter Roeck, Drew Fustini
  Cc: Jean Delvare, Rob Herring, Jonathan Corbet, Samin Guo,
	linux-hwmon,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	linux-doc, Linux Kernel Mailing List

On Wed, 28 Jul 2021 at 18:54, Guenter Roeck <linux@roeck-us.net> wrote:
> On 7/26/21 10:18 AM, Emil Renner Berthing wrote:
> > This adds a driver for the temperature sensor on the JH7100, a RISC-V
> > SoC by StarFive Technology Co. Ltd., and most likely also the upcoming
> > JH7110 version.
> >
> > The SoC is used on the BeagleV Starlight board:
> > https://github.com/beagleboard/beaglev-starlight
> >
> > Support for this SoC is not yet upstreamed, but is actively worked on,
> > so it should only be a matter of time before that happens.
> >
>
> Hmm, makes me wonder if I should apply the series now or later,
> when the chip is actually supported by the kernel. Comments/thoughts ?
>
> Guenter

I'd of course love if it was applied now. That would at least mean
fewer patches to rebase when keeping the beaglev patches [1] up to
date, and I'd be very surprised if SoC support doesn't make it
upstream eventually. But I'd also fully understand the position that
this only makes sense to add when support for the SoC is upstream too.
I'm adding Drew, as he might have something to say about this.

[1]: https://github.com/starfive-tech/linux/tree/beaglev

/Emil

> > v3:
> > * Handle timeouts from wait_for_completion_interruptible_timeout
> >    properly.
> >
> > v2:
> > * Fix checkpatch.pl --strict warnings
> >    - Add myself to MAINTAINERS
> >    - Fix multiline comments
> >    - Use proper case and whitespace for #defines
> >    - Add comment to sfctemp::lock mutex.
> > * Remaining comments by Guenter Roeck
> >    - Add Documentation/hwmon/sfctemp.rst
> >    - Use devm_add_action() and devm_hwmon_device_register_with_info()
> >      instead of a driver .remove function.
> >    - Don't do test conversion at probe time.
> >    - #include <linux/io.h>
> >    - Remove unused #defines
> >    - Use int return variable in sfctemp_convert().
> > * Add Samin's Signed-off-by to patch 2/2
> >
> > Emil Renner Berthing (2):
> >    dt-bindings: hwmon: add starfive,jh7100-temp bindings
> >    hwmon: (sfctemp) Add StarFive JH7100 temperature sensor
> >
> >   .../bindings/hwmon/starfive,jh7100-temp.yaml  |  43 +++
> >   Documentation/hwmon/index.rst                 |   1 +
> >   Documentation/hwmon/sfctemp.rst               |  32 ++
> >   MAINTAINERS                                   |   8 +
> >   drivers/hwmon/Kconfig                         |  10 +
> >   drivers/hwmon/Makefile                        |   1 +
> >   drivers/hwmon/sfctemp.c                       | 291 ++++++++++++++++++
> >   7 files changed, 386 insertions(+)
> >   create mode 100644 Documentation/devicetree/bindings/hwmon/starfive,jh7100-temp.yaml
> >   create mode 100644 Documentation/hwmon/sfctemp.rst
> >   create mode 100644 drivers/hwmon/sfctemp.c
> >
>

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

* Re: [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor
  2021-07-28 17:05   ` Emil Renner Berthing
@ 2021-08-01 20:19     ` Emil Renner Berthing
  2021-08-01 20:29       ` Guenter Roeck
  0 siblings, 1 reply; 7+ messages in thread
From: Emil Renner Berthing @ 2021-08-01 20:19 UTC (permalink / raw)
  To: Guenter Roeck, Drew Fustini
  Cc: Jean Delvare, Rob Herring, Jonathan Corbet, Samin Guo,
	linux-hwmon,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	linux-doc, Linux Kernel Mailing List

On Wed, 28 Jul 2021 at 19:05, Emil Renner Berthing <kernel@esmil.dk> wrote:
> On Wed, 28 Jul 2021 at 18:54, Guenter Roeck <linux@roeck-us.net> wrote:
> > On 7/26/21 10:18 AM, Emil Renner Berthing wrote:
> > > This adds a driver for the temperature sensor on the JH7100, a RISC-V
> > > SoC by StarFive Technology Co. Ltd., and most likely also the upcoming
> > > JH7110 version.
> > >
> > > The SoC is used on the BeagleV Starlight board:
> > > https://github.com/beagleboard/beaglev-starlight
> > >
> > > Support for this SoC is not yet upstreamed, but is actively worked on,
> > > so it should only be a matter of time before that happens.
> > >
> >
> > Hmm, makes me wonder if I should apply the series now or later,
> > when the chip is actually supported by the kernel. Comments/thoughts ?
> >
> > Guenter
>
> I'd of course love if it was applied now. That would at least mean
> fewer patches to rebase when keeping the beaglev patches [1] up to
> date, and I'd be very surprised if SoC support doesn't make it
> upstream eventually. But I'd also fully understand the position that
> this only makes sense to add when support for the SoC is upstream too.
> I'm adding Drew, as he might have something to say about this.

Hi Guenter,

Things have changed. The BeagleBoard.org foundation is no longer
planning to make any further boards using the JH7100 or upcoming
JH7110 SoCs from StarFive. I still think support for the JH7100 will
make it upstream eventually, but I'm no longer confident enough to
recommend merging this before there are more concrete plans for the
SoC. So thanks for the reviews. I'll repost it when I think it's time
to consider it for upstream again.

/Emil

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

* Re: [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor
  2021-08-01 20:19     ` Emil Renner Berthing
@ 2021-08-01 20:29       ` Guenter Roeck
  0 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2021-08-01 20:29 UTC (permalink / raw)
  To: Emil Renner Berthing, Drew Fustini
  Cc: Jean Delvare, Rob Herring, Jonathan Corbet, Samin Guo,
	linux-hwmon,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	linux-doc, Linux Kernel Mailing List

On 8/1/21 1:19 PM, Emil Renner Berthing wrote:
> On Wed, 28 Jul 2021 at 19:05, Emil Renner Berthing <kernel@esmil.dk> wrote:
>> On Wed, 28 Jul 2021 at 18:54, Guenter Roeck <linux@roeck-us.net> wrote:
>>> On 7/26/21 10:18 AM, Emil Renner Berthing wrote:
>>>> This adds a driver for the temperature sensor on the JH7100, a RISC-V
>>>> SoC by StarFive Technology Co. Ltd., and most likely also the upcoming
>>>> JH7110 version.
>>>>
>>>> The SoC is used on the BeagleV Starlight board:
>>>> https://github.com/beagleboard/beaglev-starlight
>>>>
>>>> Support for this SoC is not yet upstreamed, but is actively worked on,
>>>> so it should only be a matter of time before that happens.
>>>>
>>>
>>> Hmm, makes me wonder if I should apply the series now or later,
>>> when the chip is actually supported by the kernel. Comments/thoughts ?
>>>
>>> Guenter
>>
>> I'd of course love if it was applied now. That would at least mean
>> fewer patches to rebase when keeping the beaglev patches [1] up to
>> date, and I'd be very surprised if SoC support doesn't make it
>> upstream eventually. But I'd also fully understand the position that
>> this only makes sense to add when support for the SoC is upstream too.
>> I'm adding Drew, as he might have something to say about this.
> 
> Hi Guenter,
> 
> Things have changed. The BeagleBoard.org foundation is no longer
> planning to make any further boards using the JH7100 or upcoming
> JH7110 SoCs from StarFive. I still think support for the JH7100 will
> make it upstream eventually, but I'm no longer confident enough to
> recommend merging this before there are more concrete plans for the
> SoC. So thanks for the reviews. I'll repost it when I think it's time
> to consider it for upstream again.
> 

Thanks for the update.

Guenter


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

end of thread, other threads:[~2021-08-01 20:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-26 17:18 [PATCH v3 0/2] hwmon: Add StarFive JH7100 temperature sensor Emil Renner Berthing
2021-07-26 17:18 ` [PATCH v3 1/2] dt-bindings: hwmon: add starfive,jh7100-temp bindings Emil Renner Berthing
2021-07-26 17:18 ` [PATCH v3 2/2] hwmon: (sfctemp) Add StarFive JH7100 temperature sensor Emil Renner Berthing
2021-07-28 16:54 ` [PATCH v3 0/2] hwmon: " Guenter Roeck
2021-07-28 17:05   ` Emil Renner Berthing
2021-08-01 20:19     ` Emil Renner Berthing
2021-08-01 20:29       ` Guenter Roeck

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