diff options
Diffstat (limited to 'include/linux/mfd/max8997.h')
-rw-r--r-- | include/linux/mfd/max8997.h | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/include/linux/mfd/max8997.h b/include/linux/mfd/max8997.h index fff590521e50..28726dd540f2 100644 --- a/include/linux/mfd/max8997.h +++ b/include/linux/mfd/max8997.h | |||
@@ -131,6 +131,55 @@ struct max8997_muic_platform_data { | |||
131 | int num_init_data; | 131 | int num_init_data; |
132 | }; | 132 | }; |
133 | 133 | ||
134 | enum max8997_haptic_motor_type { | ||
135 | MAX8997_HAPTIC_ERM, | ||
136 | MAX8997_HAPTIC_LRA, | ||
137 | }; | ||
138 | |||
139 | enum max8997_haptic_pulse_mode { | ||
140 | MAX8997_EXTERNAL_MODE, | ||
141 | MAX8997_INTERNAL_MODE, | ||
142 | }; | ||
143 | |||
144 | enum max8997_haptic_pwm_divisor { | ||
145 | MAX8997_PWM_DIVISOR_32, | ||
146 | MAX8997_PWM_DIVISOR_64, | ||
147 | MAX8997_PWM_DIVISOR_128, | ||
148 | MAX8997_PWM_DIVISOR_256, | ||
149 | }; | ||
150 | |||
151 | /** | ||
152 | * max8997_haptic_platform_data | ||
153 | * @pwm_channel_id: channel number of PWM device | ||
154 | * valid for MAX8997_EXTERNAL_MODE | ||
155 | * @pwm_period: period in nano second for PWM device | ||
156 | * valid for MAX8997_EXTERNAL_MODE | ||
157 | * @type: motor type | ||
158 | * @mode: pulse mode | ||
159 | * MAX8997_EXTERNAL_MODE: external PWM device is used to control motor | ||
160 | * MAX8997_INTERNAL_MODE: internal pulse generator is used to control motor | ||
161 | * @pwm_divisor: divisor for external PWM device | ||
162 | * @internal_mode_pattern: internal mode pattern for internal mode | ||
163 | * [0 - 3]: valid pattern number | ||
164 | * @pattern_cycle: the number of cycles of the waveform | ||
165 | * for the internal mode pattern | ||
166 | * [0 - 15]: available cycles | ||
167 | * @pattern_signal_period: period of the waveform for the internal mode pattern | ||
168 | * [0 - 255]: available period | ||
169 | */ | ||
170 | struct max8997_haptic_platform_data { | ||
171 | unsigned int pwm_channel_id; | ||
172 | unsigned int pwm_period; | ||
173 | |||
174 | enum max8997_haptic_motor_type type; | ||
175 | enum max8997_haptic_pulse_mode mode; | ||
176 | enum max8997_haptic_pwm_divisor pwm_divisor; | ||
177 | |||
178 | unsigned int internal_mode_pattern; | ||
179 | unsigned int pattern_cycle; | ||
180 | unsigned int pattern_signal_period; | ||
181 | }; | ||
182 | |||
134 | enum max8997_led_mode { | 183 | enum max8997_led_mode { |
135 | MAX8997_NONE, | 184 | MAX8997_NONE, |
136 | MAX8997_FLASH_MODE, | 185 | MAX8997_FLASH_MODE, |
@@ -192,7 +241,9 @@ struct max8997_platform_data { | |||
192 | /* ---- MUIC ---- */ | 241 | /* ---- MUIC ---- */ |
193 | struct max8997_muic_platform_data *muic_pdata; | 242 | struct max8997_muic_platform_data *muic_pdata; |
194 | 243 | ||
195 | /* HAPTIC: Not implemented */ | 244 | /* ---- HAPTIC ---- */ |
245 | struct max8997_haptic_platform_data *haptic_pdata; | ||
246 | |||
196 | /* RTC: Not implemented */ | 247 | /* RTC: Not implemented */ |
197 | /* ---- LED ---- */ | 248 | /* ---- LED ---- */ |
198 | struct max8997_led_platform_data *led_pdata; | 249 | struct max8997_led_platform_data *led_pdata; |