#include <linux/clk-provider.h>
#include <linux/mfd/twl.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#define VREG_STATE …
#define TWL6030_CFG_STATE_OFF …
#define TWL6030_CFG_STATE_ON …
#define TWL6030_CFG_STATE_MASK …
struct twl_clock_info { … };
static inline int
twlclk_read(struct twl_clock_info *info, unsigned int slave_subgp,
unsigned int offset)
{ … }
static inline int
twlclk_write(struct twl_clock_info *info, unsigned int slave_subgp,
unsigned int offset, u8 value)
{ … }
static inline struct twl_clock_info *to_twl_clks_info(struct clk_hw *hw)
{ … }
static unsigned long twl_clks_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static int twl6032_clks_prepare(struct clk_hw *hw)
{ … }
static void twl6032_clks_unprepare(struct clk_hw *hw)
{ … }
static int twl6032_clks_is_prepared(struct clk_hw *hw)
{ … }
static const struct clk_ops twl6032_clks_ops = …;
struct twl_clks_data { … };
static const struct twl_clks_data twl6032_clks[] = …;
static int twl_clks_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id twl_clks_id[] = …;
MODULE_DEVICE_TABLE(platform, twl_clks_id);
static struct platform_driver twl_clks_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;