VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/xf86i2c.h

Last change on this file was 69098, checked in by vboxsync, 7 years ago

Clean up XFree86 driver header files.
bugref:3810: X11 Guest Additions maintenance
Over the years we have cleaned up the layout in the tree of the X.Org
header files we use to build drivers. The XFree86 ones were still in their
original, rather sub-optimal layout. This change fixes that.

  • Property svn:eol-style set to native
File size: 3.1 KB
Line 
1/*
2 * Copyright (C) 1998 Itai Nahshon, Michael Schimek
3 */
4
5/* $XFree86: xc/programs/Xserver/hw/xfree86/i2c/xf86i2c.h,v 1.8 2001/07/19 14:19:40 tsi Exp $ */
6#ifndef _XF86I2C_H
7#define _XF86I2C_H
8
9#include "miscstruct.h"
10
11typedef unsigned char I2CByte;
12typedef unsigned short I2CSlaveAddr;
13
14typedef struct _I2CBusRec *I2CBusPtr;
15typedef struct _I2CDevRec *I2CDevPtr;
16
17/* I2C masters have to register themselves */
18
19typedef struct _I2CBusRec {
20 char * BusName;
21 int scrnIndex;
22
23 void (*I2CUDelay) (I2CBusPtr b, int usec);
24
25 void (*I2CPutBits)(I2CBusPtr b, int scl, int sda);
26 void (*I2CGetBits)(I2CBusPtr b, int *scl, int *sda);
27
28 /* Look at the generic routines to see how these functions should behave. */
29
30 Bool (*I2CAddress)(I2CDevPtr d, I2CSlaveAddr);
31 void (*I2CStop) (I2CDevPtr d);
32 Bool (*I2CPutByte)(I2CDevPtr d, I2CByte data);
33 Bool (*I2CGetByte)(I2CDevPtr d, I2CByte *data, Bool);
34
35 DevUnion DriverPrivate;
36
37 int HoldTime; /* 1 / bus clock frequency, 5 or 2 usec */
38
39 int BitTimeout; /* usec */
40 int ByteTimeout; /* usec */
41 int AcknTimeout; /* usec */
42 int StartTimeout; /* usec */
43 int RiseFallTime; /* usec */
44
45 I2CDevPtr FirstDev;
46 I2CBusPtr NextBus;
47 Bool (*I2CWriteRead)(I2CDevPtr d, I2CByte *WriteBuffer, int nWrite,
48 I2CByte *ReadBuffer, int nRead);
49} I2CBusRec;
50
51I2CBusPtr xf86CreateI2CBusRec(void);
52void xf86DestroyI2CBusRec(I2CBusPtr pI2CBus, Bool unalloc, Bool devs_too);
53Bool xf86I2CBusInit(I2CBusPtr pI2CBus);
54I2CBusPtr xf86I2CFindBus(int scrnIndex, char *name);
55
56/* I2C slave devices */
57
58typedef struct _I2CDevRec {
59 char * DevName;
60
61 int BitTimeout; /* usec */
62 int ByteTimeout; /* usec */
63 int AcknTimeout; /* usec */
64 int StartTimeout; /* usec */
65
66 I2CSlaveAddr SlaveAddr;
67 I2CBusPtr pI2CBus;
68 I2CDevPtr NextDev;
69 DevUnion DriverPrivate;
70} I2CDevRec;
71
72I2CDevPtr xf86CreateI2CDevRec(void);
73void xf86DestroyI2CDevRec(I2CDevPtr pI2CDev, Bool unalloc);
74Bool xf86I2CDevInit(I2CDevPtr pI2CDev);
75I2CDevPtr xf86I2CFindDev(I2CBusPtr, I2CSlaveAddr);
76
77/* See descriptions of these functions in xf86i2c.c */
78
79Bool xf86I2CProbeAddress(I2CBusPtr pI2CBus, I2CSlaveAddr);
80Bool xf86I2CWriteRead(I2CDevPtr d, I2CByte *WriteBuffer, int nWrite,
81 I2CByte *ReadBuffer, int nRead);
82#define xf86I2CRead(d, rb, nr) xf86I2CWriteRead(d, NULL, 0, rb, nr)
83Bool xf86I2CReadStatus(I2CDevPtr d, I2CByte *pbyte);
84Bool xf86I2CReadByte(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte);
85Bool xf86I2CReadBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *pbyte, int n);
86Bool xf86I2CReadWord(I2CDevPtr d, I2CByte subaddr, unsigned short *pword);
87#define xf86I2CWrite(d, wb, nw) xf86I2CWriteRead(d, wb, nw, NULL, 0)
88Bool xf86I2CWriteByte(I2CDevPtr d, I2CByte subaddr, I2CByte byte);
89Bool xf86I2CWriteBytes(I2CDevPtr d, I2CByte subaddr, I2CByte *WriteBuffer, int nWrite);
90Bool xf86I2CWriteWord(I2CDevPtr d, I2CByte subaddr, unsigned short word);
91Bool xf86I2CWriteVec(I2CDevPtr d, I2CByte *vec, int nValues);
92
93#endif /*_XF86I2C_H */
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette