1355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman/* include/linux/timed_output.h 2355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * 3355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * Copyright (C) 2008 Google, Inc. 4355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * 5355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * This software is licensed under the terms of the GNU General Public 6355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * License version 2, as published by the Free Software Foundation, and 7355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * may be copied, distributed, and modified under those terms. 8355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * 9355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * This program is distributed in the hope that it will be useful, 10355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * but WITHOUT ANY WARRANTY; without even the implied warranty of 11355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * GNU General Public License for more details. 13355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman * 14355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman*/ 15355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 16355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman#ifndef _LINUX_TIMED_OUTPUT_H 17355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman#define _LINUX_TIMED_OUTPUT_H 18355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 19355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartmanstruct timed_output_dev { 20355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman const char *name; 21355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 22355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman /* enable the output and set the timer */ 23355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman void (*enable)(struct timed_output_dev *sdev, int timeout); 24355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 25355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman /* returns the current number of milliseconds remaining on the timer */ 26355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman int (*get_time)(struct timed_output_dev *sdev); 27355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 28355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman /* private data */ 29355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman struct device *dev; 30355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman int index; 31355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman int state; 32355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman}; 33355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 34355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartmanextern int timed_output_dev_register(struct timed_output_dev *dev); 35355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartmanextern void timed_output_dev_unregister(struct timed_output_dev *dev); 36355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman 37355b0502f6efea0ff9492753888772c96972d2a3Greg Kroah-Hartman#endif 38