Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
tps6524x-regulator.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/spi/spi.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>

Go to the source code of this file.

Data Structures

struct  field
 
struct  supply_info
 
struct  tps6524x
 

Macros

#define REG_LDO_SET   0x0
 
#define LDO_ILIM_MASK   1 /* 0 = 400-800, 1 = 900-1500 */
 
#define LDO_VSEL_MASK   0x0f
 
#define LDO2_ILIM_SHIFT   12
 
#define LDO2_VSEL_SHIFT   4
 
#define LDO1_ILIM_SHIFT   8
 
#define LDO1_VSEL_SHIFT   0
 
#define REG_BLOCK_EN   0x1
 
#define BLOCK_MASK   1
 
#define BLOCK_LDO1_SHIFT   0
 
#define BLOCK_LDO2_SHIFT   1
 
#define BLOCK_LCD_SHIFT   2
 
#define BLOCK_USB_SHIFT   3
 
#define REG_DCDC_SET   0x2
 
#define DCDC_VDCDC_MASK   0x1f
 
#define DCDC_VDCDC1_SHIFT   0
 
#define DCDC_VDCDC2_SHIFT   5
 
#define DCDC_VDCDC3_SHIFT   10
 
#define REG_DCDC_EN   0x3
 
#define DCDCDCDC_EN_MASK   0x1
 
#define DCDCDCDC1_EN_SHIFT   0
 
#define DCDCDCDC1_PG_MSK   BIT(1)
 
#define DCDCDCDC2_EN_SHIFT   2
 
#define DCDCDCDC2_PG_MSK   BIT(3)
 
#define DCDCDCDC3_EN_SHIFT   4
 
#define DCDCDCDC3_PG_MSK   BIT(5)
 
#define REG_USB   0x4
 
#define USB_ILIM_SHIFT   0
 
#define USB_ILIM_MASK   0x3
 
#define USB_TSD_SHIFT   2
 
#define USB_TSD_MASK   0x3
 
#define USB_TWARN_SHIFT   4
 
#define USB_TWARN_MASK   0x3
 
#define USB_IWARN_SD   BIT(6)
 
#define USB_FAST_LOOP   BIT(7)
 
#define REG_ALARM   0x5
 
#define ALARM_LDO1   BIT(0)
 
#define ALARM_DCDC1   BIT(1)
 
#define ALARM_DCDC2   BIT(2)
 
#define ALARM_DCDC3   BIT(3)
 
#define ALARM_LDO2   BIT(4)
 
#define ALARM_USB_WARN   BIT(5)
 
#define ALARM_USB_ALARM   BIT(6)
 
#define ALARM_LCD   BIT(9)
 
#define ALARM_TEMP_WARM   BIT(10)
 
#define ALARM_TEMP_HOT   BIT(11)
 
#define ALARM_NRST   BIT(14)
 
#define ALARM_POWERUP   BIT(15)
 
#define REG_INT_ENABLE   0x6
 
#define INT_LDO1   BIT(0)
 
#define INT_DCDC1   BIT(1)
 
#define INT_DCDC2   BIT(2)
 
#define INT_DCDC3   BIT(3)
 
#define INT_LDO2   BIT(4)
 
#define INT_USB_WARN   BIT(5)
 
#define INT_USB_ALARM   BIT(6)
 
#define INT_LCD   BIT(9)
 
#define INT_TEMP_WARM   BIT(10)
 
#define INT_TEMP_HOT   BIT(11)
 
#define INT_GLOBAL_EN   BIT(15)
 
#define REG_INT_STATUS   0x7
 
#define STATUS_LDO1   BIT(0)
 
#define STATUS_DCDC1   BIT(1)
 
#define STATUS_DCDC2   BIT(2)
 
#define STATUS_DCDC3   BIT(3)
 
#define STATUS_LDO2   BIT(4)
 
#define STATUS_USB_WARN   BIT(5)
 
#define STATUS_USB_ALARM   BIT(6)
 
#define STATUS_LCD   BIT(9)
 
#define STATUS_TEMP_WARM   BIT(10)
 
#define STATUS_TEMP_HOT   BIT(11)
 
#define REG_SOFTWARE_RESET   0xb
 
#define REG_WRITE_ENABLE   0xd
 
#define REG_REV_ID   0xf
 
#define N_DCDC   3
 
#define N_LDO   2
 
#define N_SWITCH   2
 
#define N_REGULATORS   (N_DCDC + N_LDO + N_SWITCH)
 
#define CMD_READ(reg)   ((reg) << 6)
 
#define CMD_WRITE(reg)   (BIT(5) | (reg) << 6)
 
#define STAT_CLK   BIT(3)
 
#define STAT_WRITE   BIT(2)
 
#define STAT_INVALID   BIT(1)
 
#define STAT_WP   BIT(0)
 
#define __MK_FIELD(_reg, _mask, _shift)   { .reg = (_reg), .mask = (_mask), .shift = (_shift), }
 

Functions

 module_spi_driver (pmic_driver)
 
 MODULE_DESCRIPTION ("TPS6524X PMIC Driver")
 
 MODULE_AUTHOR ("Cyril Chemparathy")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("spi:tps6524x")
 

Macro Definition Documentation

#define __MK_FIELD (   _reg,
  _mask,
  _shift 
)    { .reg = (_reg), .mask = (_mask), .shift = (_shift), }

Definition at line 372 of file tps6524x-regulator.c.

#define ALARM_DCDC1   BIT(1)

Definition at line 67 of file tps6524x-regulator.c.

#define ALARM_DCDC2   BIT(2)

Definition at line 68 of file tps6524x-regulator.c.

#define ALARM_DCDC3   BIT(3)

Definition at line 69 of file tps6524x-regulator.c.

#define ALARM_LCD   BIT(9)

Definition at line 73 of file tps6524x-regulator.c.

#define ALARM_LDO1   BIT(0)

Definition at line 66 of file tps6524x-regulator.c.

#define ALARM_LDO2   BIT(4)

Definition at line 70 of file tps6524x-regulator.c.

#define ALARM_NRST   BIT(14)

Definition at line 76 of file tps6524x-regulator.c.

#define ALARM_POWERUP   BIT(15)

Definition at line 77 of file tps6524x-regulator.c.

#define ALARM_TEMP_HOT   BIT(11)

Definition at line 75 of file tps6524x-regulator.c.

#define ALARM_TEMP_WARM   BIT(10)

Definition at line 74 of file tps6524x-regulator.c.

#define ALARM_USB_ALARM   BIT(6)

Definition at line 72 of file tps6524x-regulator.c.

#define ALARM_USB_WARN   BIT(5)

Definition at line 71 of file tps6524x-regulator.c.

#define BLOCK_LCD_SHIFT   2

Definition at line 37 of file tps6524x-regulator.c.

#define BLOCK_LDO1_SHIFT   0

Definition at line 35 of file tps6524x-regulator.c.

#define BLOCK_LDO2_SHIFT   1

Definition at line 36 of file tps6524x-regulator.c.

#define BLOCK_MASK   1

Definition at line 34 of file tps6524x-regulator.c.

#define BLOCK_USB_SHIFT   3

Definition at line 38 of file tps6524x-regulator.c.

#define CMD_READ (   reg)    ((reg) << 6)

Definition at line 113 of file tps6524x-regulator.c.

#define CMD_WRITE (   reg)    (BIT(5) | (reg) << 6)

Definition at line 114 of file tps6524x-regulator.c.

#define DCDC_VDCDC1_SHIFT   0

Definition at line 42 of file tps6524x-regulator.c.

#define DCDC_VDCDC2_SHIFT   5

Definition at line 43 of file tps6524x-regulator.c.

#define DCDC_VDCDC3_SHIFT   10

Definition at line 44 of file tps6524x-regulator.c.

#define DCDC_VDCDC_MASK   0x1f

Definition at line 41 of file tps6524x-regulator.c.

#define DCDCDCDC1_EN_SHIFT   0

Definition at line 48 of file tps6524x-regulator.c.

#define DCDCDCDC1_PG_MSK   BIT(1)

Definition at line 49 of file tps6524x-regulator.c.

#define DCDCDCDC2_EN_SHIFT   2

Definition at line 50 of file tps6524x-regulator.c.

#define DCDCDCDC2_PG_MSK   BIT(3)

Definition at line 51 of file tps6524x-regulator.c.

#define DCDCDCDC3_EN_SHIFT   4

Definition at line 52 of file tps6524x-regulator.c.

#define DCDCDCDC3_PG_MSK   BIT(5)

Definition at line 53 of file tps6524x-regulator.c.

#define DCDCDCDC_EN_MASK   0x1

Definition at line 47 of file tps6524x-regulator.c.

#define INT_DCDC1   BIT(1)

Definition at line 81 of file tps6524x-regulator.c.

#define INT_DCDC2   BIT(2)

Definition at line 82 of file tps6524x-regulator.c.

#define INT_DCDC3   BIT(3)

Definition at line 83 of file tps6524x-regulator.c.

#define INT_GLOBAL_EN   BIT(15)

Definition at line 90 of file tps6524x-regulator.c.

#define INT_LCD   BIT(9)

Definition at line 87 of file tps6524x-regulator.c.

#define INT_LDO1   BIT(0)

Definition at line 80 of file tps6524x-regulator.c.

#define INT_LDO2   BIT(4)

Definition at line 84 of file tps6524x-regulator.c.

#define INT_TEMP_HOT   BIT(11)

Definition at line 89 of file tps6524x-regulator.c.

#define INT_TEMP_WARM   BIT(10)

Definition at line 88 of file tps6524x-regulator.c.

#define INT_USB_ALARM   BIT(6)

Definition at line 86 of file tps6524x-regulator.c.

#define INT_USB_WARN   BIT(5)

Definition at line 85 of file tps6524x-regulator.c.

#define LDO1_ILIM_SHIFT   8

Definition at line 30 of file tps6524x-regulator.c.

#define LDO1_VSEL_SHIFT   0

Definition at line 31 of file tps6524x-regulator.c.

#define LDO2_ILIM_SHIFT   12

Definition at line 28 of file tps6524x-regulator.c.

#define LDO2_VSEL_SHIFT   4

Definition at line 29 of file tps6524x-regulator.c.

#define LDO_ILIM_MASK   1 /* 0 = 400-800, 1 = 900-1500 */

Definition at line 26 of file tps6524x-regulator.c.

#define LDO_VSEL_MASK   0x0f

Definition at line 27 of file tps6524x-regulator.c.

#define N_DCDC   3

Definition at line 108 of file tps6524x-regulator.c.

#define N_LDO   2

Definition at line 109 of file tps6524x-regulator.c.

#define N_REGULATORS   (N_DCDC + N_LDO + N_SWITCH)

Definition at line 111 of file tps6524x-regulator.c.

#define N_SWITCH   2

Definition at line 110 of file tps6524x-regulator.c.

#define REG_ALARM   0x5

Definition at line 65 of file tps6524x-regulator.c.

#define REG_BLOCK_EN   0x1

Definition at line 33 of file tps6524x-regulator.c.

#define REG_DCDC_EN   0x3

Definition at line 46 of file tps6524x-regulator.c.

#define REG_DCDC_SET   0x2

Definition at line 40 of file tps6524x-regulator.c.

#define REG_INT_ENABLE   0x6

Definition at line 79 of file tps6524x-regulator.c.

#define REG_INT_STATUS   0x7

Definition at line 92 of file tps6524x-regulator.c.

#define REG_LDO_SET   0x0

Definition at line 25 of file tps6524x-regulator.c.

#define REG_REV_ID   0xf

Definition at line 106 of file tps6524x-regulator.c.

#define REG_SOFTWARE_RESET   0xb

Definition at line 104 of file tps6524x-regulator.c.

#define REG_USB   0x4

Definition at line 55 of file tps6524x-regulator.c.

#define REG_WRITE_ENABLE   0xd

Definition at line 105 of file tps6524x-regulator.c.

#define STAT_CLK   BIT(3)

Definition at line 115 of file tps6524x-regulator.c.

#define STAT_INVALID   BIT(1)

Definition at line 117 of file tps6524x-regulator.c.

#define STAT_WP   BIT(0)

Definition at line 118 of file tps6524x-regulator.c.

#define STAT_WRITE   BIT(2)

Definition at line 116 of file tps6524x-regulator.c.

#define STATUS_DCDC1   BIT(1)

Definition at line 94 of file tps6524x-regulator.c.

#define STATUS_DCDC2   BIT(2)

Definition at line 95 of file tps6524x-regulator.c.

#define STATUS_DCDC3   BIT(3)

Definition at line 96 of file tps6524x-regulator.c.

#define STATUS_LCD   BIT(9)

Definition at line 100 of file tps6524x-regulator.c.

#define STATUS_LDO1   BIT(0)

Definition at line 93 of file tps6524x-regulator.c.

#define STATUS_LDO2   BIT(4)

Definition at line 97 of file tps6524x-regulator.c.

#define STATUS_TEMP_HOT   BIT(11)

Definition at line 102 of file tps6524x-regulator.c.

#define STATUS_TEMP_WARM   BIT(10)

Definition at line 101 of file tps6524x-regulator.c.

#define STATUS_USB_ALARM   BIT(6)

Definition at line 99 of file tps6524x-regulator.c.

#define STATUS_USB_WARN   BIT(5)

Definition at line 98 of file tps6524x-regulator.c.

#define USB_FAST_LOOP   BIT(7)

Definition at line 63 of file tps6524x-regulator.c.

#define USB_ILIM_MASK   0x3

Definition at line 57 of file tps6524x-regulator.c.

#define USB_ILIM_SHIFT   0

Definition at line 56 of file tps6524x-regulator.c.

#define USB_IWARN_SD   BIT(6)

Definition at line 62 of file tps6524x-regulator.c.

#define USB_TSD_MASK   0x3

Definition at line 59 of file tps6524x-regulator.c.

#define USB_TSD_SHIFT   2

Definition at line 58 of file tps6524x-regulator.c.

#define USB_TWARN_MASK   0x3

Definition at line 61 of file tps6524x-regulator.c.

#define USB_TWARN_SHIFT   4

Definition at line 60 of file tps6524x-regulator.c.

Function Documentation

MODULE_ALIAS ( "spi:tps6524x"  )
MODULE_AUTHOR ( "Cyril Chemparathy"  )
MODULE_DESCRIPTION ( "TPS6524X PMIC Driver"  )
MODULE_LICENSE ( "GPL"  )
module_spi_driver ( pmic_driver  )