smbus_if.m revision 272461
1251876Speter#-
2251876Speter# Copyright (c) 1998 Nicolas Souchu
3251876Speter# All rights reserved.
4251876Speter#
5251876Speter# Redistribution and use in source and binary forms, with or without
6251876Speter# modification, are permitted provided that the following conditions
7251876Speter# are met:
8251876Speter# 1. Redistributions of source code must retain the above copyright
9251876Speter#    notice, this list of conditions and the following disclaimer.
10251876Speter# 2. Redistributions in binary form must reproduce the above copyright
11251876Speter#    notice, this list of conditions and the following disclaimer in the
12251876Speter#    documentation and/or other materials provided with the distribution.
13253734Speter#
14251876Speter# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15251876Speter# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16251876Speter# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17253734Speter# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18251876Speter# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19251876Speter# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20251876Speter# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21251876Speter# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22251876Speter# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23251876Speter# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24251876Speter# SUCH DAMAGE.
25251876Speter#
26251876Speter# $FreeBSD: releng/10.1/sys/dev/smbus/smbus_if.m 162234 2006-09-11 20:52:41Z jhb $
27251876Speter#
28251876Speter
29251876Speter#include <sys/bus.h>
30251876Speter
31251876SpeterINTERFACE smbus;
32251876Speter
33251876Speter#
34251876Speter# Interpret interrupt
35251876Speter#
36251876SpeterMETHOD void intr {
37251876Speter	device_t dev;
38251876Speter	u_char devaddr;
39251876Speter	char low;
40251876Speter	char high;
41251876Speter	int error;
42251876Speter};
43251876Speter
44251876Speter#
45251876Speter# smbus callback
46251876Speter#
47251876SpeterMETHOD int callback {
48251876Speter	device_t dev;
49251876Speter	int index;
50251876Speter	void *data;
51251876Speter};
52251876Speter
53251876Speter#
54251876Speter# Quick command
55251876Speter#
56251876SpeterMETHOD int quick {
57251876Speter	device_t dev;
58251876Speter	u_char slave;
59251876Speter	int how;
60251876Speter};
61251876Speter
62251876Speter#
63251876Speter# Send Byte command
64251876Speter#
65251876SpeterMETHOD int sendb {
66251876Speter	device_t dev;
67251876Speter	u_char slave;
68251876Speter	char byte;
69251876Speter};
70251876Speter
71251876Speter#
72251876Speter# Receive Byte command
73251876Speter#
74251876SpeterMETHOD int recvb {
75251876Speter	device_t dev;
76251876Speter	u_char slave;
77251876Speter	char *byte;
78251876Speter};
79251876Speter
80251876Speter#
81251876Speter# Write Byte command
82251876Speter#
83251876SpeterMETHOD int writeb {
84251876Speter	device_t dev;
85251876Speter	u_char slave;
86251876Speter	char cmd;
87251876Speter	char byte;
88251876Speter};
89251876Speter
90251876Speter#
91251876Speter# Write Word command
92251876Speter#
93251876SpeterMETHOD int writew {
94251876Speter	device_t dev;
95251876Speter	u_char slave;
96251876Speter	char cmd;
97251876Speter	short word;
98251876Speter};
99251876Speter
100251876Speter#
101251876Speter# Read Byte command
102251876Speter#
103METHOD int readb {
104	device_t dev;
105	u_char slave;
106	char cmd;
107	char *byte;
108};
109
110#
111# Read Word command
112#
113METHOD int readw {
114	device_t dev;
115	u_char slave;
116	char cmd;
117	short *word;
118};
119
120#
121# Process Call command
122#
123METHOD int pcall {
124	device_t dev;
125	u_char slave;
126	char cmd;
127	short sdata;
128	short *rdata;
129};
130
131#
132# Block Write command
133#
134METHOD int bwrite {
135	device_t dev;
136	u_char slave;
137	char cmd;
138	u_char count;
139	char *buf;
140};
141
142#
143# Block Read command
144#
145METHOD int bread {
146	device_t dev;
147	u_char slave;
148	char cmd;
149	u_char *count;
150	char *buf;
151};
152