162306a36Sopenharmony_ciTexas Instruments AM437x CAMERA (VPFE)
262306a36Sopenharmony_ci--------------------------------------
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciThe Video Processing Front End (VPFE) is a key component for image capture
562306a36Sopenharmony_ciapplications. The capture module provides the system interface and the
662306a36Sopenharmony_ciprocessing capability to connect RAW image-sensor modules and video decoders
762306a36Sopenharmony_cito the AM437x device.
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciRequired properties:
1062306a36Sopenharmony_ci- compatible: must be "ti,am437x-vpfe"
1162306a36Sopenharmony_ci- reg: physical base address and length of the registers set for the device;
1262306a36Sopenharmony_ci- interrupts: should contain IRQ line for the VPFE;
1362306a36Sopenharmony_ci- ti,am437x-vpfe-interface: can be one of the following,
1462306a36Sopenharmony_ci	0 - Raw Bayer Interface.
1562306a36Sopenharmony_ci	1 - 8 Bit BT656 Interface.
1662306a36Sopenharmony_ci	2 - 10 Bit BT656 Interface.
1762306a36Sopenharmony_ci	3 - YCbCr 8 Bit Interface.
1862306a36Sopenharmony_ci	4 - YCbCr 16 Bit Interface.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciVPFE supports a single port node with parallel bus. It should contain one
2162306a36Sopenharmony_ci'port' child node with child 'endpoint' node. Please refer to the bindings
2262306a36Sopenharmony_cidefined in Documentation/devicetree/bindings/media/video-interfaces.txt.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciExample:
2562306a36Sopenharmony_ci	vpfe: vpfe@f0034000 {
2662306a36Sopenharmony_ci		compatible = "ti,am437x-vpfe";
2762306a36Sopenharmony_ci		reg = <0x48328000 0x2000>;
2862306a36Sopenharmony_ci		interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci		pinctrl-names = "default", "sleep";
3162306a36Sopenharmony_ci		pinctrl-0 = <&vpfe_pins_default>;
3262306a36Sopenharmony_ci		pinctrl-1 = <&vpfe_pins_sleep>;
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci		port {
3562306a36Sopenharmony_ci			#address-cells = <1>;
3662306a36Sopenharmony_ci			#size-cells = <0>;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci			vpfe0_ep: endpoint {
3962306a36Sopenharmony_ci				remote-endpoint = <&ov2659_1>;
4062306a36Sopenharmony_ci				ti,am437x-vpfe-interface = <0>;
4162306a36Sopenharmony_ci				bus-width = <8>;
4262306a36Sopenharmony_ci				hsync-active = <0>;
4362306a36Sopenharmony_ci				vsync-active = <0>;
4462306a36Sopenharmony_ci			};
4562306a36Sopenharmony_ci		};
4662306a36Sopenharmony_ci	};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	i2c1: i2c@4802a000 {
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci		ov2659@30 {
5162306a36Sopenharmony_ci			compatible = "ti,ov2659";
5262306a36Sopenharmony_ci			reg = <0x30>;
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci			port {
5562306a36Sopenharmony_ci				ov2659_1: endpoint {
5662306a36Sopenharmony_ci					remote-endpoint = <&vpfe0_ep>;
5762306a36Sopenharmony_ci					bus-width = <8>;
5862306a36Sopenharmony_ci					mclk-frequency = <12000000>;
5962306a36Sopenharmony_ci				};
6062306a36Sopenharmony_ci			};
6162306a36Sopenharmony_ci	};
62