11668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy/* 21668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * Copyright (C) ST-Ericsson SA 2012 31668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * Author: Johan Gardsmark <johan.gardsmark@stericsson.com> for ST-Ericsson. 41668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * License terms: GNU General Public License (GPL), version 2 51668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy */ 61668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 71668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy#ifndef _UX500_CHARGALG_H 81668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy#define _UX500_CHARGALG_H 91668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 101668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy#include <linux/power_supply.h> 111668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 121668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy#define psy_to_ux500_charger(x) container_of((x), \ 131668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy struct ux500_charger, psy) 141668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 151668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy/* Forward declaration */ 161668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthystruct ux500_charger; 171668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 181668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthystruct ux500_charger_ops { 191668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy int (*enable) (struct ux500_charger *, int, int, int); 201668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy int (*kick_wd) (struct ux500_charger *); 211668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy int (*update_curr) (struct ux500_charger *, int); 221668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy}; 231668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 241668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy/** 251668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * struct ux500_charger - power supply ux500 charger sub class 261668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * @psy power supply base class 271668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * @ops ux500 charger operations 281668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * @max_out_volt maximum output charger voltage in mV 291668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy * @max_out_curr maximum output charger current in mA 301668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy */ 311668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthystruct ux500_charger { 321668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy struct power_supply psy; 331668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy struct ux500_charger_ops ops; 341668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy int max_out_volt; 351668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy int max_out_curr; 361668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy}; 371668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy 381668f81159fb72eda2114a9c73a64ffee045cb01Arun Murthy#endif 39