Module Name: src
Committed By: khorben
Date: Wed May 15 13:52:19 UTC 2013
Modified Files:
src/sys/dev/spi [khorben-n900]: files.spi spi.c spivar.h
Log Message:
Let the bus speed of SPI devices be specified within the kernel
configuration.
To generate a diff of this commit:
cvs rdiff -u -r1.2.114.1 -r1.2.114.2 src/sys/dev/spi/files.spi
cvs rdiff -u -r1.8.6.1 -r1.8.6.2 src/sys/dev/spi/spi.c
cvs rdiff -u -r1.4.20.1 -r1.4.20.2 src/sys/dev/spi/spivar.h
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/spi/files.spi
diff -u src/sys/dev/spi/files.spi:1.2.114.1 src/sys/dev/spi/files.spi:1.2.114.2
--- src/sys/dev/spi/files.spi:1.2.114.1 Fri May 10 01:25:07 2013
+++ src/sys/dev/spi/files.spi Wed May 15 13:52:19 2013
@@ -1,8 +1,8 @@
-# $NetBSD: files.spi,v 1.2.114.1 2013/05/10 01:25:07 khorben Exp $
+# $NetBSD: files.spi,v 1.2.114.2 2013/05/15 13:52:19 khorben Exp $
define spibus { }
-device spi { slave, [intr = -1] }
+device spi { slave, [intr = -1], [speed = -1] }
attach spi at spibus
file dev/spi/spi.c spi | spibus
Index: src/sys/dev/spi/spi.c
diff -u src/sys/dev/spi/spi.c:1.8.6.1 src/sys/dev/spi/spi.c:1.8.6.2
--- src/sys/dev/spi/spi.c:1.8.6.1 Fri May 10 01:25:07 2013
+++ src/sys/dev/spi/spi.c Wed May 15 13:52:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: spi.c,v 1.8.6.1 2013/05/10 01:25:07 khorben Exp $ */
+/* $NetBSD: spi.c,v 1.8.6.2 2013/05/15 13:52:19 khorben Exp $ */
/*-
* Copyright (c) 2006 Urbana-Champaign Independent Media Center.
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spi.c,v 1.8.6.1 2013/05/10 01:25:07 khorben Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spi.c,v 1.8.6.2 2013/05/15 13:52:19 khorben Exp $");
#include "locators.h"
@@ -120,6 +120,7 @@ spi_search(device_t parent, cfdata_t cf,
sa.sa_handle = &sc->sc_slaves[addr];
sa.sa_intr = cf->cf_loc[SPICF_INTR];
+ sa.sa_speed = cf->cf_loc[SPICF_SPEED];
if (config_match(parent, cf, &sa) > 0)
config_attach(parent, cf, &sa, spi_print);
@@ -197,8 +198,7 @@ spi_configure(struct spi_handle *sh, int
if (sc->sc_speed)
speed = min(sc->sc_speed, speed);
- rv = (*tag->sct_configure)(tag->sct_cookie, sh->sh_slave,
- mode, speed);
+ rv = (*tag->sct_configure)(tag->sct_cookie, sh->sh_slave, mode, speed);
if (rv == 0) {
sc->sc_mode = mode;
@@ -211,7 +211,6 @@ spi_configure(struct spi_handle *sh, int
void
spi_transfer_init(struct spi_transfer *st)
{
-
mutex_init(&st->st_lock, MUTEX_DEFAULT, IPL_BIO);
cv_init(&st->st_cv, "spicv");
Index: src/sys/dev/spi/spivar.h
diff -u src/sys/dev/spi/spivar.h:1.4.20.1 src/sys/dev/spi/spivar.h:1.4.20.2
--- src/sys/dev/spi/spivar.h:1.4.20.1 Fri May 10 01:25:07 2013
+++ src/sys/dev/spi/spivar.h Wed May 15 13:52:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: spivar.h,v 1.4.20.1 2013/05/10 01:25:07 khorben Exp $ */
+/* $NetBSD: spivar.h,v 1.4.20.2 2013/05/15 13:52:19 khorben Exp $ */
/*-
* Copyright (c) 2006 Urbana-Champaign Independent Media Center.
@@ -83,6 +83,7 @@ struct spibus_attach_args {
struct spi_attach_args {
struct spi_handle *sa_handle;
int sa_intr;
+ int sa_speed;
};
/*