Hello,
This small patch series is the result of me getting a bus-type numerical value wrong in a device tree file and spending too long debugging the issue. Hopefully there's nothing controversial here.
Compared to v2, the PARALLEL bus type came back to replace BT601, as it turned out that BT601 doesn't actually describe what is usually referred to as the parallel bus type. Patch 3/3 has been split in per-vendor patches at the request of Alexandre Torgue.
Laurent Pinchart (6): dt-bindings: media: Add macros for video interface bus types dt-bindings: Use new video interface bus type macros in examples ARM: dts: freescale: Use new media bus type macros ARM: dts: omap: Use new media bus type macros ARM: dts: renesas: Use new media bus type macros ARM: dts: stm32: Use new media bus type macros
.../display/bridge/analogix,anx7625.yaml | 1 + .../devicetree/bindings/media/i2c/mipi-ccs.yaml | 3 ++- .../bindings/media/i2c/ovti,ov772x.yaml | 3 ++- .../bindings/media/marvell,mmp2-ccic.yaml | 3 ++- .../bindings/media/microchip,xisc.yaml | 3 ++- .../devicetree/bindings/media/st,stm32-dcmi.yaml | 4 +++- arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 4 +++- arch/arm/boot/dts/omap3-n900.dts | 5 +++-- arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 11 +++++++---- .../r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi | 4 +++- .../r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi | 4 +++- arch/arm/boot/dts/stm32429i-eval.dts | 3 ++- arch/arm/boot/dts/stm32mp157c-ev1.dts | 3 ++- include/dt-bindings/media/video-interfaces.h | 16 ++++++++++++++++ 14 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 include/dt-bindings/media/video-interfaces.h
base-commit: b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3
Add a new dt-bindings/media/video-interfaces.h header that defines macros corresponding to the bus types from media/video-interfaces.yaml. This allows avoiding hardcoded constants in device tree sources.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- Changes since v2:
- Go back to PARALLEL
Changes since v1:
- Dual-license under GPL-2.0-only or MIT - Rename PARALLEL TO BT601 --- include/dt-bindings/media/video-interfaces.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 include/dt-bindings/media/video-interfaces.h
diff --git a/include/dt-bindings/media/video-interfaces.h b/include/dt-bindings/media/video-interfaces.h new file mode 100644 index 000000000000..68ac4e05e37f --- /dev/null +++ b/include/dt-bindings/media/video-interfaces.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ +/* + * Copyright (C) 2022 Laurent Pinchart laurent.pinchart@ideasonboard.com + */ + +#ifndef __DT_BINDINGS_MEDIA_VIDEO_INTERFACES_H__ +#define __DT_BINDINGS_MEDIA_VIDEO_INTERFACES_H__ + +#define MEDIA_BUS_TYPE_CSI2_CPHY 1 +#define MEDIA_BUS_TYPE_CSI1 2 +#define MEDIA_BUS_TYPE_CCP2 3 +#define MEDIA_BUS_TYPE_CSI2_DPHY 4 +#define MEDIA_BUS_TYPE_PARALLEL 5 +#define MEDIA_BUS_TYPE_BT656 6 + +#endif /* __DT_BINDINGS_MEDIA_VIDEO_INTERFACES_H__ */
Now that a header exists with macros for the media interface bus-type values, replace hardcoding numerical constants with the corresponding macros in the DT binding examples.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- Changes since v2:
- Go back to PARALLEL
Changes since v1:
- Rename PARALLEL to BT601 --- .../devicetree/bindings/display/bridge/analogix,anx7625.yaml | 1 + Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml | 3 ++- Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml | 3 ++- .../devicetree/bindings/media/marvell,mmp2-ccic.yaml | 3 ++- Documentation/devicetree/bindings/media/microchip,xisc.yaml | 3 ++- Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml | 4 +++- 6 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml index 35a48515836e..b0e5585f93e2 100644 --- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml +++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml @@ -118,6 +118,7 @@ additionalProperties: false examples: - | #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/media/video-interfaces.h>
i2c0 { #address-cells = <1>; diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml index 39395ea8c318..edde4201116f 100644 --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml @@ -104,6 +104,7 @@ additionalProperties: false examples: - | #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/media/video-interfaces.h>
i2c2 { #address-cells = <1>; @@ -124,7 +125,7 @@ examples: remote-endpoint = <&csi2a_ep>; link-frequencies = /bits/ 64 <199200000 210000000 499200000>; - bus-type = <4>; + bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>; }; }; }; diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml index 44529425ce3a..161e6d598e1c 100644 --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml @@ -105,6 +105,7 @@ additionalProperties: false examples: - | #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/media/video-interfaces.h>
i2c0 { #address-cells = <1>; @@ -118,7 +119,7 @@ examples:
port { ov772x_0: endpoint { - bus-type = <5>; + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; vsync-active = <0>; hsync-active = <0>; pclk-sample = <0>; diff --git a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml index b39b84c5f012..0e3478551e13 100644 --- a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml +++ b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml @@ -68,6 +68,7 @@ additionalProperties: false examples: - | #include <dt-bindings/clock/marvell,mmp2.h> + #include <dt-bindings/media/video-interfaces.h> #include <dt-bindings/power/marvell,mmp2.h>
camera@d420a000 { @@ -83,7 +84,7 @@ examples: port { camera0_0: endpoint { remote-endpoint = <&ov7670_0>; - bus-type = <5>; /* Parallel */ + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; hsync-active = <1>; /* Active high */ vsync-active = <1>; /* Active high */ pclk-sample = <0>; /* Falling */ diff --git a/Documentation/devicetree/bindings/media/microchip,xisc.yaml b/Documentation/devicetree/bindings/media/microchip,xisc.yaml index 8b37fccab5e2..25f5f79d40ce 100644 --- a/Documentation/devicetree/bindings/media/microchip,xisc.yaml +++ b/Documentation/devicetree/bindings/media/microchip,xisc.yaml @@ -106,6 +106,7 @@ examples: #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/at91.h> #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/media/video-interfaces.h>
xisc: xisc@e1408000 { compatible = "microchip,sama7g5-isc"; @@ -118,7 +119,7 @@ examples:
port { xisc_in: endpoint { - bus-type = <5>; /* Parallel */ + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; remote-endpoint = <&csi2dc_out>; hsync-active = <1>; vsync-active = <1>; diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml index 9c1262a276b5..285c6075950a 100644 --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml @@ -90,7 +90,9 @@ examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/stm32mp1-clks.h> + #include <dt-bindings/media/video-interfaces.h> #include <dt-bindings/reset/stm32mp1-resets.h> + # dcmi: dcmi@4c006000 { compatible = "st,stm32-dcmi"; reg = <0x4c006000 0x400>; @@ -104,7 +106,7 @@ examples: port { dcmi_0: endpoint { remote-endpoint = <&ov5640_0>; - bus-type = <5>; + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; bus-width = <8>; hsync-active = <0>; vsync-active = <0>;
Now that a header exists with macros for the media interface bus-type values, replace hardcoding numerical constants with the corresponding macros in the DT sources.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi b/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi index 1a18c41ce385..d98111f2100f 100644 --- a/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi +++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi @@ -2,6 +2,8 @@ // // Copyright (C) 2015 Freescale Semiconductor, Inc.
+#include <dt-bindings/media/video-interfaces.h> + / { chosen { stdout-path = &uart1; @@ -170,7 +172,7 @@ &csi { port { parallel_from_ov5640: endpoint { remote-endpoint = <&ov5640_to_parallel>; - bus-type = <5>; /* Parallel bus */ + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; }; }; };
Now that a header exists with macros for the media interface bus-type values, replace hardcoding numerical constants with the corresponding macros in the DT sources.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- arch/arm/boot/dts/omap3-n900.dts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts index d40c3d2c4914..9cad9d6a83e2 100644 --- a/arch/arm/boot/dts/omap3-n900.dts +++ b/arch/arm/boot/dts/omap3-n900.dts @@ -9,6 +9,7 @@ #include "omap34xx.dtsi" #include <dt-bindings/input/input.h> #include <dt-bindings/leds/common.h> +#include <dt-bindings/media/video-interfaces.h>
/* * Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall @@ -194,7 +195,7 @@ port@1 {
csi_isp: endpoint { remote-endpoint = <&csi_cam1>; - bus-type = <3>; /* CCP2 */ + bus-type = <MEDIA_BUS_TYPE_CCP2>; clock-lanes = <1>; data-lanes = <0>; lane-polarity = <0 0>; @@ -835,7 +836,7 @@ cam1: camera@3e {
port { csi_cam1: endpoint { - bus-type = <3>; /* CCP2 */ + bus-type = <MEDIA_BUS_TYPE_CCP2>; strobe = <1>; clock-inv = <0>; crc = <1>;
Now that a header exists with macros for the media interface bus-type values, replace hardcoding numerical constants with the corresponding macros in the DT sources.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 11 +++++++---- .../dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi | 4 +++- .../dts/r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi | 4 +++- 3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts index 4e58c54cde17..33ac4bd1e63b 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts @@ -7,6 +7,9 @@ */
/dts-v1/; + +#include <dt-bindings/media/video-interfaces.h> + #include "r8a7742-iwg21d-q7.dts"
/ { @@ -242,7 +245,7 @@ port { vin0ep: endpoint { remote-endpoint = <&cam0ep>; bus-width = <8>; - bus-type = <6>; + bus-type = <MEDIA_BUS_TYPE_BT656>; }; }; }; @@ -273,7 +276,7 @@ port { vin1ep: endpoint { remote-endpoint = <&cam1ep>; bus-width = <8>; - bus-type = <6>; + bus-type = <MEDIA_BUS_TYPE_BT656>; }; }; }; @@ -305,7 +308,7 @@ vin2ep: endpoint { remote-endpoint = <&cam2ep>; bus-width = <8>; data-shift = <8>; - bus-type = <6>; + bus-type = <MEDIA_BUS_TYPE_BT656>; }; }; }; @@ -335,7 +338,7 @@ port { vin3ep: endpoint { remote-endpoint = <&cam3ep>; bus-width = <8>; - bus-type = <6>; + bus-type = <MEDIA_BUS_TYPE_BT656>; }; }; }; diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi index 40cef0b1d1e6..c73160df619d 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi @@ -7,6 +7,8 @@ * Copyright (C) 2020 Renesas Electronics Corp. */
+#include <dt-bindings/media/video-interfaces.h> + #define CAM_ENABLED 1
&CAM_PARENT_I2C { @@ -26,7 +28,7 @@ port { CAM_EP: endpoint { bus-width = <8>; data-shift = <2>; - bus-type = <6>; + bus-type = <MEDIA_BUS_TYPE_BT656>; pclk-sample = <1>; remote-endpoint = <&VIN_EP>; }; diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi index f5e77f024251..a7f5cfec64b8 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi @@ -7,6 +7,8 @@ * Copyright (C) 2020 Renesas Electronics Corp. */
+#include <dt-bindings/media/video-interfaces.h> + #define CAM_ENABLED 1
&CAM_PARENT_I2C { @@ -21,7 +23,7 @@ ov7725@21 { port { CAM_EP: endpoint { bus-width = <8>; - bus-type = <6>; + bus-type = <MEDIA_BUS_TYPE_BT656>; remote-endpoint = <&VIN_EP>; }; };
Now that a header exists with macros for the media interface bus-type values, replace hardcoding numerical constants with the corresponding macros in the DT sources.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- arch/arm/boot/dts/stm32429i-eval.dts | 3 ++- arch/arm/boot/dts/stm32mp157c-ev1.dts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts index 0d98aca01736..5fae11e6607b 100644 --- a/arch/arm/boot/dts/stm32429i-eval.dts +++ b/arch/arm/boot/dts/stm32429i-eval.dts @@ -50,6 +50,7 @@ #include "stm32f429-pinctrl.dtsi" #include <dt-bindings/input/input.h> #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/media/video-interfaces.h>
/ { model = "STMicroelectronics STM32429i-EVAL board"; @@ -186,7 +187,7 @@ &dcmi { port { dcmi_0: endpoint { remote-endpoint = <&ov2640_0>; - bus-type = <5>; + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; bus-width = <8>; hsync-active = <0>; vsync-active = <0>; diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts index d142dd30e16b..306d41a6138f 100644 --- a/arch/arm/boot/dts/stm32mp157c-ev1.dts +++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts @@ -8,6 +8,7 @@ #include "stm32mp157c-ed1.dts" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> +#include <dt-bindings/media/video-interfaces.h>
/ { model = "STMicroelectronics STM32MP157C eval daughter on eval mother"; @@ -90,7 +91,7 @@ &dcmi { port { dcmi_0: endpoint { remote-endpoint = <&ov5640_0>; - bus-type = <5>; + bus-type = <MEDIA_BUS_TYPE_PARALLEL>; bus-width = <8>; hsync-active = <0>; vsync-active = <0>;
dri-devel@lists.freedesktop.org