Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.19-rc2 170 lines 3.8 kB view raw
1/* 2 * Copyright (C) ST-Ericsson SA 2010 3 * 4 * License Terms: GNU General Public License v2 5 * 6 * Authors: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson 7 * Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson 8 * Daniel Willerud <daniel.willerud@stericsson.com> for ST-Ericsson 9 */ 10 11#ifndef __LINUX_MFD_AB8500_REGULATOR_H 12#define __LINUX_MFD_AB8500_REGULATOR_H 13 14#include <linux/platform_device.h> 15 16/* AB8500 regulators */ 17enum ab8500_regulator_id { 18 AB8500_LDO_AUX1, 19 AB8500_LDO_AUX2, 20 AB8500_LDO_AUX3, 21 AB8500_LDO_INTCORE, 22 AB8500_LDO_TVOUT, 23 AB8500_LDO_AUDIO, 24 AB8500_LDO_ANAMIC1, 25 AB8500_LDO_ANAMIC2, 26 AB8500_LDO_DMIC, 27 AB8500_LDO_ANA, 28 AB8500_NUM_REGULATORS, 29}; 30 31/* AB8505 regulators */ 32enum ab8505_regulator_id { 33 AB8505_LDO_AUX1, 34 AB8505_LDO_AUX2, 35 AB8505_LDO_AUX3, 36 AB8505_LDO_AUX4, 37 AB8505_LDO_AUX5, 38 AB8505_LDO_AUX6, 39 AB8505_LDO_INTCORE, 40 AB8505_LDO_ADC, 41 AB8505_LDO_USB, 42 AB8505_LDO_AUDIO, 43 AB8505_LDO_ANAMIC1, 44 AB8505_LDO_ANAMIC2, 45 AB8505_LDO_AUX8, 46 AB8505_LDO_ANA, 47 AB8505_SYSCLKREQ_2, 48 AB8505_SYSCLKREQ_4, 49 AB8505_NUM_REGULATORS, 50}; 51 52/* AB8500 and AB8505 register initialization */ 53struct ab8500_regulator_reg_init { 54 int id; 55 u8 mask; 56 u8 value; 57}; 58 59#define INIT_REGULATOR_REGISTER(_id, _mask, _value) \ 60 { \ 61 .id = _id, \ 62 .mask = _mask, \ 63 .value = _value, \ 64 } 65 66/* AB8500 registers */ 67enum ab8500_regulator_reg { 68 AB8500_REGUREQUESTCTRL2, 69 AB8500_REGUREQUESTCTRL3, 70 AB8500_REGUREQUESTCTRL4, 71 AB8500_REGUSYSCLKREQ1HPVALID1, 72 AB8500_REGUSYSCLKREQ1HPVALID2, 73 AB8500_REGUHWHPREQ1VALID1, 74 AB8500_REGUHWHPREQ1VALID2, 75 AB8500_REGUHWHPREQ2VALID1, 76 AB8500_REGUHWHPREQ2VALID2, 77 AB8500_REGUSWHPREQVALID1, 78 AB8500_REGUSWHPREQVALID2, 79 AB8500_REGUSYSCLKREQVALID1, 80 AB8500_REGUSYSCLKREQVALID2, 81 AB8500_REGUMISC1, 82 AB8500_VAUDIOSUPPLY, 83 AB8500_REGUCTRL1VAMIC, 84 AB8500_VPLLVANAREGU, 85 AB8500_VREFDDR, 86 AB8500_EXTSUPPLYREGU, 87 AB8500_VAUX12REGU, 88 AB8500_VRF1VAUX3REGU, 89 AB8500_VAUX1SEL, 90 AB8500_VAUX2SEL, 91 AB8500_VRF1VAUX3SEL, 92 AB8500_REGUCTRL2SPARE, 93 AB8500_REGUCTRLDISCH, 94 AB8500_REGUCTRLDISCH2, 95 AB8500_NUM_REGULATOR_REGISTERS, 96}; 97 98/* AB8505 registers */ 99enum ab8505_regulator_reg { 100 AB8505_REGUREQUESTCTRL1, 101 AB8505_REGUREQUESTCTRL2, 102 AB8505_REGUREQUESTCTRL3, 103 AB8505_REGUREQUESTCTRL4, 104 AB8505_REGUSYSCLKREQ1HPVALID1, 105 AB8505_REGUSYSCLKREQ1HPVALID2, 106 AB8505_REGUHWHPREQ1VALID1, 107 AB8505_REGUHWHPREQ1VALID2, 108 AB8505_REGUHWHPREQ2VALID1, 109 AB8505_REGUHWHPREQ2VALID2, 110 AB8505_REGUSWHPREQVALID1, 111 AB8505_REGUSWHPREQVALID2, 112 AB8505_REGUSYSCLKREQVALID1, 113 AB8505_REGUSYSCLKREQVALID2, 114 AB8505_REGUVAUX4REQVALID, 115 AB8505_REGUMISC1, 116 AB8505_VAUDIOSUPPLY, 117 AB8505_REGUCTRL1VAMIC, 118 AB8505_VSMPSAREGU, 119 AB8505_VSMPSBREGU, 120 AB8505_VSAFEREGU, /* NOTE! PRCMU register */ 121 AB8505_VPLLVANAREGU, 122 AB8505_EXTSUPPLYREGU, 123 AB8505_VAUX12REGU, 124 AB8505_VRF1VAUX3REGU, 125 AB8505_VSMPSASEL1, 126 AB8505_VSMPSASEL2, 127 AB8505_VSMPSASEL3, 128 AB8505_VSMPSBSEL1, 129 AB8505_VSMPSBSEL2, 130 AB8505_VSMPSBSEL3, 131 AB8505_VSAFESEL1, /* NOTE! PRCMU register */ 132 AB8505_VSAFESEL2, /* NOTE! PRCMU register */ 133 AB8505_VSAFESEL3, /* NOTE! PRCMU register */ 134 AB8505_VAUX1SEL, 135 AB8505_VAUX2SEL, 136 AB8505_VRF1VAUX3SEL, 137 AB8505_VAUX4REQCTRL, 138 AB8505_VAUX4REGU, 139 AB8505_VAUX4SEL, 140 AB8505_REGUCTRLDISCH, 141 AB8505_REGUCTRLDISCH2, 142 AB8505_REGUCTRLDISCH3, 143 AB8505_CTRLVAUX5, 144 AB8505_CTRLVAUX6, 145 AB8505_NUM_REGULATOR_REGISTERS, 146}; 147 148/* AB8500 external regulators */ 149struct ab8500_ext_regulator_cfg { 150 bool hwreq; /* requires hw mode or high power mode */ 151}; 152 153enum ab8500_ext_regulator_id { 154 AB8500_EXT_SUPPLY1, 155 AB8500_EXT_SUPPLY2, 156 AB8500_EXT_SUPPLY3, 157 AB8500_NUM_EXT_REGULATORS, 158}; 159 160/* AB8500 regulator platform data */ 161struct ab8500_regulator_platform_data { 162 int num_reg_init; 163 struct ab8500_regulator_reg_init *reg_init; 164 int num_regulator; 165 struct regulator_init_data *regulator; 166 int num_ext_regulator; 167 struct regulator_init_data *ext_regulator; 168}; 169 170#endif