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