s5k5baf: add camera sensor driver
authorAndrzej Hajda <a.hajda@samsung.com>
Mon, 2 Sep 2013 14:42:15 +0000 (16:42 +0200)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:44:37 +0000 (11:44 +0900)
commit2136cfd128cb802327954c34b79d29588d52999b
tree98c08d792dd21965353a88fd2053fbad200b9d4c
parentbed277376f9c919b99765bc25f24bce9d9ea4cc1
s5k5baf: add camera sensor driver

Driver for Samsung S5K5BAF UXGA 1/5" 2M CMOS Image Sensor
with embedded SoC ISP.
The driver exposes the sensor as two V4L2 subdevices:
- S5K5BAF-CIS - pure CMOS Image Sensor, fixed 1600x1200 format,
  no controls.
- S5K5BAF-ISP - Image Signal Processor, formats up to 1600x1200,
  pre/post ISP cropping, downscaling via selection API, controls.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
Hi,

This is the 8th iteration of the patch.
I have applied suggestions from Laurent, Sylwester and Mark, thanks.
One exeception, I have left static struct v4l2_rect s5k5baf_cis_rect
not const due to fact its address is passed to function which could
modify its arguments, of course it never modifies s5k5baf_cis_rect.

Regards
Andrzej

v8
- improved description of data-lanes binding,
- added algorithm caching,
- added comments to functions,
- video bus type checking moved to probe,
- clk_get/put moved to probe,
- moved streaming checking under mutex,
- use proper functions for endian conversion,
- cosmetic changes

v7
- changed description of 'clock-frequency' DT property

v6
- endpoint node presence is now optional,
- added asynchronous subdev registration support and clock
  handling,
- use named gpios in DT bindings

v5
- removed hflip/vflip device tree properties

v4
- GPL changed to GPLv2,
- bitfields replaced by u8,
- cosmetic changes,
- corrected s_stream flow,
- gpio pins are no longer exported,
- added I2C addresses to subdev names,
- CIS subdev registration postponed after
  succesfull HW initialization,
- added enums for pads,
- selections are initialized only during probe,
- default resolution changed to 1600x1200,
- state->error pattern removed from few other functions,
- entity link creation moved to registered callback.

v3:
- narrowed state->error usage to i2c and power errors,
- private gain controls replaced by red/blue balance user controls,
- added checks to devicetree gpio node parsing

v2:
- lower-cased driver name,
- removed underscore from regulator names,
- removed platform data code,
- v4l controls grouped in anonymous structs,
- added s5k5baf_clear_error function,
- private controls definitions moved to uapi header file,
- added v4l2-controls.h reservation for private controls,
- corrected subdev registered/unregistered code,
- .log_status sudbev op set to v4l2 helper,
- moved entity link creation to probe routines,
- added cleanup on error to probe function.
Documentation/devicetree/bindings/media/samsung-s5k5baf.txt [new file with mode: 0644]
MAINTAINERS
drivers/media/i2c/Kconfig
drivers/media/i2c/Makefile
drivers/media/i2c/s5k5baf.c [new file with mode: 0644]