svn commit: r300712 - head/sys/dev/spibus
Adrian Chadd
adrian at FreeBSD.org
Thu May 26 06:37:34 UTC 2016
Author: adrian
Date: Thu May 26 06:37:33 2016
New Revision: 300712
URL: https://svnweb.freebsd.org/changeset/base/300712
Log:
[spibus] implement maximum clock frequency lookup from ofw.
Obtained from: loos
Modified:
head/sys/dev/spibus/ofw_spibus.c
Modified: head/sys/dev/spibus/ofw_spibus.c
==============================================================================
--- head/sys/dev/spibus/ofw_spibus.c Thu May 26 06:36:58 2016 (r300711)
+++ head/sys/dev/spibus/ofw_spibus.c Thu May 26 06:37:33 2016 (r300712)
@@ -78,7 +78,7 @@ ofw_spibus_attach(device_t dev)
struct spibus_softc *sc = device_get_softc(dev);
struct ofw_spibus_devinfo *dinfo;
phandle_t child;
- pcell_t paddr;
+ pcell_t clock, paddr;
device_t childdev;
sc->dev = dev;
@@ -103,6 +103,14 @@ ofw_spibus_attach(device_t dev)
}
/*
+ * Get the maximum clock frequency for device, zero means
+ * use the default bus speed.
+ */
+ if (OF_getencprop(child, "spi-max-frequency", &clock,
+ sizeof(clock)) == -1)
+ clock = 0;
+
+ /*
* Now set up the SPI and OFW bus layer devinfo and add it
* to the bus.
*/
@@ -111,6 +119,7 @@ ofw_spibus_attach(device_t dev)
if (dinfo == NULL)
continue;
dinfo->opd_dinfo.cs = paddr;
+ dinfo->opd_dinfo.clock = clock;
if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) !=
0) {
free(dinfo, M_DEVBUF);
More information about the svn-src-head
mailing list