summaryrefslogtreecommitdiff
path: root/sys/dev/onewire/onewirevar.h
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2006-03-04 16:27:04 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2006-03-04 16:27:04 +0000
commitb9fdb6aa1f532061d14d21ff8ee5f45831608e29 (patch)
tree9e1d8c3405a020362b98336dad9791c05cf2d89e /sys/dev/onewire/onewirevar.h
parent15aac0ded9c4353cc6a757bb184367d5503f80d8 (diff)
Dallas 1-Wire bus support. Includes the following drivers:
gpioow(4) 1-Wire bus bit-banging through GPIO pin onewire(4) 1-Wire bus driver owid(4) 1-Wire ID family type device owtemp(4) 1-Wire temperature family type device Drivers for RS-232 and USB bus masters will follow. ok deraadt@
Diffstat (limited to 'sys/dev/onewire/onewirevar.h')
-rw-r--r--sys/dev/onewire/onewirevar.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/sys/dev/onewire/onewirevar.h b/sys/dev/onewire/onewirevar.h
new file mode 100644
index 00000000000..51b7ea4a434
--- /dev/null
+++ b/sys/dev/onewire/onewirevar.h
@@ -0,0 +1,86 @@
+/* $OpenBSD: onewirevar.h,v 1.1 2006/03/04 16:27:03 grange Exp $ */
+
+/*
+ * Copyright (c) 2006 Alexander Yurchenko <grange@openbsd.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _DEV_ONEWIRE_ONEWIREVAR_H_
+#define _DEV_ONEWIRE_ONEWIREVAR_H_
+
+/*
+ * 1-Wire bus interface.
+ */
+
+/* Bus master interface */
+struct onewire_bus {
+ void * bus_cookie;
+
+ int (*bus_reset)(void *);
+ int (*bus_bit)(void *, int);
+ int (*bus_read_byte)(void *);
+ void (*bus_write_byte)(void *, int);
+ int (*bus_triplet)(void *, int);
+};
+
+/* Bus methods */
+int onewire_lock(void *, int);
+void onewire_unlock(void *);
+int onewire_reset(void *);
+int onewire_bit(void *, int);
+int onewire_read_byte(void *);
+void onewire_write_byte(void *, int);
+int onewire_triplet(void *, int);
+void onewire_read_block(void *, void *, int);
+void onewire_write_block(void *, const void *, int);
+void onewire_matchrom(void *, u_int64_t);
+
+#define ONEWIRE_NOWAIT 0x0001
+
+/* Bus attachment */
+struct onewirebus_attach_args {
+ struct onewire_bus * oba_bus;
+};
+
+int onewirebus_print(void *, const char *);
+
+/* Device attachment */
+struct onewire_attach_args {
+ void * oa_onewire;
+ u_int64_t oa_rom;
+};
+
+/* Family matching */
+struct onewire_matchfam {
+ int om_type;
+};
+
+/* Miscellaneous routines */
+int onewire_crc(const void *, int);
+const char * onewire_famname(int);
+int onewire_matchbyfam(struct onewire_attach_args *,
+ const struct onewire_matchfam *, int);
+
+/* Bus bit-banging */
+struct onewire_bbops {
+ void (*bb_rx)(void *);
+ void (*bb_tx)(void *);
+ int (*bb_get)(void *);
+ void (*bb_set)(void *, int);
+};
+
+int onewire_bb_reset(const struct onewire_bbops *, void *);
+int onewire_bb_bit(const struct onewire_bbops *, void *, int);
+
+#endif /* !_DEV_ONEWIRE_ONEWIREVAR_H_ */