1098ca2bdSWarner Losh#- 2d70424edSNicolas Souchu# Copyright (c) 1998 Nicolas Souchu 3d70424edSNicolas Souchu# All rights reserved. 4d70424edSNicolas Souchu# 5d70424edSNicolas Souchu# Redistribution and use in source and binary forms, with or without 6d70424edSNicolas Souchu# modification, are permitted provided that the following conditions 7d70424edSNicolas Souchu# are met: 8d70424edSNicolas Souchu# 1. Redistributions of source code must retain the above copyright 9d70424edSNicolas Souchu# notice, this list of conditions and the following disclaimer. 10d70424edSNicolas Souchu# 2. Redistributions in binary form must reproduce the above copyright 11d70424edSNicolas Souchu# notice, this list of conditions and the following disclaimer in the 12d70424edSNicolas Souchu# documentation and/or other materials provided with the distribution. 13d70424edSNicolas Souchu# 14d70424edSNicolas Souchu# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15d70424edSNicolas Souchu# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16d70424edSNicolas Souchu# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17d70424edSNicolas Souchu# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18d70424edSNicolas Souchu# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19d70424edSNicolas Souchu# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20d70424edSNicolas Souchu# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21d70424edSNicolas Souchu# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22d70424edSNicolas Souchu# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23d70424edSNicolas Souchu# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24d70424edSNicolas Souchu# SUCH DAMAGE. 25d70424edSNicolas Souchu# 26d70424edSNicolas Souchu# 27d70424edSNicolas Souchu 28f7b77691SDoug Rabson#include <sys/bus.h> 29f7b77691SDoug Rabson 307a8ecb9eSNicolas SouchuINTERFACE smbus; 31d70424edSNicolas Souchu 32d70424edSNicolas Souchu# 333ab1f056SNicolas Souchu# Interpret interrupt 34d70424edSNicolas Souchu# 35d70424edSNicolas SouchuMETHOD void intr { 36d70424edSNicolas Souchu device_t dev; 37d70424edSNicolas Souchu u_char devaddr; 38d70424edSNicolas Souchu char low; 39d70424edSNicolas Souchu char high; 40d70424edSNicolas Souchu int error; 41d70424edSNicolas Souchu}; 42d70424edSNicolas Souchu 43d70424edSNicolas Souchu# 443ab1f056SNicolas Souchu# smbus callback 453ab1f056SNicolas Souchu# 463ab1f056SNicolas SouchuMETHOD int callback { 473ab1f056SNicolas Souchu device_t dev; 483ab1f056SNicolas Souchu int index; 497048a99cSJohn Baldwin void *data; 503ab1f056SNicolas Souchu}; 513ab1f056SNicolas Souchu 523ab1f056SNicolas Souchu# 53d70424edSNicolas Souchu# Quick command 54d70424edSNicolas Souchu# 55d70424edSNicolas SouchuMETHOD int quick { 56d70424edSNicolas Souchu device_t dev; 57d70424edSNicolas Souchu u_char slave; 58d70424edSNicolas Souchu int how; 59d70424edSNicolas Souchu}; 60d70424edSNicolas Souchu 61d70424edSNicolas Souchu# 62d70424edSNicolas Souchu# Send Byte command 63d70424edSNicolas Souchu# 64d70424edSNicolas SouchuMETHOD int sendb { 65d70424edSNicolas Souchu device_t dev; 66d70424edSNicolas Souchu u_char slave; 67d70424edSNicolas Souchu char byte; 68d70424edSNicolas Souchu}; 69d70424edSNicolas Souchu 70d70424edSNicolas Souchu# 71d70424edSNicolas Souchu# Receive Byte command 72d70424edSNicolas Souchu# 73d70424edSNicolas SouchuMETHOD int recvb { 74d70424edSNicolas Souchu device_t dev; 75d70424edSNicolas Souchu u_char slave; 76d70424edSNicolas Souchu char *byte; 77d70424edSNicolas Souchu}; 78d70424edSNicolas Souchu 79d70424edSNicolas Souchu# 80d70424edSNicolas Souchu# Write Byte command 81d70424edSNicolas Souchu# 82d70424edSNicolas SouchuMETHOD int writeb { 83d70424edSNicolas Souchu device_t dev; 84d70424edSNicolas Souchu u_char slave; 85d70424edSNicolas Souchu char cmd; 86d70424edSNicolas Souchu char byte; 87d70424edSNicolas Souchu}; 88d70424edSNicolas Souchu 89d70424edSNicolas Souchu# 90d70424edSNicolas Souchu# Write Word command 91d70424edSNicolas Souchu# 92d70424edSNicolas SouchuMETHOD int writew { 93d70424edSNicolas Souchu device_t dev; 94d70424edSNicolas Souchu u_char slave; 95d70424edSNicolas Souchu char cmd; 96d70424edSNicolas Souchu short word; 97d70424edSNicolas Souchu}; 98d70424edSNicolas Souchu 99d70424edSNicolas Souchu# 100d70424edSNicolas Souchu# Read Byte command 101d70424edSNicolas Souchu# 102d70424edSNicolas SouchuMETHOD int readb { 103d70424edSNicolas Souchu device_t dev; 104d70424edSNicolas Souchu u_char slave; 105d70424edSNicolas Souchu char cmd; 106d70424edSNicolas Souchu char *byte; 107d70424edSNicolas Souchu}; 108d70424edSNicolas Souchu 109d70424edSNicolas Souchu# 110d70424edSNicolas Souchu# Read Word command 111d70424edSNicolas Souchu# 112d70424edSNicolas SouchuMETHOD int readw { 113d70424edSNicolas Souchu device_t dev; 114d70424edSNicolas Souchu u_char slave; 115d70424edSNicolas Souchu char cmd; 116d70424edSNicolas Souchu short *word; 117d70424edSNicolas Souchu}; 118d70424edSNicolas Souchu 119d70424edSNicolas Souchu# 120d70424edSNicolas Souchu# Process Call command 121d70424edSNicolas Souchu# 122d70424edSNicolas SouchuMETHOD int pcall { 123d70424edSNicolas Souchu device_t dev; 124d70424edSNicolas Souchu u_char slave; 125d70424edSNicolas Souchu char cmd; 126d70424edSNicolas Souchu short sdata; 127d70424edSNicolas Souchu short *rdata; 128d70424edSNicolas Souchu}; 129d70424edSNicolas Souchu 130d70424edSNicolas Souchu# 131d70424edSNicolas Souchu# Block Write command 132d70424edSNicolas Souchu# 133623bdbdbSNicolas SouchuMETHOD int bwrite { 134d70424edSNicolas Souchu device_t dev; 135d70424edSNicolas Souchu u_char slave; 136d70424edSNicolas Souchu char cmd; 137d70424edSNicolas Souchu u_char count; 138d70424edSNicolas Souchu char *buf; 139d70424edSNicolas Souchu}; 140d70424edSNicolas Souchu 141d70424edSNicolas Souchu# 142d70424edSNicolas Souchu# Block Read command 143d70424edSNicolas Souchu# 144623bdbdbSNicolas SouchuMETHOD int bread { 145d70424edSNicolas Souchu device_t dev; 146d70424edSNicolas Souchu u_char slave; 147d70424edSNicolas Souchu char cmd; 1487048a99cSJohn Baldwin u_char *count; 149d70424edSNicolas Souchu char *buf; 150d70424edSNicolas Souchu}; 151