/* * V4L2 clock service * * Copyright (C) 2012-2013, Guennadi Liakhovetski <g.liakhovetski@gmx.de> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * ATTENTION: This is a temporary API and it shall be replaced by the generic * clock API, when the latter becomes widely available. */ #ifndef MEDIA_V4L2_CLK_H #define MEDIA_V4L2_CLK_H #include <linux/atomic.h> #include <linux/export.h> #include <linux/list.h> #include <linux/mutex.h> struct module; struct device; struct clk; struct v4l2_clk { struct list_head list; const struct v4l2_clk_ops *ops; const char *dev_id; int enable; struct mutex lock; /* Protect the enable count */ atomic_t use_count; struct clk *clk; void *priv; }; struct v4l2_clk_ops { struct module *owner; int (*enable)(struct v4l2_clk *clk); void (*disable)(struct v4l2_clk *clk); unsigned long (*get_rate)(struct v4l2_clk *clk); int (*set_rate)(struct v4l2_clk *clk, unsigned long); }; struct v4l2_clk *v4l2_clk_register(const struct v4l2_clk_ops *ops, const char *dev_name, void *priv); void v4l2_clk_unregister(struct v4l2_clk *clk); struct v4l2_clk *v4l2_clk_get(struct device *dev, const char *id); void v4l2_clk_put(struct v4l2_clk *clk); int v4l2_clk_enable(struct v4l2_clk *clk); void v4l2_clk_disable(struct v4l2_clk *clk); unsigned long v4l2_clk_get_rate(struct v4l2_clk *clk); int v4l2_clk_set_rate(struct v4l2_clk *clk, unsigned long rate); struct module; struct v4l2_clk *__v4l2_clk_register_fixed(const char *dev_id, unsigned long rate, struct module *owner); void v4l2_clk_unregister_fixed(struct v4l2_clk *clk); static inline struct v4l2_clk *v4l2_clk_register_fixed(const char *dev_id, unsigned long rate) { return __v4l2_clk_register_fixed(dev_id, rate, THIS_MODULE); } #define V4L2_CLK_NAME_SIZE 64 #define v4l2_clk_name_i2c(name, size, adap, client) snprintf(name, size, \ "%d-%04x", adap, client) #define v4l2_clk_name_of(name, size, node) snprintf(name, size, \ "of-%pOF", node) #endif
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
blackfin | Folder | 0755 |
|
|
davinci | Folder | 0755 |
|
|
drv-intf | Folder | 0755 |
|
|
i2c | Folder | 0755 |
|
|
cec-notifier.h | File | 4.18 KB | 0644 |
|
cec-pin.h | File | 3.08 KB | 0644 |
|
cec.h | File | 14.21 KB | 0644 |
|
i2c-addr.h | File | 1.21 KB | 0644 |
|
imx.h | File | 396 B | 0644 |
|
lirc.h | File | 29 B | 0644 |
|
lirc_dev.h | File | 5.03 KB | 0644 |
|
media-device.h | File | 15.76 KB | 0644 |
|
media-devnode.h | File | 5.68 KB | 0644 |
|
media-entity.h | File | 34.19 KB | 0644 |
|
rc-core.h | File | 11.57 KB | 0644 |
|
rc-map.h | File | 13.86 KB | 0644 |
|
rcar-fcp.h | File | 1.31 KB | 0644 |
|
soc_camera.h | File | 12.99 KB | 0644 |
|
tuner-types.h | File | 6.99 KB | 0644 |
|
tuner.h | File | 8.85 KB | 0644 |
|
tveeprom.h | File | 3.29 KB | 0644 |
|
v4l2-async.h | File | 6.55 KB | 0644 |
|
v4l2-clk.h | File | 2.09 KB | 0644 |
|
v4l2-common.h | File | 8.38 KB | 0644 |
|
v4l2-ctrls.h | File | 38.06 KB | 0644 |
|
v4l2-dev.h | File | 15.05 KB | 0644 |
|
v4l2-device.h | File | 11.14 KB | 0644 |
|
v4l2-dv-timings.h | File | 8.3 KB | 0644 |
|
v4l2-event.h | File | 7.56 KB | 0644 |
|
v4l2-fh.h | File | 4.62 KB | 0644 |
|
v4l2-flash-led-class.h | File | 5.59 KB | 0644 |
|
v4l2-fwnode.h | File | 13.35 KB | 0644 |
|
v4l2-image-sizes.h | File | 864 B | 0644 |
|
v4l2-ioctl.h | File | 31.31 KB | 0644 |
|
v4l2-mc.h | File | 8.02 KB | 0644 |
|
v4l2-mediabus.h | File | 4.96 KB | 0644 |
|
v4l2-mem2mem.h | File | 19.72 KB | 0644 |
|
v4l2-rect.h | File | 5.24 KB | 0644 |
|
v4l2-subdev.h | File | 37.77 KB | 0644 |
|
v4l2-tpg-colors.h | File | 1.89 KB | 0644 |
|
v4l2-tpg.h | File | 14.49 KB | 0644 |
|
videobuf-core.h | File | 6.99 KB | 0644 |
|
videobuf-dma-contig.h | File | 1.04 KB | 0644 |
|
videobuf-dma-sg.h | File | 2.94 KB | 0644 |
|
videobuf-dvb.h | File | 1.7 KB | 0644 |
|
videobuf-vmalloc.h | File | 1.29 KB | 0644 |
|
videobuf2-core.h | File | 39.7 KB | 0644 |
|
videobuf2-dma-contig.h | File | 866 B | 0644 |
|
videobuf2-dma-sg.h | File | 696 B | 0644 |
|
videobuf2-dvb.h | File | 1.79 KB | 0644 |
|
videobuf2-memops.h | File | 1.09 KB | 0644 |
|
videobuf2-v4l2.h | File | 9.76 KB | 0644 |
|
videobuf2-vmalloc.h | File | 509 B | 0644 |
|
vsp1.h | File | 1.84 KB | 0644 |
|