| 
									
										
										
										
											2012-09-26 05:24:03 -03:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * V4L2 OF binding parsing library | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2013-04-02 11:41:19 -03:00
										 |  |  |  * Copyright (C) 2012 - 2013 Samsung Electronics Co., Ltd. | 
					
						
							|  |  |  |  * Author: Sylwester Nawrocki <s.nawrocki@samsung.com> | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2012-09-26 05:24:03 -03:00
										 |  |  |  * Copyright (C) 2012 Renesas Electronics Corp. | 
					
						
							|  |  |  |  * Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of version 2 of the GNU General Public License as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _V4L2_OF_H
 | 
					
						
							|  |  |  | #define _V4L2_OF_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/list.h>
 | 
					
						
							|  |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | #include <linux/errno.h>
 | 
					
						
							| 
									
										
										
										
											2014-02-10 22:01:48 +01:00
										 |  |  | #include <linux/of_graph.h>
 | 
					
						
							| 
									
										
										
										
											2012-09-26 05:24:03 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <media/v4l2-mediabus.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct device_node; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * struct v4l2_of_bus_mipi_csi2 - MIPI CSI-2 bus data structure | 
					
						
							|  |  |  |  * @flags: media bus (V4L2_MBUS_*) flags | 
					
						
							|  |  |  |  * @data_lanes: an array of physical data lane indexes | 
					
						
							|  |  |  |  * @clock_lane: physical lane index of the clock lane | 
					
						
							|  |  |  |  * @num_data_lanes: number of data lanes | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct v4l2_of_bus_mipi_csi2 { | 
					
						
							|  |  |  | 	unsigned int flags; | 
					
						
							|  |  |  | 	unsigned char data_lanes[4]; | 
					
						
							|  |  |  | 	unsigned char clock_lane; | 
					
						
							|  |  |  | 	unsigned short num_data_lanes; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * struct v4l2_of_bus_parallel - parallel data bus data structure | 
					
						
							|  |  |  |  * @flags: media bus (V4L2_MBUS_*) flags | 
					
						
							|  |  |  |  * @bus_width: bus width in bits | 
					
						
							|  |  |  |  * @data_shift: data shift in bits | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct v4l2_of_bus_parallel { | 
					
						
							|  |  |  | 	unsigned int flags; | 
					
						
							|  |  |  | 	unsigned char bus_width; | 
					
						
							|  |  |  | 	unsigned char data_shift; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * struct v4l2_of_endpoint - the endpoint data structure | 
					
						
							| 
									
										
										
										
											2014-02-14 11:53:56 +01:00
										 |  |  |  * @base: struct of_endpoint containing port, id, and local of_node | 
					
						
							| 
									
										
										
										
											2012-09-26 05:24:03 -03:00
										 |  |  |  * @bus_type: bus type | 
					
						
							|  |  |  |  * @bus: bus configuration data structure | 
					
						
							|  |  |  |  * @head: list head for this structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct v4l2_of_endpoint { | 
					
						
							| 
									
										
										
										
											2014-02-14 11:53:56 +01:00
										 |  |  | 	struct of_endpoint base; | 
					
						
							| 
									
										
										
										
											2012-09-26 05:24:03 -03:00
										 |  |  | 	enum v4l2_mbus_type bus_type; | 
					
						
							|  |  |  | 	union { | 
					
						
							|  |  |  | 		struct v4l2_of_bus_parallel parallel; | 
					
						
							|  |  |  | 		struct v4l2_of_bus_mipi_csi2 mipi_csi2; | 
					
						
							|  |  |  | 	} bus; | 
					
						
							|  |  |  | 	struct list_head head; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_OF
 | 
					
						
							| 
									
										
										
										
											2013-05-17 07:31:04 -03:00
										 |  |  | int v4l2_of_parse_endpoint(const struct device_node *node, | 
					
						
							|  |  |  | 			   struct v4l2_of_endpoint *endpoint); | 
					
						
							| 
									
										
										
										
											2012-09-26 05:24:03 -03:00
										 |  |  | #else /* CONFIG_OF */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline int v4l2_of_parse_endpoint(const struct device_node *node, | 
					
						
							|  |  |  | 					struct v4l2_of_endpoint *link) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return -ENOSYS; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* CONFIG_OF */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _V4L2_OF_H */
 |