Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Mar 2020 21:04:58 +0000 (UTC)
From:      Emmanuel Vadot <manu@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r358645 - in stable/12/sys: arm64/rockchip arm64/rockchip/clk conf
Message-ID:  <202003042104.024L4wKb023872@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: manu
Date: Wed Mar  4 21:04:57 2020
New Revision: 358645
URL: https://svnweb.freebsd.org/changeset/base/358645

Log:
  MFC r355173, r355190-r355191
  
  r355173 by mmel:
  Add driver for temperature sensors found in RK32898, RK3328 and RK3399 SoC's.
  
  Reviewed by:	manu
  Differential Revision:  https://reviews.freebsd.org/D22442
  
  r355190:
  arm64: rockchip: tsadc: Do not free the sysctl context is it wasn't created
  
  X-MFC-With:	r355173
  
  r355191:
  arm64: rockchip: rk3328: Add TSADC clocks
  
  Add the clocks so we can use the rk_tsadc driver to monitor
  the cpu temperature.

Added:
  stable/12/sys/arm64/rockchip/rk_tsadc.c
     - copied, changed from r355173, head/sys/arm64/rockchip/rk_tsadc.c
  stable/12/sys/arm64/rockchip/rk_tsadc_if.m
     - copied unchanged from r355173, head/sys/arm64/rockchip/rk_tsadc_if.m
Modified:
  stable/12/sys/arm64/rockchip/clk/rk3328_cru.c
  stable/12/sys/conf/files.arm64
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/arm64/rockchip/clk/rk3328_cru.c
==============================================================================
--- stable/12/sys/arm64/rockchip/clk/rk3328_cru.c	Wed Mar  4 21:01:25 2020	(r358644)
+++ stable/12/sys/arm64/rockchip/clk/rk3328_cru.c	Wed Mar  4 21:04:57 2020	(r358645)
@@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
 #define	PCLK_I2C1		206
 #define	PCLK_I2C2		207
 #define	PCLK_I2C3		208
+#define	PCLK_TSADC		213
 #define	HCLK_SDMMC		317
 #define	HCLK_SDIO		318
 #define	HCLK_EMMC		319
@@ -91,6 +92,8 @@ static struct rk_cru_gate rk3328_gates[] = {
 	CRU_GATE(PCLK_I2C1, "pclk_i2c1", "pclk_bus", 0x23C, 0)
 	CRU_GATE(PCLK_I2C2, "pclk_i2c2", "pclk_bus", 0x23C, 1)
 	CRU_GATE(PCLK_I2C3, "pclk_i2c3", "pclk_bus", 0x23C, 2)
+	CRU_GATE(PCLK_TSADC, "pclk_tsadc", "pclk_bus", 0x23C, 14)
+
 	CRU_GATE(PCLK_GPIO0, "pclk_gpio0", "pclk_bus", 0x240, 7)
 	CRU_GATE(PCLK_GPIO1, "pclk_gpio1", "pclk_bus", 0x240, 8)
 	CRU_GATE(PCLK_GPIO2, "pclk_gpio2", "pclk_bus", 0x240, 9)
@@ -731,6 +734,22 @@ static struct rk_clk_composite_def pclk_bus_pre = {
 	.flags = RK_CLK_COMPOSITE_HAVE_GATE,
 };
 
+/* CRU_CLKSEL_CON22 */
+
+#define SCLK_TSADC		36
+
+static const char *clk_tsadc_parents[] = {"xin24m"};
+static struct rk_clk_composite_def clk_tsadc = {
+	.clkdef = {
+		.id = SCLK_TSADC,
+		.name = "clk_tsadc",
+		.parent_names = clk_tsadc_parents,
+		.parent_cnt = nitems(clk_tsadc_parents),
+	},
+	.div_shift = 0,
+	.div_width = 9,
+};
+
 /* CRU_CLKSEL_CON28 */
 
 #define ACLK_PERI_PRE		137
@@ -1011,6 +1030,10 @@ static struct rk_clk rk3328_clks[] = {
 		.clk.armclk = &armclk,
 	},
 
+	{
+		.type = RK_CLK_COMPOSITE,
+		.clk.composite = &clk_tsadc,
+	},
 	{
 		.type = RK_CLK_COMPOSITE,
 		.clk.composite = &aclk_peri_pre,

Copied and modified: stable/12/sys/arm64/rockchip/rk_tsadc.c (from r355173, head/sys/arm64/rockchip/rk_tsadc.c)
==============================================================================
--- head/sys/arm64/rockchip/rk_tsadc.c	Thu Nov 28 17:01:31 2019	(r355173, copy source)
+++ stable/12/sys/arm64/rockchip/rk_tsadc.c	Wed Mar  4 21:04:57 2020	(r358645)
@@ -728,16 +728,17 @@ tsadc_attach(device_t dev)
 	rv = tsadc_init_sysctl(sc);
 	if (rv != 0) {
 		device_printf(sc->dev, "Cannot initialize sysctls\n");
-		goto fail;
+		goto fail_sysctl;
 	}
 
 	OF_device_register_xref(OF_xref_from_node(node), dev);
 	return (bus_generic_attach(dev));
 
+fail_sysctl:
+	sysctl_ctx_free(&tsadc_sysctl_ctx);
 fail:
 	if (sc->irq_ih != NULL)
 		bus_teardown_intr(dev, sc->irq_res, sc->irq_ih);
-	sysctl_ctx_free(&tsadc_sysctl_ctx);
 	if (sc->tsadc_clk != NULL)
 		clk_release(sc->tsadc_clk);
 	if (sc->apb_pclk_clk != NULL)

Copied: stable/12/sys/arm64/rockchip/rk_tsadc_if.m (from r355173, head/sys/arm64/rockchip/rk_tsadc_if.m)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/sys/arm64/rockchip/rk_tsadc_if.m	Wed Mar  4 21:04:57 2020	(r358645, copy of r355173, head/sys/arm64/rockchip/rk_tsadc_if.m)
@@ -0,0 +1,43 @@
+#-
+# SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+#
+# Copyright (c) 2019 Michal Meloun <mmel@FreeBSD.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+#include <machine/bus.h>
+
+INTERFACE rk_tsadc;
+
+
+/**
+ * Read temperature
+ */
+METHOD int get_temperature{
+	device_t	dev;
+	device_t	consumer;
+	uintptr_t	id;
+	int 		*val;
+};

Modified: stable/12/sys/conf/files.arm64
==============================================================================
--- stable/12/sys/conf/files.arm64	Wed Mar  4 21:01:25 2020	(r358644)
+++ stable/12/sys/conf/files.arm64	Wed Mar  4 21:04:57 2020	(r358645)
@@ -289,6 +289,8 @@ arm64/rockchip/rk_spi.c			optional fdt rk_spi
 arm64/rockchip/rk_usb2phy.c		optional fdt rk_usb2phy soc_rockchip_rk3328 | soc_rockchip_rk3399
 arm64/rockchip/rk_typec_phy.c		optional fdt rk_typec_phy soc_rockchip_rk3399
 arm64/rockchip/if_dwc_rk.c		optional fdt dwc_rk soc_rockchip_rk3328 | fdt dwc_rk soc_rockchip_rk3399
+arm64/rockchip/rk_tsadc_if.m		optional fdt soc_rockchip_rk3399
+arm64/rockchip/rk_tsadc.c		optional fdt soc_rockchip_rk3399
 dev/dwc/if_dwc.c			optional fdt dwc_rk soc_rockchip_rk3328 | fdt dwc_rk soc_rockchip_rk3399
 dev/dwc/if_dwc_if.m			optional fdt dwc_rk soc_rockchip_rk3328 | fdt dwc_rk soc_rockchip_rk3399
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003042104.024L4wKb023872>