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