diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/pmu.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/linux/pmu.h b/include/linux/pmu.h index f4054dd6ab65..bc331f946fec 100644 --- a/include/linux/pmu.h +++ b/include/linux/pmu.h @@ -33,6 +33,7 @@ #define PMU_CPU_SPEED 0x7d /* control CPU speed on some models */ #define PMU_SLEEP 0x7f /* put CPU to sleep */ #define PMU_POWER_EVENTS 0x8f /* Send power-event commands to PMU */ +#define PMU_I2C_CMD 0x9a /* I2C operations */ #define PMU_RESET 0xd0 /* reset CPU */ #define PMU_GET_BRIGHTBUTTON 0xd9 /* report brightness up/down pos */ #define PMU_GET_COVER 0xdc /* report cover open/closed */ @@ -69,6 +70,20 @@ * or via PMU_INT_ENVIRONMENT on core99 */ #define PMU_ENV_LID_CLOSED 0x01 /* The lid is closed */ +/* I2C related definitions */ +#define PMU_I2C_MODE_SIMPLE 0 +#define PMU_I2C_MODE_STDSUB 1 +#define PMU_I2C_MODE_COMBINED 2 + +#define PMU_I2C_BUS_STATUS 0 +#define PMU_I2C_BUS_SYSCLK 1 +#define PMU_I2C_BUS_POWER 2 + +#define PMU_I2C_STATUS_OK 0 +#define PMU_I2C_STATUS_DATAREAD 1 +#define PMU_I2C_STATUS_BUSY 0xfe + + /* Kind of PMU (model) */ enum { PMU_UNKNOWN, @@ -145,6 +160,12 @@ extern void pmu_unlock(void); extern int pmu_present(void); extern int pmu_get_model(void); +extern int pmu_i2c_combined_read(int bus, int addr, int subaddr, u8* data, int len); +extern int pmu_i2c_stdsub_write(int bus, int addr, int subaddr, u8* data, int len); +extern int pmu_i2c_simple_read(int bus, int addr, u8* data, int len); +extern int pmu_i2c_simple_write(int bus, int addr, u8* data, int len); + + #ifdef CONFIG_PMAC_PBOOK /* * Stuff for putting the powerbook to sleep and waking it again. |
