Module Name:    src
Committed By:   jmcneill
Date:           Thu Jan 31 01:49:28 UTC 2019

Modified Files:
        src/sys/arch/arm/sunxi: sun8i_h3_ccu.c sunxi_de2_ccu.c sunxi_drm.c
            sunxi_dwhdmi.c sunxi_hdmiphy.c sunxi_lcdc.c sunxi_mixer.c

Log Message:
Add support for Allwinner H3/H5 display pipeline.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/sunxi/sun8i_h3_ccu.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/sunxi/sunxi_de2_ccu.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/sunxi/sunxi_drm.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/sunxi/sunxi_dwhdmi.c \
    src/sys/arch/arm/sunxi/sunxi_hdmiphy.c \
    src/sys/arch/arm/sunxi/sunxi_lcdc.c src/sys/arch/arm/sunxi/sunxi_mixer.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/sunxi/sun8i_h3_ccu.c
diff -u src/sys/arch/arm/sunxi/sun8i_h3_ccu.c:1.15 src/sys/arch/arm/sunxi/sun8i_h3_ccu.c:1.16
--- src/sys/arch/arm/sunxi/sun8i_h3_ccu.c:1.15	Fri Jan 12 18:22:35 2018
+++ src/sys/arch/arm/sunxi/sun8i_h3_ccu.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sun8i_h3_ccu.c,v 1.15 2018/01/12 18:22:35 jakllsch Exp $ */
+/* $NetBSD: sun8i_h3_ccu.c,v 1.16 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca>
@@ -29,7 +29,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: sun8i_h3_ccu.c,v 1.15 2018/01/12 18:22:35 jakllsch Exp $");
+__KERNEL_RCSID(1, "$NetBSD: sun8i_h3_ccu.c,v 1.16 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -43,13 +43,16 @@ __KERNEL_RCSID(1, "$NetBSD: sun8i_h3_ccu
 
 #define	PLL_CPUX_CTRL_REG	0x000
 #define	PLL_AUDIO_CTRL_REG	0x008
+#define	PLL_VIDEO_CTRL_REG	0x010
 #define	PLL_PERIPH0_CTRL_REG	0x028
+#define	PLL_DE_CTRL_REG		0x048
 #define	AHB1_APB1_CFG_REG	0x054
 #define	APB2_CFG_REG		0x058
 #define	AHB2_CFG_REG		0x05c
 #define	 AHB2_CLK_CFG		__BITS(1,0)
 #define	 AHB2_CLK_CFG_PLL_PERIPH0_2	1
 #define	BUS_CLK_GATING_REG0	0x060
+#define	BUS_CLK_GATING_REG1	0x064
 #define	BUS_CLK_GATING_REG2	0x068
 #define	BUS_CLK_GATING_REG3	0x06c
 #define	BUS_CLK_GATING_REG4	0x070
@@ -61,7 +64,11 @@ __KERNEL_RCSID(1, "$NetBSD: sun8i_h3_ccu
 #define	SPI1_CLK_REG		0x0a4
 #define	USBPHY_CFG_REG		0x0cc
 #define	MBUS_RST_REG		0x0fc
+#define	DE_CLK_REG		0x104
+#define	TCON0_CLK_REG		0x118
 #define	AC_DIG_CLK_REG		0x140
+#define	HDMI_CLK_REG		0x150
+#define	HDMI_SLOW_CLK_REG	0x154
 #define	BUS_SOFT_RST_REG0	0x2c0
 #define	BUS_SOFT_RST_REG1	0x2c4
 #define	BUS_SOFT_RST_REG2	0x2c8
@@ -149,6 +156,9 @@ static const char *apb1_parents[] = { "a
 static const char *apb2_parents[] = { "losc", "hosc", "pll_periph0" };
 static const char *mod_parents[] = { "hosc", "pll_periph0", "pll_periph1" };
 static const char *ths_parents[] = { "hosc" };
+static const char *de_parents[] = { "pll_periph0_2x", "pll_de" };
+static const char *hdmi_parents[] = { "pll_video" };
+static const char *tcon0_parents[] = { "pll_video" };
 
 static const struct sunxi_ccu_nkmp_tbl sun8i_h3_cpux_table[] = {
 	{ 60000000, 9, 0, 0, 2 },
@@ -250,6 +260,21 @@ static struct sunxi_ccu_clk sun8i_h3_ccu
 	    __BIT(31),			/* enable */
 	    SUNXI_CCU_NKMP_DIVIDE_BY_TWO),
 
+	SUNXI_CCU_FIXED_FACTOR(H3_CLK_PLL_PERIPH0_2X, "pll_periph0_2x", "pll_periph0", 1, 2),
+
+	SUNXI_CCU_FRACTIONAL(H3_CLK_PLL_VIDEO, "pll_video", "hosc",
+	    PLL_VIDEO_CTRL_REG,		/* reg */
+	    __BITS(14,8),		/* m */
+	    16,				/* m_min */
+	    50,				/* m_max */
+	    __BIT(24),			/* div_en */
+	    __BIT(25),			/* frac_sel */
+	    270000000, 297000000,	/* frac values */
+	    __BITS(3,0),		/* prediv */
+	    4,				/* prediv_val */
+	    __BIT(31),			/* enable */
+	    SUNXI_CCU_FRACTIONAL_PLUSONE | SUNXI_CCU_FRACTIONAL_SET_ENABLE),
+
 	SUNXI_CCU_NKMP_TABLE(H3_CLK_PLL_AUDIO_BASE, "pll_audio", "hosc",
 	    PLL_AUDIO_CTRL_REG,		/* reg */
 	    __BITS(14,8),		/* n */
@@ -261,6 +286,19 @@ static struct sunxi_ccu_clk sun8i_h3_ccu
 	    sun8i_h3_ac_dig_table,	/* table */
 	    0),
 
+	SUNXI_CCU_FRACTIONAL(H3_CLK_PLL_DE, "pll_de", "hosc",
+	    PLL_DE_CTRL_REG,		/* reg */
+	    __BITS(14,8),		/* m */
+	    16,				/* m_min */
+	    50,				/* m_max */
+	    __BIT(24),			/* div_en */
+	    __BIT(25),			/* frac_sel */
+	    270000000, 297000000,	/* frac values */
+	    __BITS(3,0),		/* prediv */
+	    2,				/* prediv_val */
+	    __BIT(31),			/* enable */
+	    SUNXI_CCU_FRACTIONAL_PLUSONE | SUNXI_CCU_FRACTIONAL_SET_ENABLE),
+
 	SUNXI_CCU_PREDIV(H3_CLK_AHB1, "ahb1", ahb1_parents,
 	    AHB1_APB1_CFG_REG,	/* reg */
 	    __BITS(7,6),	/* prediv */
@@ -298,6 +336,13 @@ static struct sunxi_ccu_clk sun8i_h3_ccu
 	    __BIT(31),		/* enable */
 	    SUNXI_CCU_DIV_TIMES_TWO),
 
+	SUNXI_CCU_DIV_GATE(H3_CLK_DE, "de", de_parents,
+	    DE_CLK_REG,		/* reg */
+	    __BITS(3,0),	/* div */
+	    __BITS(26,24),	/* sel */
+	    __BIT(31),		/* enable */
+	    0),
+
 	SUNXI_CCU_NM(H3_CLK_MMC0, "mmc0", mod_parents,
 	    SDMMC0_CLK_REG, __BITS(17, 16), __BITS(3,0), __BITS(25, 24), __BIT(31),
 	    SUNXI_CCU_NM_POWER_OF_TWO|SUNXI_CCU_NM_ROUND_DOWN),
@@ -338,6 +383,23 @@ static struct sunxi_ccu_clk sun8i_h3_ccu
 	SUNXI_CCU_GATE(H3_CLK_AC_DIG, "ac_dig", "pll_audio",
 	    AC_DIG_CLK_REG, 31),
 
+	SUNXI_CCU_DIV_GATE(H3_CLK_HDMI, "hdmi", hdmi_parents,
+	    HDMI_CLK_REG,	/* reg */
+	    __BITS(3,0),	/* div */
+	    __BITS(25,24),	/* sel */
+	    __BIT(31),		/* enable */
+	    0),
+
+	SUNXI_CCU_GATE(H3_CLK_HDMI_DDC, "hdmi-ddc", "hosc",
+	    HDMI_SLOW_CLK_REG, 31),
+
+	SUNXI_CCU_DIV_GATE(H3_CLK_TCON0, "tcon0", tcon0_parents,
+	    TCON0_CLK_REG,	/* reg */
+	    __BITS(3,0),	/* div */
+	    __BITS(26,24),	/* sel */
+	    __BIT(31),		/* enable */
+	    0),
+
 	SUNXI_CCU_GATE(H3_CLK_BUS_DMA, "bus-dma", "ahb1",
 	    BUS_CLK_GATING_REG0, 6),
 	SUNXI_CCU_GATE(H3_CLK_BUS_MMC0, "bus-mmc0", "ahb1",
@@ -371,6 +433,21 @@ static struct sunxi_ccu_clk sun8i_h3_ccu
 	SUNXI_CCU_GATE(H3_CLK_BUS_OHCI3, "bus-ohci3", "ahb2",
 	    BUS_CLK_GATING_REG0, 31),
 
+	SUNXI_CCU_GATE(H3_CLK_BUS_GPU, "bus-gpu", "ahb1",
+	    BUS_CLK_GATING_REG1, 20),
+	SUNXI_CCU_GATE(H3_CLK_BUS_DE, "bus-de", "ahb1",
+	    BUS_CLK_GATING_REG1, 12),
+	SUNXI_CCU_GATE(H3_CLK_BUS_HDMI, "bus-hdmi", "ahb1",
+	    BUS_CLK_GATING_REG1, 11),
+	SUNXI_CCU_GATE(H3_CLK_BUS_TVE, "bus-tve", "ahb1",
+	    BUS_CLK_GATING_REG1, 9),
+	SUNXI_CCU_GATE(H3_CLK_BUS_DEINTERLACE, "bus-deinterlace", "ahb1",
+	    BUS_CLK_GATING_REG1, 5),
+	SUNXI_CCU_GATE(H3_CLK_BUS_TCON1, "bus-tcon1", "ahb1",
+	    BUS_CLK_GATING_REG1, 4),
+	SUNXI_CCU_GATE(H3_CLK_BUS_TCON0, "bus-tcon0", "ahb1",
+	    BUS_CLK_GATING_REG1, 3),
+
 	SUNXI_CCU_GATE(H3_CLK_BUS_CODEC, "bus-codec", "apb1",
 	    BUS_CLK_GATING_REG2, 0),
 	SUNXI_CCU_GATE(H3_CLK_BUS_PIO, "bus-pio", "apb1",

Index: src/sys/arch/arm/sunxi/sunxi_de2_ccu.c
diff -u src/sys/arch/arm/sunxi/sunxi_de2_ccu.c:1.2 src/sys/arch/arm/sunxi/sunxi_de2_ccu.c:1.3
--- src/sys/arch/arm/sunxi/sunxi_de2_ccu.c:1.2	Tue Jan 22 21:45:39 2019
+++ src/sys/arch/arm/sunxi/sunxi_de2_ccu.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_de2_ccu.c,v 1.2 2019/01/22 21:45:39 jmcneill Exp $ */
+/* $NetBSD: sunxi_de2_ccu.c,v 1.3 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jared McNeill <jmcne...@invisible.ca>
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: sunxi_de2_ccu.c,v 1.2 2019/01/22 21:45:39 jmcneill Exp $");
+__KERNEL_RCSID(1, "$NetBSD: sunxi_de2_ccu.c,v 1.3 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -46,6 +46,11 @@ static void sunxi_de2_ccu_attach(device_
 CFATTACH_DECL_NEW(sunxi_de2ccu, sizeof(struct sunxi_ccu_softc),
 	sunxi_de2_ccu_match, sunxi_de2_ccu_attach, NULL, NULL);
 
+static struct sunxi_ccu_reset sun8i_h3_de2_ccu_resets[] = {
+	SUNXI_CCU_RESET(DE2_RST_MIXER0, 0x08, 0),
+	SUNXI_CCU_RESET(DE2_RST_WB, 0x08, 2),
+};
+
 static struct sunxi_ccu_reset sun50i_a64_de2_ccu_resets[] = {
 	SUNXI_CCU_RESET(DE2_RST_MIXER0, 0x08, 0),
 	SUNXI_CCU_RESET(DE2_RST_MIXER1, 0x08, 1),
@@ -54,7 +59,7 @@ static struct sunxi_ccu_reset sun50i_a64
 
 static const char *mod_parents[] = { "mod" };
 
-static struct sunxi_ccu_clk sun50i_a64_de2_ccu_clks[] = {
+static struct sunxi_ccu_clk sun8i_h3_de2_ccu_clks[] = {
 	SUNXI_CCU_GATE(DE2_CLK_BUS_MIXER0, "bus-mixer0", "bus", 0x04, 0),
 	SUNXI_CCU_GATE(DE2_CLK_BUS_MIXER1, "bus-mixer1", "bus", 0x04, 1),
 	SUNXI_CCU_GATE(DE2_CLK_BUS_WB, "bus-wb", "bus", 0x04, 2),
@@ -78,15 +83,24 @@ struct sunxi_de2_ccu_config {
 	u_int			nclks;
 };
 
+static const struct sunxi_de2_ccu_config sun8i_h3_de2_config = {
+	.resets = sun8i_h3_de2_ccu_resets,
+	.nresets = __arraycount(sun8i_h3_de2_ccu_resets),
+	.clks = sun8i_h3_de2_ccu_clks,
+	.nclks = __arraycount(sun8i_h3_de2_ccu_clks),
+};
+
 static const struct sunxi_de2_ccu_config sun50i_a64_de2_config = {
 	.resets = sun50i_a64_de2_ccu_resets,
 	.nresets = __arraycount(sun50i_a64_de2_ccu_resets),
-	.clks = sun50i_a64_de2_ccu_clks,
-	.nclks = __arraycount(sun50i_a64_de2_ccu_clks),
+	.clks = sun8i_h3_de2_ccu_clks,
+	.nclks = __arraycount(sun8i_h3_de2_ccu_clks),
 };
 
 static const struct of_compat_data compat_data[] = {
+	{ "allwinner,sun8i-h3-de2-clk",		(uintptr_t)&sun8i_h3_de2_config },
 	{ "allwinner,sun50i-a64-de2-clk",	(uintptr_t)&sun50i_a64_de2_config },
+	{ "allwinner,sun50i-h5-de2-clk",	(uintptr_t)&sun50i_a64_de2_config },
 	{ NULL }
 };
 

Index: src/sys/arch/arm/sunxi/sunxi_drm.c
diff -u src/sys/arch/arm/sunxi/sunxi_drm.c:1.3 src/sys/arch/arm/sunxi/sunxi_drm.c:1.4
--- src/sys/arch/arm/sunxi/sunxi_drm.c:1.3	Wed Jan 30 10:55:44 2019
+++ src/sys/arch/arm/sunxi/sunxi_drm.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_drm.c,v 1.3 2019/01/30 10:55:44 jmcneill Exp $ */
+/* $NetBSD: sunxi_drm.c,v 1.4 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_drm.c,v 1.3 2019/01/30 10:55:44 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_drm.c,v 1.4 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -54,6 +54,7 @@ static TAILQ_HEAD(, sunxi_drm_endpoint) 
     TAILQ_HEAD_INITIALIZER(sunxi_drm_endpoints);
 
 static const char * const compatible[] = {
+	"allwinner,sun8i-h3-display-engine",
 	"allwinner,sun50i-a64-display-engine",
 	NULL
 };

Index: src/sys/arch/arm/sunxi/sunxi_dwhdmi.c
diff -u src/sys/arch/arm/sunxi/sunxi_dwhdmi.c:1.1 src/sys/arch/arm/sunxi/sunxi_dwhdmi.c:1.2
--- src/sys/arch/arm/sunxi/sunxi_dwhdmi.c:1.1	Wed Jan 30 01:24:00 2019
+++ src/sys/arch/arm/sunxi/sunxi_dwhdmi.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_dwhdmi.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $ */
+/* $NetBSD: sunxi_dwhdmi.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_dwhdmi.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_dwhdmi.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -52,6 +52,7 @@ enum {
 };
 
 static const char * const compatible[] = {
+	"allwinner,sun8i-h3-dw-hdmi",
 	"allwinner,sun50i-a64-dw-hdmi",
 	NULL
 };
Index: src/sys/arch/arm/sunxi/sunxi_hdmiphy.c
diff -u src/sys/arch/arm/sunxi/sunxi_hdmiphy.c:1.1 src/sys/arch/arm/sunxi/sunxi_hdmiphy.c:1.2
--- src/sys/arch/arm/sunxi/sunxi_hdmiphy.c:1.1	Wed Jan 30 01:24:00 2019
+++ src/sys/arch/arm/sunxi/sunxi_hdmiphy.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_hdmiphy.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $ */
+/* $NetBSD: sunxi_hdmiphy.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jared McNeill <jmcne...@invisible.ca>
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: sunxi_hdmiphy.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_hdmiphy.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -102,21 +102,22 @@ struct sunxi_hdmiphy_softc;
 static int sunxi_hdmiphy_match(device_t, cfdata_t, void *);
 static void sunxi_hdmiphy_attach(device_t, device_t, void *);
 
-static void sun50i_a64_hdmiphy_init(struct sunxi_hdmiphy_softc *);
-static int sun50i_a64_hdmiphy_config(struct sunxi_hdmiphy_softc *, u_int);
+static void sun8i_h3_hdmiphy_init(struct sunxi_hdmiphy_softc *);
+static int sun8i_h3_hdmiphy_config(struct sunxi_hdmiphy_softc *, u_int);
 
 struct sunxi_hdmiphy_data {
 	void	(*init)(struct sunxi_hdmiphy_softc *);
 	int	(*config)(struct sunxi_hdmiphy_softc *, u_int);
 };
 
-static const struct sunxi_hdmiphy_data sun50i_a64_hdmiphy_data = {
-	.init = sun50i_a64_hdmiphy_init,
-	.config = sun50i_a64_hdmiphy_config,
+static const struct sunxi_hdmiphy_data sun8i_h3_hdmiphy_data = {
+	.init = sun8i_h3_hdmiphy_init,
+	.config = sun8i_h3_hdmiphy_config,
 };
 
 static const struct of_compat_data compat_data[] = {
-	{ "allwinner,sun50i-a64-hdmi-phy",	(uintptr_t)&sun50i_a64_hdmiphy_data },
+	{ "allwinner,sun8i-h3-hdmi-phy",	(uintptr_t)&sun8i_h3_hdmiphy_data },
+	{ "allwinner,sun50i-a64-hdmi-phy",	(uintptr_t)&sun8i_h3_hdmiphy_data },
 	{ NULL }
 };
 
@@ -201,7 +202,7 @@ sunxi_hdmiphy_dump(struct sunxi_hdmiphy_
 #endif
 
 static void
-sun50i_a64_hdmiphy_init(struct sunxi_hdmiphy_softc *sc)
+sun8i_h3_hdmiphy_init(struct sunxi_hdmiphy_softc *sc)
 {
 	uint32_t val;
 	int retry;
@@ -266,7 +267,7 @@ sun50i_a64_hdmiphy_init(struct sunxi_hdm
 /*
  * The following table is based on data from the "HDMI TX PHY S40 Specification".
  */
-static const struct sun50i_a64_hdmiphy_init {
+static const struct sun8i_h3_hdmiphy_init {
 	/* PLL Recommended Configuration */
 	uint32_t pll_cfg1;
 	uint32_t pll_cfg2;
@@ -277,7 +278,7 @@ static const struct sun50i_a64_hdmiphy_i
 	uint32_t ana_cfg3;
 	bool ana_cfg2_rcal_200;
 	u_int b_offset;
-} sun50i_a64_hdmiphy_inittab[] = {
+} sun8i_h3_hdmiphy_inittab[] = {
 	/* 27 MHz */
 	[0] = {
 		.pll_cfg1 = 0x3ddc5040,	.pll_cfg2 = 0x8008430a,	.pll_cfg3 = 0x1,
@@ -304,9 +305,9 @@ static const struct sun50i_a64_hdmiphy_i
 };
 
 static int
-sun50i_a64_hdmiphy_config(struct sunxi_hdmiphy_softc *sc, u_int rate)
+sun8i_h3_hdmiphy_config(struct sunxi_hdmiphy_softc *sc, u_int rate)
 {
-	const struct sun50i_a64_hdmiphy_init *inittab;
+	const struct sun8i_h3_hdmiphy_init *inittab;
 	u_int init_index, b_out, prediv;
 	uint32_t val, rcalib;
 
@@ -324,7 +325,7 @@ sun50i_a64_hdmiphy_config(struct sunxi_h
 		init_index++;
 	if (rate > 148500000)
 		init_index++;
-	inittab = &sun50i_a64_hdmiphy_inittab[init_index];
+	inittab = &sun8i_h3_hdmiphy_inittab[init_index];
 
 	val = PHY_READ(sc, PLL_CFG2);
 	prediv = val & PLL_CFG2_PREDIV;
Index: src/sys/arch/arm/sunxi/sunxi_lcdc.c
diff -u src/sys/arch/arm/sunxi/sunxi_lcdc.c:1.1 src/sys/arch/arm/sunxi/sunxi_lcdc.c:1.2
--- src/sys/arch/arm/sunxi/sunxi_lcdc.c:1.1	Wed Jan 30 01:24:00 2019
+++ src/sys/arch/arm/sunxi/sunxi_lcdc.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_lcdc.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $ */
+/* $NetBSD: sunxi_lcdc.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_lcdc.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_lcdc.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -77,6 +77,7 @@ enum {
 };
 
 static const char * const compatible[] = {
+	"allwinner,sun8i-h3-tcon-tv",
 	"allwinner,sun50i-a64-tcon-lcd",
 	"allwinner,sun50i-a64-tcon-tv",
 	NULL
Index: src/sys/arch/arm/sunxi/sunxi_mixer.c
diff -u src/sys/arch/arm/sunxi/sunxi_mixer.c:1.1 src/sys/arch/arm/sunxi/sunxi_mixer.c:1.2
--- src/sys/arch/arm/sunxi/sunxi_mixer.c:1.1	Wed Jan 30 01:24:00 2019
+++ src/sys/arch/arm/sunxi/sunxi_mixer.c	Thu Jan 31 01:49:28 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_mixer.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $ */
+/* $NetBSD: sunxi_mixer.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_mixer.c,v 1.1 2019/01/30 01:24:00 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_mixer.c,v 1.2 2019/01/31 01:49:28 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -90,6 +90,7 @@ enum {
 };
 
 static const char * const compatible[] = {
+	"allwinner,sun8i-h3-de2-mixer-0",
 	"allwinner,sun50i-a64-de2-mixer-0",
 	"allwinner,sun50i-a64-de2-mixer-1",
 	NULL

Reply via email to