2014-01-15 10:47:23 -08:00
/*
* Copyright ( c ) 2014 , The Linux Foundation . All rights reserved .
*
* This software is licensed under the terms of the GNU General Public
* License version 2 , as published by the Free Software Foundation , and
* may be copied , distributed , and modified under those terms .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*/
# ifndef __QCOM_CLK_REGMAP_H__
# define __QCOM_CLK_REGMAP_H__
# include <linux/clk-provider.h>
struct regmap ;
/**
* struct clk_regmap - regmap supporting clock
* @ hw : handle between common and hardware - specific interfaces
* @ regmap : regmap to use for regmap helpers and / or by providers
* @ enable_reg : register when using regmap enable / disable ops
* @ enable_mask : mask when using regmap enable / disable ops
* @ enable_is_inverted : flag to indicate set enable_mask bits to disable
* when using clock_enable_regmap and friends APIs .
*/
struct clk_regmap {
struct clk_hw hw ;
struct regmap * regmap ;
unsigned int enable_reg ;
unsigned int enable_mask ;
bool enable_is_inverted ;
} ;
# define to_clk_regmap(_hw) container_of(_hw, struct clk_regmap, hw)
int clk_is_enabled_regmap ( struct clk_hw * hw ) ;
int clk_enable_regmap ( struct clk_hw * hw ) ;
void clk_disable_regmap ( struct clk_hw * hw ) ;
2016-08-16 15:38:27 -07:00
int devm_clk_register_regmap ( struct device * dev , struct clk_regmap * rclk ) ;
2014-01-15 10:47:23 -08:00
# endif