2
* Generic Platform Camera Driver Header
4
* Copyright (C) 2008 Magnus Damm
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
11
#ifndef __SOC_CAMERA_H__
12
#define __SOC_CAMERA_H__
14
#include <linux/videodev2.h>
15
#include <media/soc_camera.h>
16
#include <media/v4l2-mediabus.h>
20
struct soc_camera_platform_info {
21
const char *format_name;
22
unsigned long format_depth;
23
struct v4l2_mbus_framefmt format;
24
unsigned long mbus_param;
25
enum v4l2_mbus_type mbus_type;
26
struct soc_camera_device *icd;
27
int (*set_capture)(struct soc_camera_platform_info *info, int enable);
30
static inline void soc_camera_platform_release(struct platform_device **pdev)
35
static inline int soc_camera_platform_add(struct soc_camera_device *icd,
36
struct platform_device **pdev,
37
struct soc_camera_link *plink,
38
void (*release)(struct device *dev),
41
struct soc_camera_platform_info *info = plink->priv;
44
if (icd->link != plink)
50
*pdev = platform_device_alloc("soc_camera_platform", id);
56
(*pdev)->dev.platform_data = info;
57
(*pdev)->dev.release = release;
59
ret = platform_device_add(*pdev);
61
platform_device_put(*pdev);
69
static inline void soc_camera_platform_del(const struct soc_camera_device *icd,
70
struct platform_device *pdev,
71
const struct soc_camera_link *plink)
73
if (icd->link != plink || !pdev)
76
platform_device_unregister(pdev);
79
#endif /* __SOC_CAMERA_H__ */