| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/media/nxp,imx8mq-mipi-csi2.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: NXP i.MX8MQ MIPI CSI-2 receiver |
| |
| maintainers: |
| - Martin Kepplinger <martin.kepplinger@puri.sm> |
| |
| description: |- |
| This binding covers the CSI-2 RX PHY and host controller included in the |
| NXP i.MX8MQ SoC. It handles the sensor/image input and process for all the |
| input imaging devices. |
| |
| properties: |
| compatible: |
| enum: |
| - fsl,imx8mq-mipi-csi2 |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| items: |
| - description: core is the RX Controller Core Clock input. This clock |
| must be exactly equal to or faster than the receive |
| byteclock from the RX DPHY. |
| - description: esc is the Rx Escape Clock. This must be the same escape |
| clock that the RX DPHY receives. |
| - description: ui is the pixel clock (phy_ref up to 333Mhz). |
| See the reference manual for details. |
| |
| clock-names: |
| items: |
| - const: core |
| - const: esc |
| - const: ui |
| |
| power-domains: |
| maxItems: 1 |
| |
| resets: |
| items: |
| - description: CORE_RESET reset register bit definition |
| - description: PHY_REF_RESET reset register bit definition |
| - description: ESC_RESET reset register bit definition |
| |
| fsl,mipi-phy-gpr: |
| description: | |
| The phandle to the imx8mq syscon iomux-gpr with the register |
| for setting RX_ENABLE for the mipi receiver. |
| |
| The format should be as follows: |
| <gpr req_gpr> |
| gpr is the phandle to general purpose register node. |
| req_gpr is the gpr register offset of RX_ENABLE for the mipi phy. |
| $ref: /schemas/types.yaml#/definitions/phandle-array |
| items: |
| items: |
| - description: The 'gpr' is the phandle to general purpose register node. |
| - description: The 'req_gpr' is the gpr register offset containing |
| CSI2_1_RX_ENABLE or CSI2_2_RX_ENABLE respectively. |
| maximum: 0xff |
| |
| interconnects: |
| maxItems: 1 |
| |
| interconnect-names: |
| const: dram |
| |
| 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: |
| data-lanes: |
| minItems: 1 |
| items: |
| - const: 1 |
| - const: 2 |
| - const: 3 |
| - const: 4 |
| |
| required: |
| - data-lanes |
| |
| port@1: |
| $ref: /schemas/graph.yaml#/properties/port |
| description: |
| Output port node |
| |
| required: |
| - port@0 |
| - port@1 |
| |
| required: |
| - compatible |
| - reg |
| - clocks |
| - clock-names |
| - power-domains |
| - resets |
| - fsl,mipi-phy-gpr |
| - ports |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/imx8mq-clock.h> |
| #include <dt-bindings/interconnect/imx8mq.h> |
| #include <dt-bindings/reset/imx8mq-reset.h> |
| |
| csi@30a70000 { |
| compatible = "fsl,imx8mq-mipi-csi2"; |
| reg = <0x30a70000 0x1000>; |
| clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, |
| <&clk IMX8MQ_CLK_CSI1_ESC>, |
| <&clk IMX8MQ_CLK_CSI1_PHY_REF>; |
| clock-names = "core", "esc", "ui"; |
| assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, |
| <&clk IMX8MQ_CLK_CSI1_PHY_REF>, |
| <&clk IMX8MQ_CLK_CSI1_ESC>; |
| assigned-clock-rates = <266000000>, <200000000>, <66000000>; |
| assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, |
| <&clk IMX8MQ_SYS2_PLL_1000M>, |
| <&clk IMX8MQ_SYS1_PLL_800M>; |
| power-domains = <&pgc_mipi_csi1>; |
| resets = <&src IMX8MQ_RESET_MIPI_CSI1_CORE_RESET>, |
| <&src IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET>, |
| <&src IMX8MQ_RESET_MIPI_CSI1_ESC_RESET>; |
| fsl,mipi-phy-gpr = <&iomuxc_gpr 0x88>; |
| interconnects = <&noc IMX8MQ_ICM_CSI1 &noc IMX8MQ_ICS_DRAM>; |
| interconnect-names = "dram"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| imx8mm_mipi_csi_in: endpoint { |
| remote-endpoint = <&imx477_out>; |
| data-lanes = <1 2 3 4>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| imx8mm_mipi_csi_out: endpoint { |
| remote-endpoint = <&csi_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| ... |