Re: [PATCH] devicetree: Add video bus switch
From: Sakari Ailus <sakari.ailus@iki.fi>
Date: 2017-02-03 13:07:48
Also in:
linux-media, lkml
Hi Pavel, My apologies for the delays in reviewing. Feel free to ping me in the future if this happens. :-) On Fri, Feb 03, 2017 at 01:35:08PM +0100, Pavel Machek wrote:
quoted hunk ↗ jump to hunk
N900 contains front and back camera, with a switch between the two. This adds support for the switch component, and it is now possible to select between front and back cameras during runtime. This adds documentation for the devicetree binding. Signed-off-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Ivaylo Dimitrov <redacted> Signed-off-by: Pavel Machek <redacted>diff --git a/Documentation/devicetree/bindings/media/video-bus-switch.txt b/Documentation/devicetree/bindings/media/video-bus-switch.txt new file mode 100644 index 0000000..1b9f8e0 --- /dev/null +++ b/Documentation/devicetree/bindings/media/video-bus-switch.txt@@ -0,0 +1,63 @@ +Video Bus Switch Binding +======================== + +This is a binding for a gpio controlled switch for camera interfaces. Such a +device is used on some embedded devices to connect two cameras to the same +interface of a image signal processor. + +Required properties +=================== + +compatible : must contain "video-bus-switch"
How generic is this? Should we have e.g. nokia,video-bus-switch? And if so, change the file name accordingly.
+switch-gpios : GPIO specifier for the gpio, which can toggle the + selected camera. The GPIO should be configured, so + that a disabled GPIO means, that the first port is + selected. + +Required Port nodes +=================== + +More documentation on these bindings is available in +video-interfaces.txt in the same directory. + +reg : The interface: + 0 - port for image signal processor + 1 - port for first camera sensor + 2 - port for second camera sensor
I'd say this must be pretty much specific to the one in N900. You could have more ports. Or you could say that ports beyond 0 are camera sensors. I guess this is good enough for now though, it can be changed later on with the source if a need arises. Btw. was it still considered a problem that the endpoint properties for the sensors can be different? With the g_routing() pad op which is to be added, the ISP driver (should actually go to a framework somewhere) could parse the graph and find the proper endpoint there. I don't think we need to wait for that now, but this is how the problem could be solved going forward.
+
+Example
+=======
+
+video-bus-switch {
+ compatible = "video-bus-switch"
+ switch-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ csi_switch_in: endpoint {
+ remote-endpoint = <&csi_isp>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ csi_switch_out1: endpoint {
+ remote-endpoint = <&csi_cam1>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ csi_switch_out2: endpoint {
+ remote-endpoint = <&csi_cam2>;
+ };
+ };
+ };
+};
-- Kind regards, Sakari Ailus e-mail: sakari.ailus@iki.fi XMPP: sailus@retiisi.org.uk