Module Name: src Committed By: jmcneill Date: Sat Jan 19 20:53:32 UTC 2019
Modified Files: src/sys/dev/fdt: dwc2_fdt.c Log Message: Add support for Meson8b To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/dev/fdt/dwc2_fdt.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/dev/fdt/dwc2_fdt.c diff -u src/sys/dev/fdt/dwc2_fdt.c:1.3 src/sys/dev/fdt/dwc2_fdt.c:1.4 --- src/sys/dev/fdt/dwc2_fdt.c:1.3 Wed Aug 15 07:46:15 2018 +++ src/sys/dev/fdt/dwc2_fdt.c Sat Jan 19 20:53:32 2019 @@ -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, stru 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 .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);