summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorjmcneill <jmcneill@NetBSD.org>2019-01-19 20:53:32 +0000
committerjmcneill <jmcneill@NetBSD.org>2019-01-19 20:53:32 +0000
commitcbb631a1f61aceae674423db0795ebef69859e77 (patch)
treefdc59d6f0ca47ad8faa6f1d07ddc59f7166ba783 /sys/dev
parent4e0f51de1ba7f9cbb026bff8e1fcc6488b421954 (diff)
Add support for Meson8b
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/fdt/dwc2_fdt.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/sys/dev/fdt/dwc2_fdt.c b/sys/dev/fdt/dwc2_fdt.c
index 2f515a3ccf4..ca58f21ffb5 100644
--- a/sys/dev/fdt/dwc2_fdt.c
+++ b/sys/dev/fdt/dwc2_fdt.c
@@ -1,4 +1,4 @@
-/* $NetBSD: dwc2_fdt.c,v 1.3 2018/08/15 07:46:15 skrll Exp $ */
+/* $NetBSD: dwc2_fdt.c,v 1.4 2019/01/19 20:53:32 jmcneill Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2_fdt.c,v 1.3 2018/08/15 07:46:15 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2_fdt.c,v 1.4 2019/01/19 20:53:32 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -64,6 +64,7 @@ static int dwc2_fdt_match(device_t, struct cfdata *, void *);
static void dwc2_fdt_attach(device_t, device_t, void *);
static void dwc2_fdt_deferred(device_t);
+static void dwc2_fdt_amlogic_params(struct dwc2_fdt_softc *, struct dwc2_core_params *);
static void dwc2_fdt_rockchip_params(struct dwc2_fdt_softc *, struct dwc2_core_params *);
struct dwc2_fdt_config {
@@ -74,10 +75,15 @@ static const struct dwc2_fdt_config dwc2_fdt_rk3066_config = {
.params = dwc2_fdt_rockchip_params,
};
+static const struct dwc2_fdt_config dwc2_fdt_meson8b_config = {
+ .params = dwc2_fdt_amlogic_params,
+};
+
static const struct dwc2_fdt_config dwc2_fdt_generic_config = {
};
static const struct of_compat_data compat_data[] = {
+ { "amlogic,meson8b-usb", (uintptr_t)&dwc2_fdt_meson8b_config },
{ "rockchip,rk3066-usb", (uintptr_t)&dwc2_fdt_rk3066_config },
{ "snps,dwc2", (uintptr_t)&dwc2_fdt_generic_config },
{ NULL }
@@ -197,6 +203,24 @@ dwc2_fdt_deferred(device_t self)
}
static void
+dwc2_fdt_amlogic_params(struct dwc2_fdt_softc *sc, struct dwc2_core_params *params)
+{
+ dwc2_set_all_params(params, -1);
+
+ params->otg_cap = DWC2_CAP_PARAM_NO_HNP_SRP_CAPABLE;
+ params->speed = DWC2_SPEED_PARAM_HIGH;
+ params->host_rx_fifo_size = 512;
+ params->host_nperio_tx_fifo_size = 500;
+ params->host_perio_tx_fifo_size = 500;
+ params->host_channels = 16;
+ params->phy_type = DWC2_PHY_TYPE_PARAM_UTMI;
+ params->ahbcfg = GAHBCFG_HBSTLEN_INCR8 << GAHBCFG_HBSTLEN_SHIFT;
+#ifdef DWC2_POWER_DOWN_PARAM_NONE
+ params->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+#endif
+}
+
+static void
dwc2_fdt_rockchip_params(struct dwc2_fdt_softc *sc, struct dwc2_core_params *params)
{
dwc2_set_all_params(params, -1);