Add StarFive Camera Subsystem driver
Subsystems (3)
v4 cover Add StarFive Camera Subsystem driver
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after the err_disable_pixclk label.
- Modified Code Style for getting sys_rst and p_rst.
- Renamed clk_name to name and modified the relevant code. Patch 9:
- Added static for stfcamss_get_mem_res function.
- Added static for isp_close function.
- Fixed implicit conversion warning for stf_vin_map_isp_pad function.
- Dropped unused variables.
v3: https://lore.kernel.org/all/[email protected]/
Changes since v2:
- Rebased on v6.3-rc1.
Patch 1:
- Modified spelling errors.
- Added port@0.
- Modified '$ref' of port.
- Added 'ports' to 'required'.
- Dropped 'stfcamss' label in example.
- Added port@0 in example.
- Added MAINTAINERS file.
Patch 2:
- Split this patch into three new patches.
- Modified compatible property.
- Replaced clock names with the existing names.
- Modified 'bus-type' and 'clock-lanes'
- Added port@2 - port@4
- Dropped 'csi2rx' label in example.
Patch 3:
- Updated rst and dot file as three pipelines were deleted. Patch 4:
- Split this patch into three new patches.
- Dropped .s_power() and .get_fmt().
- Dropped CSI-2 DT support.
- Dropped v4l2_device_register_subdev_nodes().
- Used assigned-clock-rates in DT to set clk value.
- Modified 'compatible' field.
Patch 5:
- Deleted three pipelines.
- Modified 'stfcamss_clocks'/'stfcamss_resets' struct.
- Dropped stfcamss_find_sensor() function.
- Removed redundant code from stfcamss_of_parse_endpoint_node().
- Modified spelling errors.
- Rewrote stfcamss_reg_media_subdev_node() function.
- Modified stfcamss_subdev_notifier_bound().
- Modified stfcamss_probe() function.
- Dropped stfcamss_suspend() and stfcamss_resume().
- Dropped dev_info() in stfcamss_remove() function.
- Added 'stf_' prefix for enum subdev_type.
- Moved all includes to the top in stf_camss.h file.
- Dropped unused fields in stfcamss struct.
- Replaced Custom logging macros with regular macros.
- Rewrote register read and write functions.
- Used lowercase for all hex constants.
- Used macro to name registers.
- Dropped unused ioctl and stf_isp_ioctl.h file.
v2: https://lore.kernel.org/all/[email protected]/
Changes since v1:
- Deleted starfive,jh7110-mipi-csi2.yaml.
- Converted cdns,csi2rx.txt to cdns,csi2rx.yaml and added ‘resets’ properties.
- Added ‘cdns,csi2rx.yaml’ in ‘CADENCE MIPI-CSI2 BRIDGES’ entry.
- The following contents were modified in starfive,jh7110-camss.yaml:
dropped quotes from ’id’ and ‘schema’; dropped ‘|’ for ‘description’; corrected the wrong or redundant words: ‘a ISP’, ‘PD ISP’; dropped ‘minItems’ for ‘reg’, ‘clocks’, ‘resets’ and ‘interrupts’; dropped the '_clk' and 'rst_' prefix about the 'clock-names' and 'reset-names';
changed ‘endpoint@1’ to ‘endpoint’; updated examples;
- Updated Subject for some patches.
- Merged patch 6, 7, 8, 9, 10, 11 into one patch.
Jack Zhu (8):
media: dt-bindings: cadence-csi2rx: Convert to DT schema
media: dt-bindings: cadence-csi2rx: Add resets property
media: cadence: Add operation on reset
media: cadence: Add support for external dphy
media: cadence: Add support for JH7110 SoC
media: dt-bindings: Add bindings for JH7110 Camera Subsystem
media: admin-guide: Add starfive_camss.rst for Starfive Camera
Subsystem
media: starfive: Add Starfive Camera Subsystem driver
.../admin-guide/media/starfive_camss.rst | 57 + .../media/starfive_camss_graph.dot | 16 + .../admin-guide/media/v4l-drivers.rst | 1 + .../devicetree/bindings/media/cdns,csi2rx.txt | 100 -- .../bindings/media/cdns,csi2rx.yaml | 201 +++ .../bindings/media/starfive,jh7110-camss.yaml | 164 +++ MAINTAINERS | 10 + drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/cadence/cdns-csi2rx.c | 107 +- drivers/media/platform/starfive/Kconfig | 18 + drivers/media/platform/starfive/Makefile | 14 + drivers/media/platform/starfive/stf_camss.c | 477 +++++++ drivers/media/platform/starfive/stf_camss.h | 150 +++ drivers/media/platform/starfive/stf_common.h | 18 + drivers/media/platform/starfive/stf_isp.c | 737 +++++++++++ drivers/media/platform/starfive/stf_isp.h | 999 +++++++++++++++ .../media/platform/starfive/stf_isp_hw_ops.c | 715 +++++++++++ drivers/media/platform/starfive/stf_video.c | 989 ++++++++++++++ drivers/media/platform/starfive/stf_video.h | 89 ++ drivers/media/platform/starfive/stf_vin.c | 1138 +++++++++++++++++ drivers/media/platform/starfive/stf_vin.h | 174 +++ .../media/platform/starfive/stf_vin_hw_ops.c | 211 +++ 23 files changed, 6272 insertions(+), 115 deletions(-) create mode 100644 Documentation/admin-guide/media/starfive_camss.rst create mode 100644 Documentation/admin-guide/media/starfive_camss_graph.dot delete mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.txt create mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.yaml create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml create mode 100644 drivers/media/platform/starfive/Kconfig create mode 100644 drivers/media/platform/starfive/Makefile create mode 100644 drivers/media/platform/starfive/stf_camss.c create mode 100644 drivers/media/platform/starfive/stf_camss.h create mode 100644 drivers/media/platform/starfive/stf_common.h create mode 100644 drivers/media/platform/starfive/stf_isp.c create mode 100644 drivers/media/platform/starfive/stf_isp.h create mode 100644 drivers/media/platform/starfive/stf_isp_hw_ops.c create mode 100644 drivers/media/platform/starfive/stf_video.c create mode 100644 drivers/media/platform/starfive/stf_video.h create mode 100644 drivers/media/platform/starfive/stf_vin.c create mode 100644 drivers/media/platform/starfive/stf_vin.h create mode 100644 drivers/media/platform/starfive/stf_vin_hw_ops.c
Signature · 1 line
2.34.1
PATCH v4 1/8 media: dt-bindings: cadence-csi2rx: Convert to DT schema
Convert DT bindings document for Cadence MIPI-CSI2 RX controller to DT schema format.
For compatible, new compatibles should not be messed with conversion, but the original binding did not specify any SoC-specific compatible string, so add the StarFive compatible string.
--- .../devicetree/bindings/media/cdns,csi2rx.txt | 100 ---------- .../bindings/media/cdns,csi2rx.yaml | 177 ++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 178 insertions(+), 100 deletions(-) delete mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.txt create mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.yaml
Documentation/devicetree/bindings/media/cdns,csi2rx.txt deleted +0 -100
@@ -1,100 +0,0 @@ -Cadence MIPI-CSI2 RX controller -=============================== - -The Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI -lanes in input, and 4 different pixel streams in output. - -Required properties: - - compatible: must be set to "cdns,csi2rx" and an SoC-specific compatible - - reg: base address and size of the memory mapped region - - clocks: phandles to the clocks driving the controller - - clock-names: must contain: - * sys_clk: main clock - * p_clk: register bank clock - * pixel_if[0-3]_clk: pixel stream output clock, one for each stream - implemented in hardware, between 0 and 3 - -Optional properties: - - phys: phandle to the external D-PHY, phy-names must be provided - - phy-names: must contain "dphy", if the implementation uses an - external D-PHY - -Required subnodes: - - ports: A ports node with one port child node per device input and output - port, in accordance with the video interface bindings defined in - Documentation/devicetree/bindings/media/video-interfaces.txt. The - port nodes are numbered as follows: - - Port Description - ----------------------------- - 0 CSI-2 input - 1 Stream 0 output - 2 Stream 1 output - 3 Stream 2 output - 4 Stream 3 output - - The stream output port nodes are optional if they are not - connected to anything at the hardware level or implemented - in the design.Since there is only one endpoint per port, - the endpoints are not numbered. - - -Example: - -csi2rx: csi-bridge@0d060000 { - compatible = "cdns,csi2rx"; - reg = <0x0d060000 0x1000>; - clocks = <&byteclock>, <&byteclock> - <&coreclock>, <&coreclock>, - <&coreclock>, <&coreclock>; - clock-names = "sys_clk", "p_clk", - "pixel_if0_clk", "pixel_if1_clk", - "pixel_if2_clk", "pixel_if3_clk"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - - csi2rx_in_sensor: endpoint { - remote-endpoint = <&sensor_out_csi2rx>; - clock-lanes = <0>; - data-lanes = <1 2>; - }; - }; - - port@1 { - reg = <1>; - - csi2rx_out_grabber0: endpoint { - remote-endpoint = <&grabber0_in_csi2rx>; - }; - }; - - port@2 { - reg = <2>; - - csi2rx_out_grabber1: endpoint { - remote-endpoint = <&grabber1_in_csi2rx>; - }; - }; - - port@3 { - reg = <3>; - - csi2rx_out_grabber2: endpoint { - remote-endpoint = <&grabber2_in_csi2rx>; - }; - }; - - port@4 { - reg = <4>; - - csi2rx_out_grabber3: endpoint { - remote-endpoint = <&grabber3_in_csi2rx>; - }; - }; - }; -};
Documentation/devicetree/bindings/media/cdns,csi2rx.yaml new file +177 -0
177 lines not on this page · raw message
MAINTAINERS +1 -0
@@ -4495,6 +4495,7 @@ M: Maxime Ripard <[email protected]> L: [email protected] S: Maintained F: Documentation/devicetree/bindings/media/cdns,*.txt +F: Documentation/devicetree/bindings/media/cdns,csi2rx.yaml F: drivers/media/platform/cadence/cdns-csi2* CADENCE NAND DRIVER
Signature · 1 line
2.34.1
Re: [PATCH v4 1/8] media: dt-bindings: cadence-csi2rx: Convert to DT schema
Quoted 7 lines · Jack Zhu
Convert DT bindings document for Cadence MIPI-CSI2 RX controller to DT schema format.
For compatible, new compatibles should not be messed with conversion, but the original binding did not specify any SoC-specific compatible string, so add the StarFive compatible string.
Quoted 5 lines
Signed-off-by Jack Zhu <[email protected]>--- .../devicetree/bindings/media/cdns,csi2rx.txt | 100 ---------- .../bindings/media/cdns,csi2rx.yaml | 177 ++++++++++++++++++ MAINTAINERS | 1 +
Best regards,
Krzysztof
Re: [PATCH v4 1/8] media: dt-bindings: cadence-csi2rx: Convert to DT schema
In reply to Jack ZhuHi Jack,
Thank you for the patch.
Quoted 8 lines · Jack Zhu
Convert DT bindings document for Cadence MIPI-CSI2 RX controller to DT schema format.
For compatible, new compatibles should not be messed with conversion, but the original binding did not specify any SoC-specific compatible string, so add the StarFive compatible string.
Signed-off-by Jack Zhu <[email protected]>
Quoted 309 lines
--- .../devicetree/bindings/media/cdns,csi2rx.txt | 100 ---------- .../bindings/media/cdns,csi2rx.yaml | 177 ++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 178 insertions(+), 100 deletions(-) delete mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.txt create mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.yamlDocumentation/devicetree/bindings/media/cdns,csi2rx.txt deleted +0
-100@@ -1,100 +0,0 @@ -Cadence MIPI-CSI2 RX controller -=============================== - -The Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI -lanes in input, and 4 different pixel streams in output. - -Required properties: - - compatible: must be set to "cdns,csi2rx" and an SoC-specific compatible - - reg: base address and size of the memory mapped region - - clocks: phandles to the clocks driving the controller - - clock-names: must contain: - * sys_clk: main clock - * p_clk: register bank clock - * pixel_if[0-3]_clk: pixel stream output clock, one for each stream - implemented in hardware, between 0 and 3 - -Optional properties: - - phys: phandle to the external D-PHY, phy-names must be provided - - phy-names: must contain "dphy", if the implementation uses an - external D-PHY - -Required subnodes: - - ports: A ports node with one port child node per device input and output - port, in accordance with the video interface bindings defined in - Documentation/devicetree/bindings/media/video-interfaces.txt. The - port nodes are numbered as follows: - - Port Description - ----------------------------- - 0 CSI-2 input - 1 Stream 0 output - 2 Stream 1 output - 3 Stream 2 output - 4 Stream 3 output - - The stream output port nodes are optional if they are not - connected to anything at the hardware level or implemented - in the design.Since there is only one endpoint per port, - the endpoints are not numbered. - - -Example: - -csi2rx: csi-bridge@0d060000 { - compatible = "cdns,csi2rx"; - reg = <0x0d060000 0x1000>; - clocks = <&byteclock>, <&byteclock> - <&coreclock>, <&coreclock>, - <&coreclock>, <&coreclock>; - clock-names = "sys_clk", "p_clk", - "pixel_if0_clk", "pixel_if1_clk", - "pixel_if2_clk", "pixel_if3_clk"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - - csi2rx_in_sensor: endpoint { - remote-endpoint = <&sensor_out_csi2rx>; - clock-lanes = <0>; - data-lanes = <1 2>; - }; - }; - - port@1 { - reg = <1>; - - csi2rx_out_grabber0: endpoint { - remote-endpoint = <&grabber0_in_csi2rx>; - }; - }; - - port@2 { - reg = <2>; - - csi2rx_out_grabber1: endpoint { - remote-endpoint = <&grabber1_in_csi2rx>; - }; - }; - - port@3 { - reg = <3>; - - csi2rx_out_grabber2: endpoint { - remote-endpoint = <&grabber2_in_csi2rx>; - }; - }; - - port@4 { - reg = <4>; - - csi2rx_out_grabber3: endpoint { - remote-endpoint = <&grabber3_in_csi2rx>; - }; - }; - }; -};Documentation/devicetree/bindings/media/cdns,csi2rx.yaml new file +177
-0@@ -0,0 +1,177 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/cdns,csi2rx.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Cadence MIPI-CSI2 RX controller + +maintainers: + - Maxime Ripard <[email protected]> + +description: + The Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI + lanes in input, and 4 different pixel streams in output. + +properties: + compatible: + items: + - enum: + - starfive,jh7110-csi2rx + - const: cdns,csi2rx + + reg: + maxItems: 1 + + clocks: + items: + - description: CSI2Rx system clock + - description: Gated Register bank clock for APB interface + - description: pixel Clock for Stream interface 0 + - description: pixel Clock for Stream interface 1 + - description: pixel Clock for Stream interface 2 + - description: pixel Clock for Stream interface 3 + + clock-names: + items: + - const: sys_clk + - const: p_clk + - const: pixel_if0_clk + - const: pixel_if1_clk + - const: pixel_if2_clk + - const: pixel_if3_clk + + phys: + maxItems: 1 + description: MIPI D-PHY + + phy-names: + items: + - const: dphy + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: + Input port node, single endpoint describing the CSI-2 transmitter. + + properties: + endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + bus-type: + const: 4 + + clock-lanes: + const: 0 + + data-lanes: + minItems: 1 + maxItems: 4 + items: + maximum: 4 + + required: + - data-lanes + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: + Stream 0 Output port node + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: + Stream 1 Output port node + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: + Stream 2 Output port node + + port@4: + $ref: /schemas/graph.yaml#/properties/port + description: + Stream 3 Output port node + + required: + - port@0 + +required: + - compatible + - reg + - clocks + - clock-names + - ports + +additionalProperties: false + +examples: + - | + csi@d060000 { + compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx"; + reg = <0x0d060000 0x1000>; + clocks = <&byteclock 7>, <&byteclock 6>, + <&coreclock 8>, <&coreclock 9>, + <&coreclock 10>, <&coreclock 11>; + clock-names = "sys_clk", "p_clk", + "pixel_if0_clk", "pixel_if1_clk", + "pixel_if2_clk", "pixel_if3_clk"; + phys = <&csi_phy>; + phy-names = "dphy"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + csi2rx_in_sensor: endpoint { + remote-endpoint = <&sensor_out_csi2rx>; + clock-lanes = <0>; + data-lanes = <1 2>; + }; + }; + + port@1 { + reg = <1>; + + csi2rx_out_grabber0: endpoint { + remote-endpoint = <&grabber0_in_csi2rx>; + }; + }; + + port@2 { + reg = <2>; + + csi2rx_out_grabber1: endpoint { + remote-endpoint = <&grabber1_in_csi2rx>; + }; + }; + + port@3 { + reg = <3>; + + csi2rx_out_grabber2: endpoint { + remote-endpoint = <&grabber2_in_csi2rx>; + }; + }; + + port@4 { + reg = <4>; + + csi2rx_out_grabber3: endpoint { + remote-endpoint = <&grabber3_in_csi2rx>; + }; + }; + }; + }; + +...MAINTAINERS +1
-0@@ -4495,6 +4495,7 @@ M: Maxime Ripard <[email protected]> L: [email protected] S: Maintained F: Documentation/devicetree/bindings/media/cdns,*.txt +F: Documentation/devicetree/bindings/media/cdns,csi2rx.yaml F: drivers/media/platform/cadence/cdns-csi2* CADENCE NAND DRIVER
Signature · 3 lines
Regards, Laurent Pinchart
PATCH v4 2/8 media: dt-bindings: cadence-csi2rx: Add resets property
In reply to Jack ZhuAdd resets property for Cadence MIPI-CSI2 RX controller
--- .../bindings/media/cdns,csi2rx.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/media/cdns,csi2rx.yaml +24 -0
@@ -41,6 +41,24 @@ properties: - const: pixel_if2_clk - const: pixel_if3_clk + resets: + items: + - description: CSI2Rx system reset + - description: Gated Register bank reset for APB interface + - description: pixel reset for Stream interface 0 + - description: pixel reset for Stream interface 1 + - description: pixel reset for Stream interface 2 + - description: pixel reset for Stream interface 3 + + reset-names: + items: + - const: sys + - const: reg_bank + - const: pixel_if0 + - const: pixel_if1 + - const: pixel_if2 + - const: pixel_if3 + phys: maxItems: 1 description: MIPI D-PHY
@@ -123,6 +141,12 @@ examples: clock-names = "sys_clk", "p_clk", "pixel_if0_clk", "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk"; + resets = <&bytereset 9>, <&bytereset 4>, + <&corereset 5>, <&corereset 6>, + <&corereset 7>, <&corereset 8>; + reset-names = "sys", "reg_bank", + "pixel_if0", "pixel_if1", + "pixel_if2", "pixel_if3"; phys = <&csi_phy>; phy-names = "dphy";
Signature · 1 line
2.34.1
PATCH v4 3/8 media: cadence: Add operation on reset
In reply to Jack ZhuAdd operation on reset for Cadence MIPI-CSI2 RX Controller.
--- drivers/media/platform/cadence/cdns-csi2rx.c | 40 +++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-)
drivers/media/platform/cadence/cdns-csi2rx.c +35 -5
@@ -13,6 +13,7 @@#include <linux/of_graph.h> #include <linux/phy/phy.h> #include <linux/platform_device.h> +#include <linux/reset.h> #include <linux/slab.h> #include <media/v4l2-ctrls.h>
@@ -68,6 +69,9 @@ struct csi2rx_priv {struct clk *sys_clk;struct clk *p_clk;struct clk *pixel_clk[CSI2RX_STREAMS_MAX ]; +struct reset_control *sys_rst; +struct reset_control *p_rst; +struct reset_control *pixel_rst[CSI2RX_STREAMS_MAX ];struct phy *dphy;u8 lanes[CSI2RX_LANES_MAX ];
@@ -112,6 +116,7 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx)if (ret)return ret; +reset_control_deassert (csi2rx->p_rst);csi2rx_reset (csi2rx); reg = csi2rx->num_lanes <<8 ;
@@ -154,6 +159,8 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx)if (ret) goto err_disable_pixclk; +reset_control_deassert (csi2rx->pixel_rst[i]); +writel (CSI2RX_STREAM_CFG_FIFO_MODE_LARGE_BUF , csi2rx->base +CSI2RX_STREAM_CFG_REG (i));
@@ -169,13 +176,16 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx)if (ret) goto err_disable_pixclk; +reset_control_deassert (csi2rx->sys_rst);clk_disable_unprepare (csi2rx->p_clk);return 0 ; err_disable_pixclk: -for (; i >0 ; i--) +for (; i >0 ; i--) { +reset_control_assert (csi2rx->pixel_rst[i -1 ]);clk_disable_unprepare (csi2rx->pixel_clk[i -1 ]); + } err_disable_pclk:clk_disable_unprepare (csi2rx->p_clk);
@@ -188,14 +198,17 @@ static void csi2rx_stop(struct csi2rx_priv *csi2rx)unsigned int i;clk_prepare_enable (csi2rx->p_clk); +reset_control_assert (csi2rx->sys_rst);clk_disable_unprepare (csi2rx->sys_clk);for (i =0 ; i < csi2rx->max_streams; i++) {writel (0 , csi2rx->base +CSI2RX_STREAM_CTRL_REG (i)); +reset_control_assert (csi2rx->pixel_rst[i]);clk_disable_unprepare (csi2rx->pixel_clk[i]); } +reset_control_assert (csi2rx->p_rst);clk_disable_unprepare (csi2rx->p_clk);if (v4l2_subdev_call (csi2rx->source_subdev, video, s_stream, false))
@@ -299,6 +312,16 @@ static int csi2rx_get_resources(struct csi2rx_priv *csi2rx,return PTR_ERR (csi2rx->p_clk); } + csi2rx->sys_rst =devm_reset_control_get_optional_exclusive (&pdev->dev, +"sys_rst" ); +if (IS_ERR (csi2rx->sys_rst)) +return PTR_ERR (csi2rx->sys_rst); + + csi2rx->p_rst =devm_reset_control_get_optional_exclusive (&pdev->dev, +"p_rst" ); +if (IS_ERR (csi2rx->p_rst)) +return PTR_ERR (csi2rx->p_rst); + csi2rx->dphy =devm_phy_optional_get (&pdev->dev,"dphy" );if (IS_ERR (csi2rx->dphy)) {dev_err (&pdev->dev,"Couldn't get external D-PHY\n" );
@@ -349,14 +372,21 @@ static int csi2rx_get_resources(struct csi2rx_priv *csi2rx, }for (i =0 ; i < csi2rx->max_streams; i++) { -char clk_name[16 ]; +char name[16 ]; -snprintf (clk_name,sizeof (clk_name),"pixel_if%u_clk" , i); - csi2rx->pixel_clk[i] =devm_clk_get (&pdev->dev, clk_name); +snprintf (name,sizeof (name),"pixel_if%u_clk" , i); + csi2rx->pixel_clk[i] =devm_clk_get (&pdev->dev, name);if (IS_ERR (csi2rx->pixel_clk[i])) { -dev_err (&pdev->dev,"Couldn't get clock %s\n" , clk_name); +dev_err (&pdev->dev,"Couldn't get clock %s\n" , name);return PTR_ERR (csi2rx->pixel_clk[i]); } + +snprintf (name,sizeof (name),"pixel_if%u_rst" , i); + csi2rx->pixel_rst[i] = +devm_reset_control_get_optional_exclusive (&pdev->dev, + name); +if (IS_ERR (csi2rx->pixel_rst[i])) +return PTR_ERR (csi2rx->pixel_rst[i]); }return 0 ;
Signature · 1 line
2.34.1
PATCH v4 4/8 media: cadence: Add support for external dphy
In reply to Jack ZhuAdd support for external MIPI D-PHY.
--- drivers/media/platform/cadence/cdns-csi2rx.c | 66 +++++++++++++++++--- 1 file changed, 56 insertions(+), 10 deletions(-)
drivers/media/platform/cadence/cdns-csi2rx.c +56 -10
@@ -31,6 +31,12 @@#define CSI2RX_STATIC_CFG_DLANE_MAP (llane, plane) ((plane) << (16 + (llane) * 4))#define CSI2RX_STATIC_CFG_LANES_MASK GENMASK(11, 8) +#define CSI2RX_DPHY_LANE_CTRL_REG 0x40 +#define CSI2RX_DPHY_CL_RST BIT(16) +#define CSI2RX_DPHY_DL_RST (i) BIT((i) + 12) +#define CSI2RX_DPHY_CL_EN BIT(4) +#define CSI2RX_DPHY_DL_EN (i) BIT(i) +#define CSI2RX_STREAM_BASE (n) (((n) + 1) * 0x100)#define CSI2RX_STREAM_CTRL_REG (n) (CSI2RX_STREAM_BASE(n) + 0x000)
@@ -105,6 +111,24 @@ static void csi2rx_reset(struct csi2rx_priv *csi2rx)writel (0 , csi2rx->base +CSI2RX_SOFT_RESET_REG ); } +static int csi2rx_configure_ext_dphy (struct csi2rx_priv *csi2rx) +{ +union phy_configure_opts opts = { }; +int ret; + + ret =phy_power_on (csi2rx->dphy); +if (ret) +return ret; + + ret =phy_configure (csi2rx->dphy, &opts); +if (ret) { +phy_power_off (csi2rx->dphy); +return ret; + } + +return 0 ; +} +static int csi2rx_start (struct csi2rx_priv *csi2rx) {unsigned int i;
@@ -144,6 +168,17 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx)if (ret) goto err_disable_pclk; +/* Enable DPHY clk and data lanes. */ +if (csi2rx->dphy) { + reg =CSI2RX_DPHY_CL_EN |CSI2RX_DPHY_CL_RST ; +for (i =0 ; i < csi2rx->num_lanes; i++) { + reg |=CSI2RX_DPHY_DL_EN (csi2rx->lanes[i] -1 ); + reg |=CSI2RX_DPHY_DL_RST (csi2rx->lanes[i] -1 ); + } + +writel (reg, csi2rx->base +CSI2RX_DPHY_LANE_CTRL_REG ); + } +/* * Create a static mapping between the CSI virtual channels * and the output stream.
@@ -177,10 +212,22 @@ static int csi2rx_start(struct csi2rx_priv *csi2rx) goto err_disable_pixclk;reset_control_deassert (csi2rx->sys_rst); + +if (csi2rx->dphy) { + ret =csi2rx_configure_ext_dphy (csi2rx); +if (ret) { +dev_err (csi2rx->dev, +"Failed to configure external DPHY: %d\n" , ret); + goto err_disable_sysclk; + } + } +clk_disable_unprepare (csi2rx->p_clk);return 0 ; +err_disable_sysclk: +clk_disable_unprepare (csi2rx->sys_clk); err_disable_pixclk:for (; i >0 ; i--) {reset_control_assert (csi2rx->pixel_rst[i -1 ]);
@@ -213,6 +260,13 @@ static void csi2rx_stop(struct csi2rx_priv *csi2rx)if (v4l2_subdev_call (csi2rx->source_subdev, video, s_stream, false))dev_warn (csi2rx->dev,"Couldn't disable our subdev\n" ); + +if (csi2rx->dphy) { +writel (0 , csi2rx->base +CSI2RX_DPHY_LANE_CTRL_REG ); + +if (phy_power_off (csi2rx->dphy)) +dev_warn (csi2rx->dev,"Couldn't power off DPHY\n" ); + } }static int csi2rx_s_stream (struct v4l2_subdev *subdev,int enable)
@@ -328,15 +382,6 @@ static int csi2rx_get_resources(struct csi2rx_priv *csi2rx,return PTR_ERR (csi2rx->dphy); } -/* -* FIXME: Once we'll have external D-PHY support, the check -* will need to be removed. -*/ -if (csi2rx->dphy) { -dev_err (&pdev->dev,"External D-PHY not supported yet\n" ); -return -EINVAL ; - } - ret =clk_prepare_enable (csi2rx->p_clk);if (ret) {dev_err (&pdev->dev,"Couldn't prepare and enable P clock\n" );
@@ -366,7 +411,7 @@ static int csi2rx_get_resources(struct csi2rx_priv *csi2rx,* FIXME: Once we'll have internal D-PHY support, the check * will need to be removed. */ -if (csi2rx->has_internal_dphy) { +if (!csi2rx->dphy && csi2rx->has_internal_dphy) {dev_err (&pdev->dev,"Internal D-PHY not supported yet\n" );return -EINVAL ; }
@@ -492,6 +537,7 @@ static int csi2rx_probe(struct platform_device *pdev)dev_info (&pdev->dev,"Probed CSI2RX with %u/%u lanes, %u streams, %s D-PHY\n" , csi2rx->num_lanes, csi2rx->max_lanes, csi2rx->max_streams, + csi2rx->dphy ?"external" : csi2rx->has_internal_dphy ?"internal" :"no" );return 0 ;
Signature · 1 line
2.34.1
PATCH v4 5/8 media: cadence: Add support for JH7110 SoC
In reply to Jack ZhuAdd support for Starfive JH7110 SoC which has the cadence csi2 receiver.
--- drivers/media/platform/cadence/cdns-csi2rx.c | 1 + 1 file changed, 1 insertion(+)
drivers/media/platform/cadence/cdns-csi2rx.c +1 -0
@@ -560,6 +560,7 @@ static int csi2rx_remove(struct platform_device *pdev) }static const struct of_device_id csi2rx_of_table[] = { + { .compatible ="starfive,jh7110-csi2rx" }, { .compatible ="cdns,csi2rx" }, { }, };
Signature · 1 line
2.34.1
PATCH v4 6/8 media: dt-bindings: Add bindings for JH7110 Camera Subsystem
In reply to Jack ZhuAdd the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +164 -0
@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Starfive SoC CAMSS ISP + +maintainers: + - Jack Zhu <[email protected]> + - Changhuang Liang <[email protected]> + +description: + The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It + consists of a VIN controller (Video In Controller, a top-level control until) + and an ISP. + +properties: + compatible: + const: starfive,jh7110-camss + + reg: + maxItems: 2 + + reg-names: + items: + - const: syscon + - const: isp + + clocks: + maxItems: 7 + + clock-names: + items: + - const: apb_func + - const: wrapper_clk_c + - const: dvp_inv + - const: axiwr + - const: mipi_rx0_pxl + - const: ispcore_2x + - const: isp_axi + + resets: + maxItems: 6 + + reset-names: + items: + - const: wrapper_p + - const: wrapper_c + - const: axird + - const: axiwr + - const: isp_top_n + - const: isp_top_axi + + power-domains: + items: + - description: JH7110 ISP Power Domain Switch Controller. + + interrupts: + maxItems: 4 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Input port for receiving DVP data. + + properties: + endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + bus-width: + const: 8 + + data-shift: + const: 2 + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Input port for receiving CSI data. + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - reg-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - interrupts + - ports + +additionalProperties: false + +examples: + - | + isp@19840000 { + compatible = "starfive,jh7110-camss"; + reg = <0x19840000 0x10000>, + <0x19870000 0x30000>; + reg-names = "syscon", "isp"; + clocks = <&ispcrg 0>, + <&ispcrg 13>, + <&ispcrg 2>, + <&ispcrg 12>, + <&ispcrg 1>, + <&syscrg 51>, + <&syscrg 52>; + clock-names = "apb_func", + "wrapper_clk_c", + "dvp_inv", + "axiwr", + "mipi_rx0_pxl", + "ispcore_2x", + "isp_axi"; + resets = <&ispcrg 0>, + <&ispcrg 1>, + <&ispcrg 10>, + <&ispcrg 11>, + <&syscrg 41>, + <&syscrg 42>; + reset-names = "wrapper_p", + "wrapper_c", + "axird", + "axiwr", + "isp_top_n", + "isp_top_axi"; + power-domains = <&pwrc 5>; + interrupts = <92>, <87>, <88>, <90>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + vin_from_sc2235: endpoint { + remote-endpoint = <&sc2235_to_vin>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; + vsync-active = <0>; + pclk-sample = <1>; + }; + }; + + port@1 { + reg = <1>; + vin_from_csi2rx: endpoint { + remote-endpoint = <&csi2rx_to_vin>; + }; + }; + }; + };
MAINTAINERS +7 -0
@@ -19909,6 +19909,13 @@ M: Ion Badulescu <[email protected]> S: Odd Fixes F: drivers/net/ethernet/adaptec/starfire* +STARFIVE CAMERA SUBSYSTEM DRIVER +M: Jack Zhu <[email protected]> +M: Changhuang Liang <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml + STARFIVE DEVICETREES M: Emil Renner Berthing <[email protected]> S: Maintained
Signature · 1 line
2.34.1
Re: [PATCH v4 6/8] media: dt-bindings: Add bindings for JH7110 Camera Subsystem
Quoted 4 lines · Jack Zhu
Add the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
Signed-off-by Jack Zhu <[email protected]>
Subject: drop second/last, redundant "bindings for". The "dt-bindings" prefix is already stating that these are bindings.
Quoted 12 lines
--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yamlDocumentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +0
-0
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml line 2
Quoted 2 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +2
-0@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +
No need for blank line.
With two fixes above:
Best regards,
Krzysztof
Re: [PATCH v4 6/8] media: dt-bindings: Add bindings for JH7110 Camera Subsystem
Quoted 9 lines · Krzysztof Kozlowski
Quoted 4 lines · Jack Zhu
Add the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
Signed-off-by Jack Zhu <[email protected]>Subject: drop second/last, redundant "bindings for". The "dt-bindings" prefix is already stating that these are bindings.
OK, I will fix it. Thank you.
Quoted 6 lines
Quoted 6 lines
--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml
Quoted 11 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml line 2
Quoted 8 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +2
-0@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +No need for blank line.
OK, I will delete the blank line.
Quoted 7 lines
With two fixes above:
Reviewed-by Krzysztof Kozlowski <[email protected]>Best regards,
Krzysztof
Re: [PATCH v4 6/8] media: dt-bindings: Add bindings for JH7110 Camera Subsystem
In reply to Jack ZhuHi Jack,
Thank you for the patch.
Quoted 88 lines · Jack Zhu
Add the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
Signed-off-by Jack Zhu <[email protected]>--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yamlDocumentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +72
-0@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Starfive SoC CAMSS ISP + +maintainers: + - Jack Zhu <[email protected]> + - Changhuang Liang <[email protected]> + +description: + The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It + consists of a VIN controller (Video In Controller, a top-level control until) + and an ISP. + +properties: + compatible: + const: starfive,jh7110-camss + + reg: + maxItems: 2 + + reg-names: + items: + - const: syscon + - const: isp + + clocks: + maxItems: 7 + + clock-names: + items: + - const: apb_func + - const: wrapper_clk_c + - const: dvp_inv + - const: axiwr + - const: mipi_rx0_pxl + - const: ispcore_2x + - const: isp_axi + + resets: + maxItems: 6 + + reset-names: + items: + - const: wrapper_p + - const: wrapper_c + - const: axird + - const: axiwr + - const: isp_top_n + - const: isp_top_axi + + power-domains: + items: + - description: JH7110 ISP Power Domain Switch Controller. + + interrupts: + maxItems: 4 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Input port for receiving DVP data. + + properties:
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml line 82
Quoted 10 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +10
-0+ endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + bus-width: + const: 8 + + data-shift: + const: 2
As far as I can tell, those two properties are not handled by the driver. I assume this is because the driver doesn't support the DVP input yet. That's fine, but it makes it a bit hard to review the device tree. Could you provide some information about the DVP hardware interface ? Does it support both BT.656 and sync signals, or just sync signals ? Are the polarities of the clock and h/v sync controllable ? Is the parallel input bus 8-bit wide or are other options supported ? And finally, what are you modelling with data-shift: 2 ?
Quoted 100 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +82
-0+ + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Input port for receiving CSI data. + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - reg-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - interrupts + - ports + +additionalProperties: false + +examples: + - | + isp@19840000 { + compatible = "starfive,jh7110-camss"; + reg = <0x19840000 0x10000>, + <0x19870000 0x30000>; + reg-names = "syscon", "isp"; + clocks = <&ispcrg 0>, + <&ispcrg 13>, + <&ispcrg 2>, + <&ispcrg 12>, + <&ispcrg 1>, + <&syscrg 51>, + <&syscrg 52>; + clock-names = "apb_func", + "wrapper_clk_c", + "dvp_inv", + "axiwr", + "mipi_rx0_pxl", + "ispcore_2x", + "isp_axi"; + resets = <&ispcrg 0>, + <&ispcrg 1>, + <&ispcrg 10>, + <&ispcrg 11>, + <&syscrg 41>, + <&syscrg 42>; + reset-names = "wrapper_p", + "wrapper_c", + "axird", + "axiwr", + "isp_top_n", + "isp_top_axi"; + power-domains = <&pwrc 5>; + interrupts = <92>, <87>, <88>, <90>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + vin_from_sc2235: endpoint { + remote-endpoint = <&sc2235_to_vin>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; + vsync-active = <0>; + pclk-sample = <1>; + }; + }; + + port@1 { + reg = <1>; + vin_from_csi2rx: endpoint { + remote-endpoint = <&csi2rx_to_vin>; + }; + }; + }; + };MAINTAINERS +7
-0@@ -19909,6 +19909,13 @@ M: Ion Badulescu <[email protected]> S: Odd Fixes F: drivers/net/ethernet/adaptec/starfire* +STARFIVE CAMERA SUBSYSTEM DRIVER +M: Jack Zhu <[email protected]> +M: Changhuang Liang <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml + STARFIVE DEVICETREES M: Emil Renner Berthing <[email protected]> S: Maintained
Signature · 3 lines
Regards, Laurent Pinchart
Re: [PATCH v4 6/8] media: dt-bindings: Add bindings for JH7110 Camera Subsystem
Quoted 104 lines · Laurent Pinchart
Hi Jack,
Thank you for the patch.
Quoted 88 lines · Jack Zhu
Add the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
Signed-off-by Jack Zhu <[email protected]>--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yamlDocumentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +72
-0@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Starfive SoC CAMSS ISP + +maintainers: + - Jack Zhu <[email protected]> + - Changhuang Liang <[email protected]> + +description: + The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It + consists of a VIN controller (Video In Controller, a top-level control until) + and an ISP. + +properties: + compatible: + const: starfive,jh7110-camss + + reg: + maxItems: 2 + + reg-names: + items: + - const: syscon + - const: isp + + clocks: + maxItems: 7 + + clock-names: + items: + - const: apb_func + - const: wrapper_clk_c + - const: dvp_inv + - const: axiwr + - const: mipi_rx0_pxl + - const: ispcore_2x + - const: isp_axi + + resets: + maxItems: 6 + + reset-names: + items: + - const: wrapper_p + - const: wrapper_c + - const: axird + - const: axiwr + - const: isp_top_n + - const: isp_top_axi + + power-domains: + items: + - description: JH7110 ISP Power Domain Switch Controller. + + interrupts: + maxItems: 4 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Input port for receiving DVP data. + + properties:Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml line 82
Quoted 10 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +10
-0+ endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + bus-width: + const: 8 + + data-shift: + const: 2
Quoted 9 lines
As far as I can tell, those two properties are not handled by the driver. I assume this is because the driver doesn't support the DVP input yet. That's fine, but it makes it a bit hard to review the device tree. Could you provide some information about the DVP hardware interface ? Does it support both BT.656 and sync signals, or just sync signals ? Are the polarities of the clock and h/v sync controllable ? Is the parallel input bus 8-bit wide or are other options supported ? And finally, what are you modelling with data-shift: 2 ?
Hello Laurent,
The DVP hardware supports BT.656 and sync signals, can control the polarities of h/v sync, supports 8/10/12 bit wide, and data-shift: 2 is line 9-2.
Jack
Quoted 101 lines
Quoted 100 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +82
-0+ + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Input port for receiving CSI data. + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - reg-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - interrupts + - ports + +additionalProperties: false + +examples: + - | + isp@19840000 { + compatible = "starfive,jh7110-camss"; + reg = <0x19840000 0x10000>, + <0x19870000 0x30000>; + reg-names = "syscon", "isp"; + clocks = <&ispcrg 0>, + <&ispcrg 13>, + <&ispcrg 2>, + <&ispcrg 12>, + <&ispcrg 1>, + <&syscrg 51>, + <&syscrg 52>; + clock-names = "apb_func", + "wrapper_clk_c", + "dvp_inv", + "axiwr", + "mipi_rx0_pxl", + "ispcore_2x", + "isp_axi"; + resets = <&ispcrg 0>, + <&ispcrg 1>, + <&ispcrg 10>, + <&ispcrg 11>, + <&syscrg 41>, + <&syscrg 42>; + reset-names = "wrapper_p", + "wrapper_c", + "axird", + "axiwr", + "isp_top_n", + "isp_top_axi"; + power-domains = <&pwrc 5>; + interrupts = <92>, <87>, <88>, <90>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + vin_from_sc2235: endpoint { + remote-endpoint = <&sc2235_to_vin>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; + vsync-active = <0>; + pclk-sample = <1>; + }; + }; + + port@1 { + reg = <1>; + vin_from_csi2rx: endpoint { + remote-endpoint = <&csi2rx_to_vin>; + }; + }; + }; + };MAINTAINERS +7
-0@@ -19909,6 +19909,13 @@ M: Ion Badulescu <[email protected]> S: Odd Fixes F: drivers/net/ethernet/adaptec/starfire* +STARFIVE CAMERA SUBSYSTEM DRIVER +M: Jack Zhu <[email protected]> +M: Changhuang Liang <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml + STARFIVE DEVICETREES M: Emil Renner Berthing <[email protected]> S: Maintained
Re: [PATCH v4 6/8] media: dt-bindings: Add bindings for JH7110 Camera Subsystem
Hi Jack,
Quoted 110 lines · Jack Zhu
Quoted 100 lines · Laurent Pinchart
Quoted 88 lines · Jack Zhu
Add the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
Signed-off-by Jack Zhu <[email protected]>--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yamlDocumentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +72
-0@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Starfive SoC CAMSS ISP + +maintainers: + - Jack Zhu <[email protected]> + - Changhuang Liang <[email protected]> + +description: + The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It + consists of a VIN controller (Video In Controller, a top-level control until) + and an ISP. + +properties: + compatible: + const: starfive,jh7110-camss + + reg: + maxItems: 2 + + reg-names: + items: + - const: syscon + - const: isp + + clocks: + maxItems: 7 + + clock-names: + items: + - const: apb_func + - const: wrapper_clk_c + - const: dvp_inv + - const: axiwr + - const: mipi_rx0_pxl + - const: ispcore_2x + - const: isp_axi + + resets: + maxItems: 6 + + reset-names: + items: + - const: wrapper_p + - const: wrapper_c + - const: axird + - const: axiwr + - const: isp_top_n + - const: isp_top_axi + + power-domains: + items: + - description: JH7110 ISP Power Domain Switch Controller. + + interrupts: + maxItems: 4 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Input port for receiving DVP data. + + properties:Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml line 82
Quoted 10 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +10
-0+ endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + bus-width: + const: 8 + + data-shift: + const: 2Quoted 8 lines
As far as I can tell, those two properties are not handled by the driver. I assume this is because the driver doesn't support the DVP input yet. That's fine, but it makes it a bit hard to review the device tree. Could you provide some information about the DVP hardware interface ? Does it support both BT.656 and sync signals, or just sync signals ? Are the polarities of the clock and h/v sync controllable ? Is the parallel input bus 8-bit wide or are other options supported ? And finally, what are you modelling with data-shift: 2 ?
Quoted 5 lines
Hello Laurent,
The DVP hardware supports BT.656 and sync signals, can control the polarities of h/v sync, supports 8/10/12 bit wide, and data-shift: 2 is line 9-2.
Thank you for the information. Endpoints for port@0 should then require bus-type. The hsync-active and vsync-active should be listed with default values and be optional. bus-width should have 8, 10 and 12 as supported values, and be required, or have a default (I think making it required is best). data-shift should list supported values too, including 0, and be optional with a default of 0.
Quoted 100 lines
Quoted 100 lines
Quoted 100 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +82
-0+ + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Input port for receiving CSI data. + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - reg-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - interrupts + - ports + +additionalProperties: false + +examples: + - | + isp@19840000 { + compatible = "starfive,jh7110-camss"; + reg = <0x19840000 0x10000>, + <0x19870000 0x30000>; + reg-names = "syscon", "isp"; + clocks = <&ispcrg 0>, + <&ispcrg 13>, + <&ispcrg 2>, + <&ispcrg 12>, + <&ispcrg 1>, + <&syscrg 51>, + <&syscrg 52>; + clock-names = "apb_func", + "wrapper_clk_c", + "dvp_inv", + "axiwr", + "mipi_rx0_pxl", + "ispcore_2x", + "isp_axi"; + resets = <&ispcrg 0>, + <&ispcrg 1>, + <&ispcrg 10>, + <&ispcrg 11>, + <&syscrg 41>, + <&syscrg 42>; + reset-names = "wrapper_p", + "wrapper_c", + "axird", + "axiwr", + "isp_top_n", + "isp_top_axi"; + power-domains = <&pwrc 5>; + interrupts = <92>, <87>, <88>, <90>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + vin_from_sc2235: endpoint { + remote-endpoint = <&sc2235_to_vin>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; + vsync-active = <0>; + pclk-sample = <1>; + }; + }; + + port@1 { + reg = <1>; + vin_from_csi2rx: endpoint { + remote-endpoint = <&csi2rx_to_vin>; + }; + }; + }; + };MAINTAINERS +7
-0@@ -19909,6 +19909,13 @@ M: Ion Badulescu <[email protected]> S: Odd Fixes F: drivers/net/ethernet/adaptec/starfire* +STARFIVE CAMERA SUBSYSTEM DRIVER +M: Jack Zhu <[email protected]> +M: Changhuang Liang <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml + STARFIVE DEVICETREES M: Emil Renner Berthing <[email protected]> S: Maintained
Signature · 3 lines
Regards, Laurent Pinchart
Re: [PATCH v4 6/8] media: dt-bindings: Add bindings for JH7110 Camera Subsystem
Hello Laurent,
Quoted 119 lines · Laurent Pinchart
Hi Jack,
Quoted 110 lines · Jack Zhu
Quoted 100 lines · Laurent Pinchart
Quoted 88 lines · Jack Zhu
Add the bindings documentation for Starfive JH7110 Camera Subsystem which is used for handing image sensor data.
Signed-off-by Jack Zhu <[email protected]>--- .../bindings/media/starfive,jh7110-camss.yaml | 164 ++++++++++++++++++ MAINTAINERS | 7 + 2 files changed, 171 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yamlDocumentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +72
-0@@ -0,0 +1,164 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Starfive SoC CAMSS ISP + +maintainers: + - Jack Zhu <[email protected]> + - Changhuang Liang <[email protected]> + +description: + The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It + consists of a VIN controller (Video In Controller, a top-level control until) + and an ISP. + +properties: + compatible: + const: starfive,jh7110-camss + + reg: + maxItems: 2 + + reg-names: + items: + - const: syscon + - const: isp + + clocks: + maxItems: 7 + + clock-names: + items: + - const: apb_func + - const: wrapper_clk_c + - const: dvp_inv + - const: axiwr + - const: mipi_rx0_pxl + - const: ispcore_2x + - const: isp_axi + + resets: + maxItems: 6 + + reset-names: + items: + - const: wrapper_p + - const: wrapper_c + - const: axird + - const: axiwr + - const: isp_top_n + - const: isp_top_axi + + power-domains: + items: + - description: JH7110 ISP Power Domain Switch Controller. + + interrupts: + maxItems: 4 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Input port for receiving DVP data. + + properties:Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml line 82
Quoted 10 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +10
-0+ endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + bus-width: + const: 8 + + data-shift: + const: 2Quoted 8 lines
As far as I can tell, those two properties are not handled by the driver. I assume this is because the driver doesn't support the DVP input yet. That's fine, but it makes it a bit hard to review the device tree. Could you provide some information about the DVP hardware interface ? Does it support both BT.656 and sync signals, or just sync signals ? Are the polarities of the clock and h/v sync controllable ? Is the parallel input bus 8-bit wide or are other options supported ? And finally, what are you modelling with data-shift: 2 ?
Quoted 5 lines
Hello Laurent,
The DVP hardware supports BT.656 and sync signals, can control the polarities of h/v sync, supports 8/10/12 bit wide, and data-shift: 2 is line 9-2.
Quoted 7 lines
Thank you for the information. Endpoints for port@0 should then require bus-type. The hsync-active and vsync-active should be listed with default values and be optional. bus-width should have 8, 10 and 12 as supported values, and be required, or have a default (I think making it required is best). data-shift should list supported values too, including 0, and be optional with a default of 0.
Thank you for your suggestion. I will make the following modifications:
properties:
bus-type:
enum: [5, 6]
bus-width:
enum: [8, 10, 12]
data-shift:
enum: [0, 2]
default: 0
hsync-active:
enum: [0, 1]
default: 1
vsync-active:
enum: [0, 1]
default: 1
required:
- bus-type
- bus-widthQuoted 101 lines
Quoted 100 lines
Quoted 100 lines
Quoted 100 lines
Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml new file +82
-0+ + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Input port for receiving CSI data. + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - reg-names + - clocks + - clock-names + - resets + - reset-names + - power-domains + - interrupts + - ports + +additionalProperties: false + +examples: + - | + isp@19840000 { + compatible = "starfive,jh7110-camss"; + reg = <0x19840000 0x10000>, + <0x19870000 0x30000>; + reg-names = "syscon", "isp"; + clocks = <&ispcrg 0>, + <&ispcrg 13>, + <&ispcrg 2>, + <&ispcrg 12>, + <&ispcrg 1>, + <&syscrg 51>, + <&syscrg 52>; + clock-names = "apb_func", + "wrapper_clk_c", + "dvp_inv", + "axiwr", + "mipi_rx0_pxl", + "ispcore_2x", + "isp_axi"; + resets = <&ispcrg 0>, + <&ispcrg 1>, + <&ispcrg 10>, + <&ispcrg 11>, + <&syscrg 41>, + <&syscrg 42>; + reset-names = "wrapper_p", + "wrapper_c", + "axird", + "axiwr", + "isp_top_n", + "isp_top_axi"; + power-domains = <&pwrc 5>; + interrupts = <92>, <87>, <88>, <90>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + vin_from_sc2235: endpoint { + remote-endpoint = <&sc2235_to_vin>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; + vsync-active = <0>; + pclk-sample = <1>; + }; + }; + + port@1 { + reg = <1>; + vin_from_csi2rx: endpoint { + remote-endpoint = <&csi2rx_to_vin>; + }; + }; + }; + };MAINTAINERS +7
-0@@ -19909,6 +19909,13 @@ M: Ion Badulescu <[email protected]> S: Odd Fixes F: drivers/net/ethernet/adaptec/starfire* +STARFIVE CAMERA SUBSYSTEM DRIVER +M: Jack Zhu <[email protected]> +M: Changhuang Liang <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml + STARFIVE DEVICETREES M: Emil Renner Berthing <[email protected]> S: Maintained
PATCH v4 7/8 media: admin-guide: Add starfive_camss.rst for Starfive Camera Subsystem
In reply to Jack ZhuAdd starfive_camss.rst file that documents the Starfive Camera Subsystem driver which is used for handing image sensor data.
--- .../admin-guide/media/starfive_camss.rst | 57 +++++++++++++++++++ .../media/starfive_camss_graph.dot | 16 ++++++ .../admin-guide/media/v4l-drivers.rst | 1 + MAINTAINERS | 1 + 4 files changed, 75 insertions(+) create mode 100644 Documentation/admin-guide/media/starfive_camss.rst create mode 100644 Documentation/admin-guide/media/starfive_camss_graph.dot
Documentation/admin-guide/media/starfive_camss.rst new file +57 -0
@@ -0,0 +1,57 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: <isonum.txt> + +================================ +Starfive Camera Subsystem driver +================================ + +Introduction +------------ + +This file documents the driver for the Starfive Camera Subsystem found on +Starfive JH7110 SoC. The driver is located under drivers/media/platform/ +starfive. + +The driver implements V4L2, Media controller and v4l2_subdev interfaces. +Camera sensor using V4L2 subdev interface in the kernel is supported. + +The driver has been successfully used on the Gstreamer 1.18.5 with +v4l2src plugin. + + +Starfive Camera Subsystem hardware +---------------------------------- + +The Starfive Camera Subsystem hardware consists of: + +- MIPI DPHY Receiver: receives mipi data from a MIPI camera sensor. +- MIPI CSIRx Controller: is responsible for handling and decoding CSI2 protocol + based camera sensor data stream. +- ISP: handles the image data streams from the MIPI CSIRx Controller. +- VIN(Video In): a top-level module, is responsible for controlling power + and clocks to other modules, dumps the input data to memory or transfers the + input data to ISP. + + +Topology +-------- + +The media controller pipeline graph is as follows: + +.. _starfive_camss_graph: + +.. kernel-figure:: starfive_camss_graph.dot + :alt: starfive_camss_graph.dot + :align: center + +The driver has 2 video devices: + +- stf_vin0_wr_video0: capture device for images directly from the VIN module. +- stf_vin0_isp0_video1: capture device for images without scaling. + +The driver has 3 subdevices: + +- stf_isp0: is responsible for all the isp operations. +- stf_vin0_wr: used to dump RAW images to memory. +- stf_vin0_isp0: used to capture images for the stf_vin0_isp0_video1 device.
Documentation/admin-guide/media/starfive_camss_graph.dot new file +16 -0
@@ -0,0 +1,16 @@ +digraph board { + rankdir=TB + n00000001 [label="{{<port0> 0} | stf_isp0\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] + n00000001:port1 -> n0000000d:port0 + n00000004 [label="{{<port0> 0} | stf_vin0_wr\n/dev/v4l-subdev1 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] + n00000004:port1 -> n00000007 [style=bold] + n00000007 [label="stf_vin0_wr_video0\n/dev/video0", shape=box, style=filled, fillcolor=yellow] + n0000000d [label="{{<port0> 0} | stf_vin0_isp0\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] + n0000000d:port1 -> n00000010 [style=bold] + n00000010 [label="stf_vin0_isp0_video1\n/dev/video1", shape=box, style=filled, fillcolor=yellow] + n00000018 [label="{{<port0> 0} | cdns_csi2rx.19800000.csi-bridge\n | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green] + n00000018:port1 -> n00000004:port0 [style=dashed] + n00000018:port1 -> n00000001:port0 + n00000028 [label="{{} | imx219 6-0010\n | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] + n00000028:port0 -> n00000018:port0 [style=bold] +}
Documentation/admin-guide/media/v4l-drivers.rst +1 -0
@@ -27,6 +27,7 @@ Video4Linux (V4L) driver-specific documentation si470x si4713 si476x + starfive_camss vimc visl vivid
MAINTAINERS +1 -0
@@ -19914,6 +19914,7 @@ M: Jack Zhu <[email protected]> M: Changhuang Liang <[email protected]> L: [email protected] S: Maintained +F: Documentation/admin-guide/media/starfive_camss.rst F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml STARFIVE DEVICETREES
Signature · 1 line
2.34.1
PATCH v4 8/8 media: starfive: Add Starfive Camera Subsystem driver
In reply to Jack ZhuAdd the driver for Starfive Camera Subsystem found on Starfive JH7110 SoC. It is used for handing image sensor data.
--- MAINTAINERS | 1 + drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/starfive/Kconfig | 18 + drivers/media/platform/starfive/Makefile | 14 + drivers/media/platform/starfive/stf_camss.c | 477 +++++++ drivers/media/platform/starfive/stf_camss.h | 150 +++ drivers/media/platform/starfive/stf_common.h | 18 + drivers/media/platform/starfive/stf_isp.c | 737 +++++++++++ drivers/media/platform/starfive/stf_isp.h | 999 +++++++++++++++ .../media/platform/starfive/stf_isp_hw_ops.c | 715 +++++++++++ drivers/media/platform/starfive/stf_video.c | 989 ++++++++++++++ drivers/media/platform/starfive/stf_video.h | 89 ++ drivers/media/platform/starfive/stf_vin.c | 1138 +++++++++++++++++ drivers/media/platform/starfive/stf_vin.h | 174 +++ .../media/platform/starfive/stf_vin_hw_ops.c | 211 +++ 16 files changed, 5732 insertions(+) create mode 100644 drivers/media/platform/starfive/Kconfig create mode 100644 drivers/media/platform/starfive/Makefile create mode 100644 drivers/media/platform/starfive/stf_camss.c create mode 100644 drivers/media/platform/starfive/stf_camss.h create mode 100644 drivers/media/platform/starfive/stf_common.h create mode 100644 drivers/media/platform/starfive/stf_isp.c create mode 100644 drivers/media/platform/starfive/stf_isp.h create mode 100644 drivers/media/platform/starfive/stf_isp_hw_ops.c create mode 100644 drivers/media/platform/starfive/stf_video.c create mode 100644 drivers/media/platform/starfive/stf_video.h create mode 100644 drivers/media/platform/starfive/stf_vin.c create mode 100644 drivers/media/platform/starfive/stf_vin.h create mode 100644 drivers/media/platform/starfive/stf_vin_hw_ops.c
MAINTAINERS +1 -0
@@ -19916,6 +19916,7 @@ L: [email protected] S: Maintained F: Documentation/admin-guide/media/starfive_camss.rst F: Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml +F: drivers/media/platform/starfive/ STARFIVE DEVICETREES M: Emil Renner Berthing <[email protected]>
drivers/media/platform/Kconfig +1 -0
@@ -80,6 +80,7 @@ source "drivers/media/platform/renesas/Kconfig" source "drivers/media/platform/rockchip/Kconfig" source "drivers/media/platform/samsung/Kconfig" source "drivers/media/platform/st/Kconfig" +source "drivers/media/platform/starfive/Kconfig" source "drivers/media/platform/sunxi/Kconfig" source "drivers/media/platform/ti/Kconfig" source "drivers/media/platform/verisilicon/Kconfig"
drivers/media/platform/Makefile +1 -0
@@ -23,6 +23,7 @@ obj-y += renesas/ obj-y += rockchip/ obj-y += samsung/ obj-y += st/ +obj-y += starfive/ obj-y += sunxi/ obj-y += ti/ obj-y += verisilicon/
drivers/media/platform/starfive/Kconfig new file +18 -0
@@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0-only + +comment "Starfive media platform drivers" + +config VIDEO_STARFIVE_CAMSS + tristate "Starfive Camera Subsystem driver" + depends on V4L_PLATFORM_DRIVERS + depends on VIDEO_DEV && OF + select MEDIA_CONTROLLER + select VIDEO_V4L2_SUBDEV_API + select VIDEOBUF2_DMA_CONTIG + select V4L2_FWNODE + help + Enable this to support for the Starfive Camera subsystem + found on Starfive JH7110 SoC. + + To compile this driver as a module, choose M here: the + module will be called stf-camss.
drivers/media/platform/starfive/Makefile new file +14 -0
@@ -0,0 +1,14 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for StarFive camera subsystem driver. +# + +starfive-camss-objs += \ + stf_camss.o \ + stf_isp.o \ + stf_isp_hw_ops.o \ + stf_video.o \ + stf_vin.o \ + stf_vin_hw_ops.o + +obj-$(CONFIG_VIDEO_STARFIVE_CAMSS) += starfive-camss.o \
drivers/media/platform/starfive/stf_camss.c new file +477 -0
477 lines not on this page · raw message
drivers/media/platform/starfive/stf_camss.h new file +150 -0
150 lines not on this page · raw message
drivers/media/platform/starfive/stf_common.h new file +18 -0
@@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* +* stf_common.h +* +* StarFive Camera Subsystem - Common definitions +* +* Copyright (C) 2021-2023 StarFive Technology Co., Ltd. +*/ + +#ifndef STF_COMMON_H +#define STF_COMMON_H + +enum stf_subdev_type { +STF_SUBDEV_TYPE_VIN , +STF_SUBDEV_TYPE_ISP , +}; + +#endif /* STF_COMMON_H */
drivers/media/platform/starfive/stf_isp.c new file +737 -0
737 lines not on this page · raw message
drivers/media/platform/starfive/stf_isp.h new file +999 -0
999 lines not on this page · raw message
drivers/media/platform/starfive/stf_isp_hw_ops.c new file +715 -0
566 lines not on this page · raw message
drivers/media/platform/starfive/stf_video.c new file +989 -0
989 lines not on this page · raw message
drivers/media/platform/starfive/stf_video.h new file +89 -0
89 lines not on this page · raw message
drivers/media/platform/starfive/stf_vin.c new file +1138 -0
1,138 lines not on this page · raw message
drivers/media/platform/starfive/stf_vin.h new file +174 -0
174 lines not on this page · raw message
drivers/media/platform/starfive/stf_vin_hw_ops.c new file +211 -0
211 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Signature · 1 line
2.34.1
Part of the diff is not shown here. View the raw message.
Quoted 32 lines · Jack Zhu
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after theerr_disable_pixclklabel.
- Modified Code Style for gettingsys_rstandp_rst.
- Renamedclk_nameto name and modified the relevant code. Patch 9:
- Added static forstfcamss_get_mem_resfunction.
- Added static forisp_closefunction.
- Fixed implicit conversion warning forstf_vin_map_isp_padfunction.
- Dropped unused variables.
Quoted 2 lines
Hello everyone,
From the current review status, the patches related to the CSI module have 'reviewed-by' tags. I would like to know if it is okay to add patches 1-5 from this series to a PR first.
Thank you!
Jack
Quoted 117 lines
Changes since v2:
- Rebased on v6.3-rc1.
Patch 1:
- Modified spelling errors.
- Added port@0.
- Modified '$ref' of port.
- Added 'ports' to 'required'.
- Dropped 'stfcamss' label in example.
- Added port@0 in example.
- AddedMAINTAINERSfile.
Patch 2:
- Split this patch into three new patches.
- Modified compatible property.
- Replaced clock names with the existing names.
- Modified 'bus-type' and 'clock-lanes'
- Added port@2 - port@4
- Dropped 'csi2rx' label in example.
Patch 3:
- Updated rst and dot file as three pipelines were deleted. Patch 4:
- Split this patch into three new patches.
- Dropped .s_power() and .get_fmt().
- Dropped CSI-2 DT support.
- Droppedv4l2_device_register_subdev_nodes().
- Used assigned-clock-rates in DT to set clk value.
- Modified 'compatible' field.
Patch 5:
- Deleted three pipelines.
- Modified 'stfcamss_clocks'/'stfcamss_resets' struct.
- Droppedstfcamss_find_sensor()function.
- Removed redundant code fromstfcamss_of_parse_endpoint_node().
- Modified spelling errors.
- Rewrotestfcamss_reg_media_subdev_node()function.
- Modifiedstfcamss_subdev_notifier_bound().
- Modifiedstfcamss_probe()function.
- Droppedstfcamss_suspend()andstfcamss_resume().
- Droppeddev_info()instfcamss_remove()function.
- Added 'stf_' prefix for enumsubdev_type.
- Moved all includes to the top instf_camss.hfile.
- Dropped unused fields in stfcamss struct.
- Replaced Custom logging macros with regular macros.
- Rewrote register read and write functions.
- Used lowercase for all hex constants.
- Used macro to name registers.
- Dropped unused ioctl andstf_isp_ioctl.hfile.v2: https://lore.kernel.org/all/[email protected]/
Changes since v1:
- Deleted starfive,jh7110-mipi-csi2.yaml.
- Converted cdns,csi2rx.txt to cdns,csi2rx.yaml and added ‘resets’ properties.
- Added ‘cdns,csi2rx.yaml’ in ‘CADENCE MIPI-CSI2 BRIDGES’ entry.
- The following contents were modified in starfive,jh7110-camss.yaml:
dropped quotes from ’id’ and ‘schema’; dropped ‘|’ for ‘description’; corrected the wrong or redundant words: ‘a ISP’, ‘PD ISP’; dropped ‘minItems’ for ‘reg’, ‘clocks’, ‘resets’ and ‘interrupts’; dropped the '_clk' and 'rst_' prefix about the 'clock-names' and 'reset-names';
changed ‘endpoint@1’ to ‘endpoint’; updated examples;
- Updated Subject for some patches.
- Merged patch 6, 7, 8, 9, 10, 11 into one patch.Jack Zhu (8):
media: dt-bindings: cadence-csi2rx: Convert to DT schema
media: dt-bindings: cadence-csi2rx: Add resets property
media: cadence: Add operation on reset
media: cadence: Add support for external dphy
media: cadence: Add support for JH7110 SoC
media: dt-bindings: Add bindings for JH7110 Camera Subsystem
media: admin-guide: Addstarfive_camss.rstfor Starfive Camera
Subsystem
media: starfive: Add Starfive Camera Subsystem driver.../admin-guide/media/starfive_camss.rst | 57 + .../media/starfive_camss_graph.dot | 16 + .../admin-guide/media/v4l-drivers.rst | 1 + .../devicetree/bindings/media/cdns,csi2rx.txt | 100 -- .../bindings/media/cdns,csi2rx.yaml | 201 +++ .../bindings/media/starfive,jh7110-camss.yaml | 164 +++ MAINTAINERS | 10 + drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/cadence/cdns-csi2rx.c | 107 +- drivers/media/platform/starfive/Kconfig | 18 + drivers/media/platform/starfive/Makefile | 14 + drivers/media/platform/starfive/stf_camss.c | 477 +++++++ drivers/media/platform/starfive/stf_camss.h | 150 +++ drivers/media/platform/starfive/stf_common.h | 18 + drivers/media/platform/starfive/stf_isp.c | 737 +++++++++++ drivers/media/platform/starfive/stf_isp.h | 999 +++++++++++++++ .../media/platform/starfive/stf_isp_hw_ops.c | 715 +++++++++++ drivers/media/platform/starfive/stf_video.c | 989 ++++++++++++++ drivers/media/platform/starfive/stf_video.h | 89 ++ drivers/media/platform/starfive/stf_vin.c | 1138 +++++++++++++++++ drivers/media/platform/starfive/stf_vin.h | 174 +++ .../media/platform/starfive/stf_vin_hw_ops.c | 211 +++ 23 files changed, 6272 insertions(+), 115 deletions(-) create mode 100644 Documentation/admin-guide/media/starfive_camss.rst create mode 100644 Documentation/admin-guide/media/starfive_camss_graph.dot delete mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.txt create mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.yaml create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml create mode 100644 drivers/media/platform/starfive/Kconfig create mode 100644 drivers/media/platform/starfive/Makefile create mode 100644 drivers/media/platform/starfive/stf_camss.c create mode 100644 drivers/media/platform/starfive/stf_camss.h create mode 100644 drivers/media/platform/starfive/stf_common.h create mode 100644 drivers/media/platform/starfive/stf_isp.c create mode 100644 drivers/media/platform/starfive/stf_isp.h create mode 100644 drivers/media/platform/starfive/stf_isp_hw_ops.c create mode 100644 drivers/media/platform/starfive/stf_video.c create mode 100644 drivers/media/platform/starfive/stf_video.h create mode 100644 drivers/media/platform/starfive/stf_vin.c create mode 100644 drivers/media/platform/starfive/stf_vin.h create mode 100644 drivers/media/platform/starfive/stf_vin_hw_ops.c
Quoted 40 lines · Jack Zhu
Quoted 32 lines · Jack Zhu
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after theerr_disable_pixclklabel.
- Modified Code Style for gettingsys_rstandp_rst.
- Renamedclk_nameto name and modified the relevant code. Patch 9:
- Added static forstfcamss_get_mem_resfunction.
- Added static forisp_closefunction.
- Fixed implicit conversion warning forstf_vin_map_isp_padfunction.
- Dropped unused variables.Quoted 2 lines
Hello everyone,
Quoted 8 lines
From the current review status, the patches related to the CSI module have 'reviewed-by' tags. I would like to know if it is okay to add patches 1-5 from this series to a PR first.
Thank you!
Jack
Hello Mauro, Laurent, Maxime, Rob, Krzysztof, Robert, Todor and Philipp,
Can you give me some suggestions and comments on the previous request to commit CSI related patches first? Thank you for your time.
Jack
Quoted 117 lines
Quoted 117 lines
Changes since v2:
- Rebased on v6.3-rc1.
Patch 1:
- Modified spelling errors.
- Added port@0.
- Modified '$ref' of port.
- Added 'ports' to 'required'.
- Dropped 'stfcamss' label in example.
- Added port@0 in example.
- AddedMAINTAINERSfile.
Patch 2:
- Split this patch into three new patches.
- Modified compatible property.
- Replaced clock names with the existing names.
- Modified 'bus-type' and 'clock-lanes'
- Added port@2 - port@4
- Dropped 'csi2rx' label in example.
Patch 3:
- Updated rst and dot file as three pipelines were deleted. Patch 4:
- Split this patch into three new patches.
- Dropped .s_power() and .get_fmt().
- Dropped CSI-2 DT support.
- Droppedv4l2_device_register_subdev_nodes().
- Used assigned-clock-rates in DT to set clk value.
- Modified 'compatible' field.
Patch 5:
- Deleted three pipelines.
- Modified 'stfcamss_clocks'/'stfcamss_resets' struct.
- Droppedstfcamss_find_sensor()function.
- Removed redundant code fromstfcamss_of_parse_endpoint_node().
- Modified spelling errors.
- Rewrotestfcamss_reg_media_subdev_node()function.
- Modifiedstfcamss_subdev_notifier_bound().
- Modifiedstfcamss_probe()function.
- Droppedstfcamss_suspend()andstfcamss_resume().
- Droppeddev_info()instfcamss_remove()function.
- Added 'stf_' prefix for enumsubdev_type.
- Moved all includes to the top instf_camss.hfile.
- Dropped unused fields in stfcamss struct.
- Replaced Custom logging macros with regular macros.
- Rewrote register read and write functions.
- Used lowercase for all hex constants.
- Used macro to name registers.
- Dropped unused ioctl andstf_isp_ioctl.hfile.v2: https://lore.kernel.org/all/[email protected]/
Changes since v1:
- Deleted starfive,jh7110-mipi-csi2.yaml.
- Converted cdns,csi2rx.txt to cdns,csi2rx.yaml and added ‘resets’ properties.
- Added ‘cdns,csi2rx.yaml’ in ‘CADENCE MIPI-CSI2 BRIDGES’ entry.
- The following contents were modified in starfive,jh7110-camss.yaml:
dropped quotes from ’id’ and ‘schema’; dropped ‘|’ for ‘description’; corrected the wrong or redundant words: ‘a ISP’, ‘PD ISP’; dropped ‘minItems’ for ‘reg’, ‘clocks’, ‘resets’ and ‘interrupts’; dropped the '_clk' and 'rst_' prefix about the 'clock-names' and 'reset-names';
changed ‘endpoint@1’ to ‘endpoint’; updated examples;
- Updated Subject for some patches.
- Merged patch 6, 7, 8, 9, 10, 11 into one patch.Jack Zhu (8):
media: dt-bindings: cadence-csi2rx: Convert to DT schema
media: dt-bindings: cadence-csi2rx: Add resets property
media: cadence: Add operation on reset
media: cadence: Add support for external dphy
media: cadence: Add support for JH7110 SoC
media: dt-bindings: Add bindings for JH7110 Camera Subsystem
media: admin-guide: Addstarfive_camss.rstfor Starfive Camera
Subsystem
media: starfive: Add Starfive Camera Subsystem driver.../admin-guide/media/starfive_camss.rst | 57 + .../media/starfive_camss_graph.dot | 16 + .../admin-guide/media/v4l-drivers.rst | 1 + .../devicetree/bindings/media/cdns,csi2rx.txt | 100 -- .../bindings/media/cdns,csi2rx.yaml | 201 +++ .../bindings/media/starfive,jh7110-camss.yaml | 164 +++ MAINTAINERS | 10 + drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/cadence/cdns-csi2rx.c | 107 +- drivers/media/platform/starfive/Kconfig | 18 + drivers/media/platform/starfive/Makefile | 14 + drivers/media/platform/starfive/stf_camss.c | 477 +++++++ drivers/media/platform/starfive/stf_camss.h | 150 +++ drivers/media/platform/starfive/stf_common.h | 18 + drivers/media/platform/starfive/stf_isp.c | 737 +++++++++++ drivers/media/platform/starfive/stf_isp.h | 999 +++++++++++++++ .../media/platform/starfive/stf_isp_hw_ops.c | 715 +++++++++++ drivers/media/platform/starfive/stf_video.c | 989 ++++++++++++++ drivers/media/platform/starfive/stf_video.h | 89 ++ drivers/media/platform/starfive/stf_vin.c | 1138 +++++++++++++++++ drivers/media/platform/starfive/stf_vin.h | 174 +++ .../media/platform/starfive/stf_vin_hw_ops.c | 211 +++ 23 files changed, 6272 insertions(+), 115 deletions(-) create mode 100644 Documentation/admin-guide/media/starfive_camss.rst create mode 100644 Documentation/admin-guide/media/starfive_camss_graph.dot delete mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.txt create mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.yaml create mode 100644 Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml create mode 100644 drivers/media/platform/starfive/Kconfig create mode 100644 drivers/media/platform/starfive/Makefile create mode 100644 drivers/media/platform/starfive/stf_camss.c create mode 100644 drivers/media/platform/starfive/stf_camss.h create mode 100644 drivers/media/platform/starfive/stf_common.h create mode 100644 drivers/media/platform/starfive/stf_isp.c create mode 100644 drivers/media/platform/starfive/stf_isp.h create mode 100644 drivers/media/platform/starfive/stf_isp_hw_ops.c create mode 100644 drivers/media/platform/starfive/stf_video.c create mode 100644 drivers/media/platform/starfive/stf_video.h create mode 100644 drivers/media/platform/starfive/stf_vin.c create mode 100644 drivers/media/platform/starfive/stf_vin.h create mode 100644 drivers/media/platform/starfive/stf_vin_hw_ops.c
Quoted 49 lines · Jack Zhu
Quoted 46 lines · Jack Zhu
Quoted 32 lines · Jack Zhu
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after theerr_disable_pixclklabel.
- Modified Code Style for gettingsys_rstandp_rst.
- Renamedclk_nameto name and modified the relevant code. Patch 9:
- Added static forstfcamss_get_mem_resfunction.
- Added static forisp_closefunction.
- Fixed implicit conversion warning forstf_vin_map_isp_padfunction.
- Dropped unused variables.Quoted 2 lines
Hello everyone,
From the current review status, the patches related to the CSI module have 'reviewed-by' tags. I would like to know if it is okay to add patches 1-5 from this series to a PR first.
Thank you!
Quoted 7 lines
Quoted 2 lines
Jack
Hello Mauro, Laurent, Maxime, Rob, Krzysztof, Robert, Todor and Philipp,
Can you give me some suggestions and comments on the previous request to commit CSI related patches first? Thank you for your time.
You received very specific feedback, so know you decided to ignore it?
No, implement what you were asked for.
Best regards,
Krzysztof
Quoted 53 lines · Krzysztof Kozlowski
Quoted 52 lines · Jack Zhu
Quoted 48 lines · Jack Zhu
Quoted 32 lines · Jack Zhu
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after theerr_disable_pixclklabel.
- Modified Code Style for gettingsys_rstandp_rst.
- Renamedclk_nameto name and modified the relevant code. Patch 9:
- Added static forstfcamss_get_mem_resfunction.
- Added static forisp_closefunction.
- Fixed implicit conversion warning forstf_vin_map_isp_padfunction.
- Dropped unused variables.Quoted 2 lines
Hello everyone,
From the current review status, the patches related to the CSI module have 'reviewed-by' tags. I would like to know if it is okay to add patches 1-5 from this series to a PR first.
Thank you!
Jack
Quoted 9 lines
Quoted 4 lines
Hello Mauro, Laurent, Maxime, Rob, Krzysztof, Robert, Todor and Philipp,
Can you give me some suggestions and comments on the previous request to commit CSI related patches first? Thank you for your time.
You received very specific feedback, so know you decided to ignore it?
No, implement what you were asked for.
Hi Krzysztof,
Thank you for your comments.
I am talking about CSI-related patches 1-5, not including the patches 6-8. The CSI module is a relatively functionally independent hardware module. The CSI-related patches 1-5 already have 'reviewed-by' tags, and there are no unprocessed comments left. So, made the previous request. Please let me know if I understand something wrong.
I don't want to ignore any comments, I will continue to modify the isp patches 6-8 in subsequent versions according to your comments. The ISP-related patches are being prepared.
Jack
Quoted 3 lines
Best regards,
Krzysztof
Quoted 68 lines · Jack Zhu
Quoted 53 lines · Krzysztof Kozlowski
Quoted 52 lines · Jack Zhu
Quoted 48 lines · Jack Zhu
Quoted 32 lines · Jack Zhu
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after theerr_disable_pixclklabel.
- Modified Code Style for gettingsys_rstandp_rst.
- Renamedclk_nameto name and modified the relevant code. Patch 9:
- Added static forstfcamss_get_mem_resfunction.
- Added static forisp_closefunction.
- Fixed implicit conversion warning forstf_vin_map_isp_padfunction.
- Dropped unused variables.Quoted 2 lines
Hello everyone,
From the current review status, the patches related to the CSI module have 'reviewed-by' tags. I would like to know if it is okay to add patches 1-5 from this series to a PR first.
Thank you!
Jack
Quoted 9 lines
Quoted 4 lines
Hello Mauro, Laurent, Maxime, Rob, Krzysztof, Robert, Todor and Philipp,
Can you give me some suggestions and comments on the previous request to commit CSI related patches first? Thank you for your time.
You received very specific feedback, so know you decided to ignore it?
No, implement what you were asked for.
Hi Krzysztof,
Quoted 7 lines
Thank you for your comments.
I am talking about CSI-related patches 1-5, not including the patches 6-8. The CSI module is a relatively functionally independent hardware module. The CSI-related patches 1-5 already have 'reviewed-by' tags, and there are no unprocessed comments left. So, made the previous request. Please let me know if I understand something wrong.
You pinged also me, so we talk about bindings. You got comments to fix, so if you are not going to fix them, the patches will not get accepted.
Quoted 3 lines
I don't want to ignore any comments, I will continue to modify the isp patches 6-8 in subsequent versions according to your comments. The ISP-related patches are being prepared.
And how are these patches related to me and Rob?
Best regards,
Krzysztof
Quoted 71 lines · Krzysztof Kozlowski
Quoted 70 lines · Jack Zhu
Quoted 53 lines · Krzysztof Kozlowski
Quoted 52 lines · Jack Zhu
Quoted 48 lines · Jack Zhu
Quoted 32 lines · Jack Zhu
Hi,
This patch series adds support for the StarFive Camera Subsystem found on StarFive JH7110 SoC.
The driver implements V4L2, Media controller and V4L2 subdev interfaces. Camera sensor using V4L2 subdev interface in the kernel is supported.
The driver is tested on VisionFive V2 board with IMX219 camera sensor. GStreamer 1.18.5 with v4l2src plugin is supported.
Changes since v3:
Patch 1:
- Modified port@0 and port@1 properties.
- Extended the port@0 example with appropriate properties.
- Added 'port@0' for 'required'
Patch 2:
- Modified spelling errors.
Patch 3:
- Merged patch 5 into the patch with an explanation for compatible in commit msg.
Patch 6:
- Asserted pixel_rst[i] reset in the loop after theerr_disable_pixclklabel.
- Modified Code Style for gettingsys_rstandp_rst.
- Renamedclk_nameto name and modified the relevant code. Patch 9:
- Added static forstfcamss_get_mem_resfunction.
- Added static forisp_closefunction.
- Fixed implicit conversion warning forstf_vin_map_isp_padfunction.
- Dropped unused variables.Quoted 2 lines
Hello everyone,
From the current review status, the patches related to the CSI module have 'reviewed-by' tags. I would like to know if it is okay to add patches 1-5 from this series to a PR first.
Thank you!
Jack
Quoted 9 lines
Quoted 4 lines
Hello Mauro, Laurent, Maxime, Rob, Krzysztof, Robert, Todor and Philipp,
Can you give me some suggestions and comments on the previous request to commit CSI related patches first? Thank you for your time.
You received very specific feedback, so know you decided to ignore it?
No, implement what you were asked for.
Hi Krzysztof,
Thank you for your comments.
Quoted 7 lines
Quoted 5 lines
I am talking about CSI-related patches 1-5, not including the patches 6-8. The CSI module is a relatively functionally independent hardware module. The CSI-related patches 1-5 already have 'reviewed-by' tags, and there are no unprocessed comments left. So, made the previous request. Please let me know if I understand something wrong.
You pinged also me, so we talk about bindings. You got comments to fix,
Hello Krzysztof,
Sorry, I'm not sure, the 'comments to fix' refers to your comments in patch 6?
Quoted 8 lines
so if you are not going to fix them, the patches will not get accepted.
Quoted 3 lines
I don't want to ignore any comments, I will continue to modify the isp patches 6-8 in subsequent versions according to your comments. The ISP-related patches are being prepared.
And how are these patches related to me and Rob?
Yes, there are bindings files related to ISP.
Maybe I need to split the series into two separate series, a CSI series(patches 1-5) and an ISP series(patches 6-8). Does this make it easier for the CSI patches 1-5 to integrate into the main line?
Quoted 3 lines
Best regards,
Krzysztof