Module Name: src
Committed By: jmcneill
Date: Sat Mar 3 01:19:46 UTC 2018
Modified Files:
src/sys/arch/arm/sunxi: sunxi_platform.c
Log Message:
Add H6 support
To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/sunxi/sunxi_platform.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/sunxi_platform.c
diff -u src/sys/arch/arm/sunxi/sunxi_platform.c:1.19 src/sys/arch/arm/sunxi/sunxi_platform.c:1.20
--- src/sys/arch/arm/sunxi/sunxi_platform.c:1.19 Sat Jan 27 14:17:45 2018
+++ src/sys/arch/arm/sunxi/sunxi_platform.c Sat Mar 3 01:19:46 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_platform.c,v 1.19 2018/01/27 14:17:45 jmcneill Exp $ */
+/* $NetBSD: sunxi_platform.c,v 1.20 2018/03/03 01:19:46 jmcneill Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -31,7 +31,7 @@
#include "opt_fdt_arm.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.19 2018/01/27 14:17:45 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.20 2018/03/03 01:19:46 jmcneill Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -95,6 +95,13 @@ __KERNEL_RCSID(0, "$NetBSD: sunxi_platfo
#define SUN9I_WDT_MODE 0x18
#define SUN9I_WDT_MODE_EN __BIT(0)
+#define SUN50I_H6_WDT_BASE 0x01c20ca0
+#define SUN50I_H6_WDT_SIZE 0x20
+#define SUN50I_H6_WDT_CFG 0x14
+#define SUN50I_H6_WDT_CFG_SYS __BIT(0)
+#define SUN50I_H6_WDT_MODE 0x18
+#define SUN50I_H6_WDT_MODE_EN __BIT(0)
+
extern struct bus_space armv7_generic_bs_tag;
extern struct bus_space armv7_generic_a4x_bs_tag;
extern struct arm32_bus_dma_tag armv7_generic_dma_tag;
@@ -251,6 +258,18 @@ sun9i_platform_reset(void)
bus_space_write_4(bst, bsh, SUN9I_WDT_MODE, SUN9I_WDT_MODE_EN);
}
+static void
+sun50i_h6_platform_reset(void)
+{
+ bus_space_tag_t bst = &armv7_generic_bs_tag;
+ bus_space_handle_t bsh;
+
+ bus_space_map(bst, SUN50I_H6_WDT_BASE, SUN50I_H6_WDT_SIZE, 0, &bsh);
+
+ bus_space_write_4(bst, bsh, SUN50I_H6_WDT_CFG, SUN50I_H6_WDT_CFG_SYS);
+ bus_space_write_4(bst, bsh, SUN50I_H6_WDT_MODE, SUN50I_H6_WDT_MODE_EN);
+}
+
static const struct arm_platform sun4i_platform = {
.devmap = sunxi_platform_devmap,
.bootstrap = sunxi_platform_bootstrap,
@@ -345,3 +364,16 @@ static const struct arm_platform sun50i_
ARM_PLATFORM(sun50i_a64, "allwinner,sun50i-a64", &sun50i_platform);
ARM_PLATFORM(sun50i_h5, "allwinner,sun50i-h5", &sun50i_platform);
+
+static const struct arm_platform sun50i_h6_platform = {
+ .devmap = sunxi_platform_devmap,
+ .bootstrap = sunxi_platform_bootstrap,
+ .init_attach_args = sunxi_platform_init_attach_args,
+ .early_putchar = sunxi_platform_early_putchar,
+ .device_register = sunxi_platform_device_register,
+ .reset = sun50i_h6_platform_reset,
+ .delay = gtmr_delay,
+ .uart_freq = sunxi_platform_uart_freq,
+};
+
+ARM_PLATFORM(sun50i_h6, "allwinner,sun50i-h6", &sun50i_h6_platform);