/********************************************************************************
 * Marvell GPL License Option
 *
 * If you received this File from Marvell, you may opt to use, redistribute and/or
 * modify this File in accordance with the terms and conditions of the General
 * Public License Version 2, June 1991 (the "GPL License"), a copy of which is
 * available along with the File in the license.txt file or by writing to the Free
 * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
 * on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
 *
 * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
 * DISCLAIMED.  The GPL License provides additional details about this warranty
 * disclaimer.
 ******************************************************************************/

#ifndef _PWM_DRIVER_H_
#define _PWM_DRIVER_H_

#include "com_type.h"

typedef struct pwm_settings_t {
	UINT32 En;
	UINT32 PreScale;
	UINT32 Polarity; /* 0/1 Active High/Low */
	UINT32 Duty;
	UINT32 Tcnt;
} PWM_SETTINGS;

int pwm_on_off(int index, PWM_SETTINGS * pwm_settings, int on_off);
int pwm_read_settings(int index, PWM_SETTINGS * pwm_settings);
int pwm_write_settings(int index, PWM_SETTINGS * pwm_settings);
#endif
