98 lines
2.9 KiB
C
98 lines
2.9 KiB
C
|
/* --------------------------------------------------------------------
|
||
|
|
||
|
* A hwmon driver for the CIG cs6436-56P
|
||
|
*
|
||
|
* Copyright (C) 2018 Cambridge, Inc.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2 of the License, or
|
||
|
* (at your option) any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with this program; if not, write to the Free Software
|
||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
|
*/
|
||
|
|
||
|
/* -------------------------------------------------------------------- */
|
||
|
|
||
|
#ifndef I2C_LPC_H
|
||
|
#define I2C_LPC_H 1
|
||
|
|
||
|
/* ----- Control register bits ---------------------------------------- */
|
||
|
#define I2C_LPC_PIN 0x80
|
||
|
#define I2C_LPC_ESO 0x40
|
||
|
#define I2C_LPC_ES1 0x20
|
||
|
#define I2C_LPC_ES2 0x10
|
||
|
#define I2C_LPC_ENI 0x08
|
||
|
|
||
|
#define I2C_LPC_STO 0x40
|
||
|
#define I2C_LPC_ACK 0x01
|
||
|
|
||
|
/*command register*/
|
||
|
#define I2C_LPC_STA 0x80
|
||
|
#define I2C_LPC_ABT 0x40
|
||
|
|
||
|
/*status register*/
|
||
|
#define I2C_LPC_TBE 0x02
|
||
|
#define I2C_LPC_IBB 0x80
|
||
|
#define I2C_LPC_RBF 0x01
|
||
|
#define I2C_LPC_TD 0x08
|
||
|
|
||
|
#define I2C_LPC_START I2C_LPC_STA
|
||
|
#define I2C_LPC_STOP I2C_LPC_STO
|
||
|
#define I2C_LPC_REPSTART I2C_LPC_STA
|
||
|
#define I2C_LPC_IDLE
|
||
|
|
||
|
/* ----- Status register bits ----------------------------------------- */
|
||
|
/*#define I2C_LPC_PIN 0x80 as above*/
|
||
|
|
||
|
#define I2C_LPC_INI 0x40 /* 1 if not initialized */
|
||
|
#define I2C_LPC_STS 0x20
|
||
|
#define I2C_LPC_BER 0x10
|
||
|
#define I2C_LPC_AD0 0x08
|
||
|
#define I2C_LPC_LRB 0x08
|
||
|
#define I2C_LPC_AAS 0x04
|
||
|
#define I2C_LPC_LAB 0x02
|
||
|
#define I2C_LPC_BB 0x80
|
||
|
|
||
|
/* ----- Chip clock frequencies --------------------------------------- */
|
||
|
#define I2C_LPC_CLK3 0x00
|
||
|
#define I2C_LPC_CLK443 0x10
|
||
|
#define I2C_LPC_CLK6 0x14
|
||
|
#define I2C_LPC_CLK 0x18
|
||
|
#define I2C_LPC_CLK12 0x1c
|
||
|
|
||
|
/* ----- transmission frequencies ------------------------------------- */
|
||
|
#define I2C_LPC_TRNS90 0x00 /* 90 kHz */
|
||
|
#define I2C_LPC_TRNS45 0x01 /* 45 kHz */
|
||
|
#define I2C_LPC_TRNS11 0x02 /* 11 kHz */
|
||
|
#define I2C_LPC_TRNS15 0x03 /* 1.5 kHz */
|
||
|
|
||
|
|
||
|
#define I2C_LPC_OWNADR 0
|
||
|
#define I2C_LPC_INTREG I2C_LPC_ES2
|
||
|
#define I2C_LPC_CLKREG I2C_LPC_ES1
|
||
|
|
||
|
#define I2C_LPC_REG_TEST 0x01
|
||
|
#define I2C_LPC_REG_BUS_SEL 0x80
|
||
|
#define I2C_LPC_REG_DEVICE_ADDR 0x81
|
||
|
#define I2C_LPC_REG_BYTE_COUNT 0x83
|
||
|
#define I2C_LPC_REG_COMMAND 0x84
|
||
|
#define I2C_LPC_REG_STATUS 0x85
|
||
|
#define I2C_LPC_REG_DATA_RX1 0x86
|
||
|
#define I2C_LPC_REG_DATA_RX2 0x87
|
||
|
#define I2C_LPC_REG_DATA_RX3 0x88
|
||
|
#define I2C_LPC_REG_DATA_RX4 0x89
|
||
|
#define I2C_LPC_REG_DATA_TX1 0x8a
|
||
|
#define I2C_LPC_REG_DATA_TX2 0x8b
|
||
|
#define I2C_LPC_REG_DATA_TX3 0x8c
|
||
|
#define I2C_LPC_REG_DATA_TX4 0x8d
|
||
|
|
||
|
#endif /* I2C_LPC_H */
|