summaryrefslogtreecommitdiffstats
path: root/sys/dev/spibus/spibusvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/spibus/spibusvar.h')
-rw-r--r--sys/dev/spibus/spibusvar.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/sys/dev/spibus/spibusvar.h b/sys/dev/spibus/spibusvar.h
new file mode 100644
index 0000000..78baaac
--- /dev/null
+++ b/sys/dev/spibus/spibusvar.h
@@ -0,0 +1,28 @@
+/ * $FreeBSD$ */
+
+#define SPIBUS_IVAR(d) (struct spibus_ivar *) device_get_ivars(d)
+#define SPIBUS_SOFTC(d) (struct spibus_softc *) device_get_softc(d)
+
+struct spibus_softc
+{
+ device_t dev;
+};
+
+struct spibus_ivar
+{
+ uint32_t cs;
+};
+
+enum {
+ SPIBUS_IVAR_CS /* chip select that we're on */
+};
+
+#define SPIBUS_ACCESSOR(A, B, T) \
+__inline static int \
+spibus_get_ ## A(device_t dev, T *t) \
+{ \
+ return BUS_READ_IVAR(device_get_parent(dev), dev, \
+ SPIBUS_IVAR_ ## B, (uintptr_t *) t); \
+}
+
+SPIBUS_ACCESSOR(cs, CS, uint32_t)
OpenPOWER on IntegriCloud