~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/mfd/rohm-bd96801.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-or-later */
  2 /* Copyright (C) 2024 ROHM Semiconductors */
  3 
  4 #ifndef __MFD_BD96801_H__
  5 #define __MFD_BD96801_H__
  6 
  7 #define BD96801_REG_SSCG_CTRL           0x09
  8 #define BD96801_REG_SHD_INTB            0x20
  9 #define BD96801_LDO5_VOL_LVL_REG        0x2c
 10 #define BD96801_LDO6_VOL_LVL_REG        0x2d
 11 #define BD96801_LDO7_VOL_LVL_REG        0x2e
 12 #define BD96801_REG_BUCK_OVP            0x30
 13 #define BD96801_REG_BUCK_OVD            0x35
 14 #define BD96801_REG_LDO_OVP             0x31
 15 #define BD96801_REG_LDO_OVD             0x36
 16 #define BD96801_REG_BOOT_OVERTIME       0x3a
 17 #define BD96801_REG_WD_TMO              0x40
 18 #define BD96801_REG_WD_CONF             0x41
 19 #define BD96801_REG_WD_FEED             0x42
 20 #define BD96801_REG_WD_FAILCOUNT        0x43
 21 #define BD96801_REG_WD_ASK              0x46
 22 #define BD96801_REG_WD_STATUS           0x4a
 23 #define BD96801_REG_PMIC_STATE          0x4f
 24 #define BD96801_REG_EXT_STATE           0x50
 25 
 26 #define BD96801_STATE_STBY              0x09
 27 
 28 #define BD96801_LOCK_REG                0x04
 29 #define BD96801_UNLOCK                  0x9d
 30 #define BD96801_LOCK                    0x00
 31 
 32 /* IRQ register area */
 33 #define BD96801_REG_INT_MAIN            0x51
 34 
 35 /*
 36  * The BD96801 has two physical IRQ lines, INTB and ERRB.
 37  *
 38  * The 'main status register' is located at 0x51.
 39  * The ERRB status registers are located at 0x52 ... 0x5B
 40  * INTB status registers are at range 0x5c ... 0x63
 41  */
 42 #define BD96801_REG_INT_SYS_ERRB1       0x52
 43 #define BD96801_REG_INT_SYS_INTB        0x5c
 44 #define BD96801_REG_INT_LDO7_INTB       0x63
 45 
 46 /* MASK registers */
 47 #define BD96801_REG_MASK_SYS_INTB       0x73
 48 #define BD96801_REG_MASK_SYS_ERRB       0x69
 49 
 50 #define BD96801_MAX_REGISTER            0x7a
 51 
 52 #define BD96801_OTP_ERR_MASK            BIT(0)
 53 #define BD96801_DBIST_ERR_MASK          BIT(1)
 54 #define BD96801_EEP_ERR_MASK            BIT(2)
 55 #define BD96801_ABIST_ERR_MASK          BIT(3)
 56 #define BD96801_PRSTB_ERR_MASK          BIT(4)
 57 #define BD96801_DRMOS1_ERR_MASK         BIT(5)
 58 #define BD96801_DRMOS2_ERR_MASK         BIT(6)
 59 #define BD96801_SLAVE_ERR_MASK          BIT(7)
 60 #define BD96801_VREF_ERR_MASK           BIT(0)
 61 #define BD96801_TSD_ERR_MASK            BIT(1)
 62 #define BD96801_UVLO_ERR_MASK           BIT(2)
 63 #define BD96801_OVLO_ERR_MASK           BIT(3)
 64 #define BD96801_OSC_ERR_MASK            BIT(4)
 65 #define BD96801_PON_ERR_MASK            BIT(5)
 66 #define BD96801_POFF_ERR_MASK           BIT(6)
 67 #define BD96801_CMD_SHDN_ERR_MASK       BIT(7)
 68 #define BD96801_INT_PRSTB_WDT_ERR_MASK  BIT(0)
 69 #define BD96801_INT_CHIP_IF_ERR_MASK    BIT(3)
 70 #define BD96801_INT_SHDN_ERR_MASK       BIT(7)
 71 #define BD96801_OUT_PVIN_ERR_MASK       BIT(0)
 72 #define BD96801_OUT_OVP_ERR_MASK        BIT(1)
 73 #define BD96801_OUT_UVP_ERR_MASK        BIT(2)
 74 #define BD96801_OUT_SHDN_ERR_MASK       BIT(7)
 75 
 76 /* ERRB IRQs */
 77 enum {
 78         /* Reg 0x52, 0x53, 0x54 - ERRB system IRQs */
 79         BD96801_OTP_ERR_STAT,
 80         BD96801_DBIST_ERR_STAT,
 81         BD96801_EEP_ERR_STAT,
 82         BD96801_ABIST_ERR_STAT,
 83         BD96801_PRSTB_ERR_STAT,
 84         BD96801_DRMOS1_ERR_STAT,
 85         BD96801_DRMOS2_ERR_STAT,
 86         BD96801_SLAVE_ERR_STAT,
 87         BD96801_VREF_ERR_STAT,
 88         BD96801_TSD_ERR_STAT,
 89         BD96801_UVLO_ERR_STAT,
 90         BD96801_OVLO_ERR_STAT,
 91         BD96801_OSC_ERR_STAT,
 92         BD96801_PON_ERR_STAT,
 93         BD96801_POFF_ERR_STAT,
 94         BD96801_CMD_SHDN_ERR_STAT,
 95         BD96801_INT_PRSTB_WDT_ERR,
 96         BD96801_INT_CHIP_IF_ERR,
 97         BD96801_INT_SHDN_ERR_STAT,
 98 
 99         /* Reg 0x55 BUCK1 ERR IRQs */
100         BD96801_BUCK1_PVIN_ERR_STAT,
101         BD96801_BUCK1_OVP_ERR_STAT,
102         BD96801_BUCK1_UVP_ERR_STAT,
103         BD96801_BUCK1_SHDN_ERR_STAT,
104 
105         /* Reg 0x56 BUCK2 ERR IRQs */
106         BD96801_BUCK2_PVIN_ERR_STAT,
107         BD96801_BUCK2_OVP_ERR_STAT,
108         BD96801_BUCK2_UVP_ERR_STAT,
109         BD96801_BUCK2_SHDN_ERR_STAT,
110 
111         /* Reg 0x57 BUCK3 ERR IRQs */
112         BD96801_BUCK3_PVIN_ERR_STAT,
113         BD96801_BUCK3_OVP_ERR_STAT,
114         BD96801_BUCK3_UVP_ERR_STAT,
115         BD96801_BUCK3_SHDN_ERR_STAT,
116 
117         /* Reg 0x58 BUCK4 ERR IRQs */
118         BD96801_BUCK4_PVIN_ERR_STAT,
119         BD96801_BUCK4_OVP_ERR_STAT,
120         BD96801_BUCK4_UVP_ERR_STAT,
121         BD96801_BUCK4_SHDN_ERR_STAT,
122 
123         /* Reg 0x59 LDO5 ERR IRQs */
124         BD96801_LDO5_PVIN_ERR_STAT,
125         BD96801_LDO5_OVP_ERR_STAT,
126         BD96801_LDO5_UVP_ERR_STAT,
127         BD96801_LDO5_SHDN_ERR_STAT,
128 
129         /* Reg 0x5a LDO6 ERR IRQs */
130         BD96801_LDO6_PVIN_ERR_STAT,
131         BD96801_LDO6_OVP_ERR_STAT,
132         BD96801_LDO6_UVP_ERR_STAT,
133         BD96801_LDO6_SHDN_ERR_STAT,
134 
135         /* Reg 0x5b LDO7 ERR IRQs */
136         BD96801_LDO7_PVIN_ERR_STAT,
137         BD96801_LDO7_OVP_ERR_STAT,
138         BD96801_LDO7_UVP_ERR_STAT,
139         BD96801_LDO7_SHDN_ERR_STAT,
140 };
141 
142 /* INTB IRQs */
143 enum {
144         /* Reg 0x5c (System INTB) */
145         BD96801_TW_STAT,
146         BD96801_WDT_ERR_STAT,
147         BD96801_I2C_ERR_STAT,
148         BD96801_CHIP_IF_ERR_STAT,
149 
150         /* Reg 0x5d (BUCK1 INTB) */
151         BD96801_BUCK1_OCPH_STAT,
152         BD96801_BUCK1_OCPL_STAT,
153         BD96801_BUCK1_OCPN_STAT,
154         BD96801_BUCK1_OVD_STAT,
155         BD96801_BUCK1_UVD_STAT,
156         BD96801_BUCK1_TW_CH_STAT,
157 
158         /* Reg 0x5e (BUCK2 INTB) */
159         BD96801_BUCK2_OCPH_STAT,
160         BD96801_BUCK2_OCPL_STAT,
161         BD96801_BUCK2_OCPN_STAT,
162         BD96801_BUCK2_OVD_STAT,
163         BD96801_BUCK2_UVD_STAT,
164         BD96801_BUCK2_TW_CH_STAT,
165 
166         /* Reg 0x5f (BUCK3 INTB)*/
167         BD96801_BUCK3_OCPH_STAT,
168         BD96801_BUCK3_OCPL_STAT,
169         BD96801_BUCK3_OCPN_STAT,
170         BD96801_BUCK3_OVD_STAT,
171         BD96801_BUCK3_UVD_STAT,
172         BD96801_BUCK3_TW_CH_STAT,
173 
174         /* Reg 0x60 (BUCK4 INTB)*/
175         BD96801_BUCK4_OCPH_STAT,
176         BD96801_BUCK4_OCPL_STAT,
177         BD96801_BUCK4_OCPN_STAT,
178         BD96801_BUCK4_OVD_STAT,
179         BD96801_BUCK4_UVD_STAT,
180         BD96801_BUCK4_TW_CH_STAT,
181 
182         /* Reg 0x61 (LDO5 INTB) */
183         BD96801_LDO5_OCPH_STAT, /* bit [0] */
184         BD96801_LDO5_OVD_STAT,  /* bit [3] */
185         BD96801_LDO5_UVD_STAT,  /* bit [4] */
186 
187         /* Reg 0x62 (LDO6 INTB) */
188         BD96801_LDO6_OCPH_STAT, /* bit [0] */
189         BD96801_LDO6_OVD_STAT,  /* bit [3] */
190         BD96801_LDO6_UVD_STAT,  /* bit [4] */
191 
192         /* Reg 0x63 (LDO7 INTB) */
193         BD96801_LDO7_OCPH_STAT, /* bit [0] */
194         BD96801_LDO7_OVD_STAT,  /* bit [3] */
195         BD96801_LDO7_UVD_STAT,  /* bit [4] */
196 };
197 
198 /* IRQ MASKs */
199 #define BD96801_TW_STAT_MASK            BIT(0)
200 #define BD96801_WDT_ERR_STAT_MASK       BIT(1)
201 #define BD96801_I2C_ERR_STAT_MASK       BIT(2)
202 #define BD96801_CHIP_IF_ERR_STAT_MASK   BIT(3)
203 
204 #define BD96801_BUCK_OCPH_STAT_MASK     BIT(0)
205 #define BD96801_BUCK_OCPL_STAT_MASK     BIT(1)
206 #define BD96801_BUCK_OCPN_STAT_MASK     BIT(2)
207 #define BD96801_BUCK_OVD_STAT_MASK      BIT(3)
208 #define BD96801_BUCK_UVD_STAT_MASK      BIT(4)
209 #define BD96801_BUCK_TW_CH_STAT_MASK    BIT(5)
210 
211 #define BD96801_LDO_OCPH_STAT_MASK      BIT(0)
212 #define BD96801_LDO_OVD_STAT_MASK       BIT(3)
213 #define BD96801_LDO_UVD_STAT_MASK       BIT(4)
214 
215 #endif
216 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php