svn commit: r358645 - in stable/12/sys: arm64/rockchip arm64/rockchip/clk conf
Emmanuel Vadot
manu at FreeBSD.org
Wed Mar 4 21:04:59 UTC 2020
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 at 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
More information about the svn-src-all
mailing list