Home | History | Annotate | Line # | Download | only in onewire
onewirevar.h revision 1.5.112.1
      1  1.5.112.1   martin /* $NetBSD: onewirevar.h,v 1.5.112.1 2020/04/08 14:08:08 martin Exp $ */
      2        1.1      riz /*	$OpenBSD: onewirevar.h,v 1.1 2006/03/04 16:27:03 grange Exp $	*/
      3        1.1      riz 
      4        1.1      riz /*
      5        1.1      riz  * Copyright (c) 2006 Alexander Yurchenko <grange (at) openbsd.org>
      6        1.1      riz  *
      7        1.1      riz  * Permission to use, copy, modify, and distribute this software for any
      8        1.1      riz  * purpose with or without fee is hereby granted, provided that the above
      9        1.1      riz  * copyright notice and this permission notice appear in all copies.
     10        1.1      riz  *
     11        1.1      riz  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     12        1.1      riz  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     13        1.1      riz  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     14        1.1      riz  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     15        1.1      riz  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     16        1.1      riz  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     17        1.1      riz  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     18        1.1      riz  */
     19        1.1      riz 
     20        1.1      riz #ifndef _DEV_ONEWIRE_ONEWIREVAR_H_
     21        1.1      riz #define _DEV_ONEWIRE_ONEWIREVAR_H_
     22        1.1      riz 
     23        1.1      riz /*
     24        1.1      riz  * 1-Wire bus interface.
     25        1.1      riz  */
     26        1.1      riz 
     27        1.1      riz /* Bus master interface */
     28        1.1      riz struct onewire_bus {
     29        1.1      riz 	void *	bus_cookie;
     30        1.1      riz 
     31        1.1      riz 	int	(*bus_reset)(void *);
     32  1.5.112.1   martin 	int	(*bus_read_bit)(void *);
     33  1.5.112.1   martin 	void	(*bus_write_bit)(void *, int);
     34        1.1      riz 	int	(*bus_read_byte)(void *);
     35        1.1      riz 	void	(*bus_write_byte)(void *, int);
     36        1.1      riz 	int	(*bus_triplet)(void *, int);
     37        1.1      riz };
     38        1.1      riz 
     39        1.1      riz /* Bus methods */
     40        1.4  xtraeme void		onewire_lock(void *);
     41        1.1      riz void		onewire_unlock(void *);
     42        1.1      riz int		onewire_reset(void *);
     43  1.5.112.1   martin int		onewire_read_bit(void *);
     44  1.5.112.1   martin void		onewire_write_bit(void *, int);
     45        1.1      riz int		onewire_read_byte(void *);
     46        1.1      riz void		onewire_write_byte(void *, int);
     47        1.1      riz int		onewire_triplet(void *, int);
     48        1.1      riz void		onewire_read_block(void *, void *, int);
     49        1.1      riz void		onewire_write_block(void *, const void *, int);
     50        1.1      riz void		onewire_matchrom(void *, u_int64_t);
     51        1.1      riz 
     52        1.1      riz /* Bus attachment */
     53        1.1      riz struct onewirebus_attach_args {
     54        1.1      riz 	struct onewire_bus *	oba_bus;
     55        1.1      riz };
     56        1.1      riz 
     57        1.1      riz int	onewirebus_print(void *, const char *);
     58        1.1      riz 
     59        1.1      riz /* Device attachment */
     60        1.1      riz struct onewire_attach_args {
     61        1.1      riz 	void *			oa_onewire;
     62        1.1      riz 	u_int64_t		oa_rom;
     63        1.1      riz };
     64        1.1      riz 
     65        1.1      riz /* Family matching */
     66        1.1      riz struct onewire_matchfam {
     67        1.1      riz 	int om_type;
     68        1.1      riz };
     69        1.1      riz 
     70        1.1      riz /* Miscellaneous routines */
     71        1.1      riz int		onewire_crc(const void *, int);
     72        1.1      riz const char *	onewire_famname(int);
     73        1.1      riz int		onewire_matchbyfam(struct onewire_attach_args *,
     74        1.1      riz 		    const struct onewire_matchfam *, int);
     75        1.1      riz 
     76        1.1      riz /* Bus bit-banging */
     77        1.1      riz struct onewire_bbops {
     78        1.1      riz 	void	(*bb_rx)(void *);
     79        1.1      riz 	void	(*bb_tx)(void *);
     80        1.1      riz 	int	(*bb_get)(void *);
     81        1.1      riz 	void	(*bb_set)(void *, int);
     82        1.1      riz };
     83        1.1      riz 
     84        1.1      riz int		onewire_bb_reset(const struct onewire_bbops *, void *);
     85  1.5.112.1   martin int		onewire_bb_read_bit(const struct onewire_bbops *, void *);
     86  1.5.112.1   martin void		onewire_bb_write_bit(const struct onewire_bbops *, void *, int);
     87        1.1      riz 
     88        1.1      riz #endif	/* !_DEV_ONEWIRE_ONEWIREVAR_H_ */
     89