1139749Simp#-
238776Snsouch# Copyright (c) 1998 Nicolas Souchu
338776Snsouch# All rights reserved.
438776Snsouch#
538776Snsouch# Redistribution and use in source and binary forms, with or without
638776Snsouch# modification, are permitted provided that the following conditions
738776Snsouch# are met:
838776Snsouch# 1. Redistributions of source code must retain the above copyright
938776Snsouch#    notice, this list of conditions and the following disclaimer.
1038776Snsouch# 2. Redistributions in binary form must reproduce the above copyright
1138776Snsouch#    notice, this list of conditions and the following disclaimer in the
1238776Snsouch#    documentation and/or other materials provided with the distribution.
1338776Snsouch#
1438776Snsouch# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1538776Snsouch# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1638776Snsouch# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1738776Snsouch# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1838776Snsouch# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1938776Snsouch# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2038776Snsouch# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2138776Snsouch# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2238776Snsouch# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2338776Snsouch# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2438776Snsouch# SUCH DAMAGE.
2538776Snsouch#
2650477Speter# $FreeBSD: releng/10.2/sys/dev/smbus/smbus_if.m 162234 2006-09-11 20:52:41Z jhb $
2738776Snsouch#
2838776Snsouch
2959093Sdfr#include <sys/bus.h>
3059093Sdfr
3141012SnsouchINTERFACE smbus;
3238776Snsouch
3338776Snsouch#
3440785Snsouch# Interpret interrupt
3538776Snsouch#
3638776SnsouchMETHOD void intr {
3738776Snsouch	device_t dev;
3838776Snsouch	u_char devaddr;
3938776Snsouch	char low;
4038776Snsouch	char high;
4138776Snsouch	int error;
4238776Snsouch};
4338776Snsouch
4438776Snsouch#
4540785Snsouch# smbus callback
4640785Snsouch#
4740785SnsouchMETHOD int callback {
4840785Snsouch	device_t dev;
4940785Snsouch	int index;
50162234Sjhb	void *data;
5140785Snsouch};
5240785Snsouch
5340785Snsouch#
5438776Snsouch# Quick command
5538776Snsouch#
5638776SnsouchMETHOD int quick {
5738776Snsouch	device_t dev;
5838776Snsouch	u_char slave;
5938776Snsouch	int how;
6038776Snsouch};
6138776Snsouch
6238776Snsouch#
6338776Snsouch# Send Byte command
6438776Snsouch#
6538776SnsouchMETHOD int sendb {
6638776Snsouch	device_t dev;
6738776Snsouch	u_char slave;
6838776Snsouch	char byte;
6938776Snsouch};
7038776Snsouch
7138776Snsouch#
7238776Snsouch# Receive Byte command
7338776Snsouch#
7438776SnsouchMETHOD int recvb {
7538776Snsouch	device_t dev;
7638776Snsouch	u_char slave;
7738776Snsouch	char *byte;
7838776Snsouch};
7938776Snsouch
8038776Snsouch#
8138776Snsouch# Write Byte command
8238776Snsouch#
8338776SnsouchMETHOD int writeb {
8438776Snsouch	device_t dev;
8538776Snsouch	u_char slave;
8638776Snsouch	char cmd;
8738776Snsouch	char byte;
8838776Snsouch};
8938776Snsouch
9038776Snsouch#
9138776Snsouch# Write Word command
9238776Snsouch#
9338776SnsouchMETHOD int writew {
9438776Snsouch	device_t dev;
9538776Snsouch	u_char slave;
9638776Snsouch	char cmd;
9738776Snsouch	short word;
9838776Snsouch};
9938776Snsouch
10038776Snsouch#
10138776Snsouch# Read Byte command
10238776Snsouch#
10338776SnsouchMETHOD int readb {
10438776Snsouch	device_t dev;
10538776Snsouch	u_char slave;
10638776Snsouch	char cmd;
10738776Snsouch	char *byte;
10838776Snsouch};
10938776Snsouch
11038776Snsouch#
11138776Snsouch# Read Word command
11238776Snsouch#
11338776SnsouchMETHOD int readw {
11438776Snsouch	device_t dev;
11538776Snsouch	u_char slave;
11638776Snsouch	char cmd;
11738776Snsouch	short *word;
11838776Snsouch};
11938776Snsouch
12038776Snsouch#
12138776Snsouch# Process Call command
12238776Snsouch#
12338776SnsouchMETHOD int pcall {
12438776Snsouch	device_t dev;
12538776Snsouch	u_char slave;
12638776Snsouch	char cmd;
12738776Snsouch	short sdata;
12838776Snsouch	short *rdata;
12938776Snsouch};
13038776Snsouch
13138776Snsouch#
13238776Snsouch# Block Write command
13338776Snsouch#
13440994SnsouchMETHOD int bwrite {
13538776Snsouch	device_t dev;
13638776Snsouch	u_char slave;
13738776Snsouch	char cmd;
13838776Snsouch	u_char count;
13938776Snsouch	char *buf;
14038776Snsouch};
14138776Snsouch
14238776Snsouch#
14338776Snsouch# Block Read command
14438776Snsouch#
14540994SnsouchMETHOD int bread {
14638776Snsouch	device_t dev;
14738776Snsouch	u_char slave;
14838776Snsouch	char cmd;
149162234Sjhb	u_char *count;
15038776Snsouch	char *buf;
15138776Snsouch};
152