diff options
Diffstat (limited to 'Documentation/i2c')
| -rw-r--r-- | Documentation/i2c/busses/i2c-mlxcpld | 47 | ||||
| -rw-r--r-- | Documentation/i2c/smbus-protocol | 12 | 
2 files changed, 55 insertions, 4 deletions
diff --git a/Documentation/i2c/busses/i2c-mlxcpld b/Documentation/i2c/busses/i2c-mlxcpld new file mode 100644 index 000000000000..4e46c440b38d --- /dev/null +++ b/Documentation/i2c/busses/i2c-mlxcpld @@ -0,0 +1,47 @@ +Driver i2c-mlxcpld + +Author: Michael Shych <[email protected]> + +This is the Mellanox I2C controller logic, implemented in Lattice CPLD +device. +Device supports: + - Master mode. + - One physical bus. + - Polling mode. + +This controller is equipped within the next Mellanox systems: +"msx6710", "msx6720", "msb7700", "msn2700", "msx1410", "msn2410", "msb7800", +"msn2740", "msn2100". + +The next transaction types are supported: + - Receive Byte/Block. + - Send Byte/Block. + - Read Byte/Block. + - Write Byte/Block. + +Registers: +CTRL		0x1 - control reg. +			Resets all the registers. +HALF_CYC	0x4 - cycle reg. +			Configure the width of I2C SCL half clock cycle (in 4 LPC_CLK +			units). +I2C_HOLD	0x5 - hold reg. +			OE (output enable) is delayed by value set to this register +			(in LPC_CLK units) +CMD			0x6 - command reg. +			Bit 0, 0 = write, 1 = read. +			Bits [7:1] - the 7bit Address of the I2C device. +			It should be written last as it triggers an I2C transaction. +NUM_DATA	0x7 - data size reg. +			Number of data bytes to write in read transaction +NUM_ADDR	0x8 - address reg. +			Number of address bytes to write in read transaction. +STATUS		0x9 - status reg. +			Bit 0 - transaction is completed. +			Bit 4 - ACK/NACK. +DATAx		0xa - 0x54  - 68 bytes data buffer regs. +			For write transaction address is specified in four first bytes +			(DATA1 - DATA4), data starting from DATA4. +			For read transactions address is sent in a separate transaction and +			specified in the four first bytes (DATA0 - DATA3). Data is read +			starting from DATA0. diff --git a/Documentation/i2c/smbus-protocol b/Documentation/i2c/smbus-protocol index 14d4ec1be245..092d474f5843 100644 --- a/Documentation/i2c/smbus-protocol +++ b/Documentation/i2c/smbus-protocol @@ -200,10 +200,14 @@ alerting device's address.  [S] [HostAddr] [Wr] A [DevAddr] A [DataLow] A [DataHigh] A [P]  This is implemented in the following way in the Linux kernel: -* I2C bus drivers which support SMBus Host Notify should call -  i2c_setup_smbus_host_notify() to setup SMBus Host Notify support. -* I2C drivers for devices which can trigger SMBus Host Notify should implement -  the optional alert() callback. +* I2C bus drivers which support SMBus Host Notify should report +  I2C_FUNC_SMBUS_HOST_NOTIFY. +* I2C bus drivers trigger SMBus Host Notify by a call to +  i2c_handle_smbus_host_notify(). +* I2C drivers for devices which can trigger SMBus Host Notify will have +  client->irq assigned to a Host Notify IRQ if noone else specified an other. + +There is currently no way to retrieve the data parameter from the client.  Packet Error Checking (PEC)  |