Module Name: src
Committed By: kiyohara
Date: Thu Nov 21 13:52:27 UTC 2013
Modified Files:
src/sys/arch/evbppc/obs405: obs600_autoconf.c
src/sys/arch/powerpc/ibm4xx/dev: dwctwo_plb.c
Log Message:
Move the parameters for obs600 to obs600_autoconf.c. This parameters was set
from u-boot.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbppc/obs405/obs600_autoconf.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.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/evbppc/obs405/obs600_autoconf.c
diff -u src/sys/arch/evbppc/obs405/obs600_autoconf.c:1.6 src/sys/arch/evbppc/obs405/obs600_autoconf.c:1.7
--- src/sys/arch/evbppc/obs405/obs600_autoconf.c:1.6 Tue Jan 10 12:17:20 2012
+++ src/sys/arch/evbppc/obs405/obs600_autoconf.c Thu Nov 21 13:52:27 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: obs600_autoconf.c,v 1.6 2012/01/10 12:17:20 kiyohara Exp $ */
+/* $NetBSD: obs600_autoconf.c,v 1.7 2013/11/21 13:52:27 kiyohara Exp $ */
/*
* Copyright 2004 Shigeyuki Fukushima.
@@ -33,7 +33,9 @@
* DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: obs600_autoconf.c,v 1.6 2012/01/10 12:17:20 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: obs600_autoconf.c,v 1.7 2013/11/21 13:52:27 kiyohara Exp $");
+
+#include "dwctwo.h"
#include <sys/systm.h>
#include <sys/device.h>
@@ -47,6 +49,44 @@ __KERNEL_RCSID(0, "$NetBSD: obs600_autoc
#include <dev/ic/comreg.h>
+#if NDWCTWO > 0
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+#include <dev/usb/usbdivar.h>
+
+#include <dwc2/dwc2.h>
+#include "dwc2_core.h"
+
+/* This parameters was set from u-boot. */
+static struct dwc2_core_params dwctwo_obs600_params = {
+ .otg_cap = 0, /* HNP/SRP capable */
+ .otg_ver = 0, /* 1.3 */
+ .dma_enable = 1,
+ .dma_desc_enable = 0,
+ .speed = 0, /* High Speed */
+ .enable_dynamic_fifo = 1,
+ .en_multiple_tx_fifo = 0,
+ .host_rx_fifo_size = 531, /* 531 DWORDs */
+ .host_nperio_tx_fifo_size = 256, /* 256 DWORDs */
+ .host_perio_tx_fifo_size = 256, /* 256 DWORDs */
+ .max_transfer_size = 524287,
+ .max_packet_count = 1023,
+ .host_channels = 4,
+ .phy_type = 2, /* ULPI */
+ .phy_utmi_width = 8, /* 8 bits */
+ .phy_ulpi_ddr = 0, /* Single */
+ .phy_ulpi_ext_vbus = 0,
+ .i2c_enable = 0,
+ .ulpi_fs_ls = 0,
+ .host_support_fs_ls_low_power = 0,
+ .host_ls_low_power_phy_clk = 0, /* 48 MHz */
+ .ts_dline = 0,
+ .reload_ctl = 0,
+ .ahbcfg = 0x10,
+ .uframe_sched = 1,
+};
+#endif
+
/*
* Determine device configuration for a machine.
@@ -80,5 +120,15 @@ void
device_register(device_t dev, void *aux)
{
+#if NDWCTWO > 0
+ if (device_is_a(dev, "dwctwo")) {
+ prop_dictionary_t dict = device_properties(dev);
+
+ prop_dictionary_set_uint32(dict, "params",
+ (uint32_t)&dwctwo_obs600_params);
+ return;
+ }
+#endif
+
obs405_device_register(dev, aux, OBS600_COM_FREQ);
}
Index: src/sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c
diff -u src/sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c:1.1 src/sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c:1.2
--- src/sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c:1.1 Thu Nov 21 13:33:15 2013
+++ src/sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c Thu Nov 21 13:52:27 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: dwctwo_plb.c,v 1.1 2013/11/21 13:33:15 kiyohara Exp $ */
+/* $NetBSD: dwctwo_plb.c,v 1.2 2013/11/21 13:52:27 kiyohara Exp $ */
/*
* Copyright (c) 2013 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwctwo_plb.c,v 1.1 2013/11/21 13:33:15 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwctwo_plb.c,v 1.2 2013/11/21 13:52:27 kiyohara Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -67,34 +67,6 @@ static struct powerpc_bus_space dwctwo_t
static char ex_storage[EXTENT_FIXED_STORAGE_SIZE(8)]
__attribute__((aligned(8)));
-static struct dwc2_core_params dwctwo_405ex_params = {
- .otg_cap = 0, /* HNP/SRP capable */
- .otg_ver = 0, /* 1.3 */
- .dma_enable = 1,
- .dma_desc_enable = 0,
- .speed = 0, /* High Speed */
- .enable_dynamic_fifo = 1,
- .en_multiple_tx_fifo = 0,
- .host_rx_fifo_size = 531, /* 531 DWORDs */
- .host_nperio_tx_fifo_size = 256, /* 256 DWORDs */
- .host_perio_tx_fifo_size = 256, /* 256 DWORDs */
- .max_transfer_size = 524287,
- .max_packet_count = 1023,
- .host_channels = 4,
- .phy_type = 2, /* ULPI */
- .phy_utmi_width = 8, /* 8 bits */
- .phy_ulpi_ddr = 0, /* Single */
- .phy_ulpi_ext_vbus = 0,
- .i2c_enable = 0,
- .ulpi_fs_ls = 0,
- .host_support_fs_ls_low_power = 0,
- .host_ls_low_power_phy_clk = 0, /* 48 MHz */
- .ts_dline = 0,
- .reload_ctl = 0,
- .ahbcfg = 0x10,
- .uframe_sched = 1,
-};
-
static int
dwctwo_plb_match(device_t parent, cfdata_t match, void *aux)
@@ -119,10 +91,17 @@ dwctwo_plb_attach(device_t parent, devic
{
struct dwc2_softc *sc = device_private(self);
struct plb_attach_args *paa = aux;
+ prop_dictionary_t dict = device_properties(self);
uint32_t srst0;
sc->sc_dev = self;
- sc->sc_params = &dwctwo_405ex_params;
+
+ /* get core parameters */
+ if (!prop_dictionary_get_uint32(dict, "params",
+ (uint32_t *)&sc->sc_params)) {
+ aprint_error("struct dwc2_core_params not found\n");
+ return;
+ }
dwctwo_tag.pbs_base = paa->plb_addr;
dwctwo_tag.pbs_limit += paa->plb_addr;