~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/media/microchip,csi2dc.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/media/microchip,csi2dc.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Microchip CSI2 Demux Controller (CSI2DC)
  8 
  9 maintainers:
 10   - Eugen Hristev <eugen.hristev@microchip.com>
 11 
 12 description:
 13   CSI2DC - Camera Serial Interface 2 Demux Controller
 14 
 15   CSI2DC is a hardware block that receives incoming data from either from an
 16   IDI interface or from a parallel bus interface.
 17   It filters IDI packets based on their data type and virtual channel
 18   identifier, then converts the byte stream to a pixel stream into a cross
 19   clock domain towards a parallel interface that can be read by a sensor
 20   controller.
 21   IDI interface is Synopsys proprietary.
 22   CSI2DC can act a simple bypass bridge if the incoming data is coming from
 23   a parallel interface.
 24 
 25   CSI2DC provides two pipes, one video pipe and one data pipe. Video pipe
 26   is connected at the output to a sensor controller and the data pipe is
 27   accessible as a DMA slave port to a DMA controller.
 28 
 29   CSI2DC supports a single 'port' node as a sink port with either Synopsys
 30   32-bit IDI interface or a parallel interface.
 31 
 32   CSI2DC supports one 'port' node as source port with parallel interface.
 33   This is called video pipe.
 34   This port has an 'endpoint' that can be connected to a sink port of another
 35   controller (next in pipeline).
 36 
 37   CSI2DC also supports direct access to the data through AHB, via DMA channel,
 38   called data pipe.
 39   For data pipe to be available, a dma controller and a dma channel must be
 40   referenced.
 41 
 42 properties:
 43   compatible:
 44     const: microchip,sama7g5-csi2dc
 45 
 46   reg:
 47     maxItems: 1
 48 
 49   clocks:
 50     minItems: 2
 51     maxItems: 2
 52 
 53   clock-names:
 54     description:
 55       CSI2DC must have two clocks to function correctly. One clock is the
 56       peripheral clock for the inside functionality of the hardware block.
 57       This is named 'pclk'. The second clock must be the cross domain clock,
 58       in which CSI2DC will perform clock crossing. This clock must be fed
 59       by the next controller in pipeline, which usually is a sensor controller.
 60       Normally this clock should be given by this sensor controller who
 61       is also a clock source. This clock is named 'scck', sensor controller clock.
 62     items:
 63       - const: pclk
 64       - const: scck
 65 
 66   dmas:
 67     maxItems: 1
 68 
 69   dma-names:
 70     const: rx
 71 
 72   ports:
 73     $ref: /schemas/graph.yaml#/properties/ports
 74 
 75     properties:
 76       port@0:
 77         $ref: /schemas/graph.yaml#/$defs/port-base
 78         unevaluatedProperties: false
 79         description:
 80           Input port node, single endpoint describing the input port.
 81 
 82         properties:
 83           endpoint:
 84             $ref: video-interfaces.yaml#
 85             unevaluatedProperties: false
 86             description: Endpoint connected to input device
 87 
 88             properties:
 89               bus-type:
 90                 enum: [4, 5, 6]
 91                 default: 4
 92 
 93               bus-width:
 94                 enum: [8, 9, 10, 11, 12, 13, 14]
 95                 default: 14
 96 
 97               clock-noncontinuous:
 98                 type: boolean
 99                 description:
100                   Presence of this boolean property decides whether clock is
101                   continuous or noncontinuous.
102 
103               remote-endpoint: true
104 
105       port@1:
106         $ref: /schemas/graph.yaml#/$defs/port-base
107         unevaluatedProperties: false
108         description:
109           Output port node, single endpoint describing the output port.
110 
111         properties:
112           endpoint:
113             unevaluatedProperties: false
114             $ref: video-interfaces.yaml#
115             description: Endpoint connected to output device
116 
117             properties:
118               bus-type:
119                 enum: [5, 6]
120                 default: 5
121 
122               bus-width:
123                 enum: [8, 9, 10, 11, 12, 13, 14]
124                 default: 14
125 
126               remote-endpoint: true
127 
128     required:
129       - port@0
130       - port@1
131 
132 additionalProperties: false
133 
134 required:
135   - compatible
136   - reg
137   - clocks
138   - clock-names
139   - ports
140 
141 examples:
142   # Example for connecting to a parallel sensor controller block (video pipe)
143   # and the input is received from Synopsys IDI interface
144   - |
145     csi2dc@e1404000 {
146         compatible = "microchip,sama7g5-csi2dc";
147         reg = <0xe1404000 0x500>;
148         clocks = <&pclk>, <&scck>;
149         clock-names = "pclk", "scck";
150 
151         ports {
152                #address-cells = <1>;
153                #size-cells = <0>;
154                port@0 {
155                        reg = <0>; /* must be 0, first child port */
156                        csi2dc_in: endpoint { /* input from IDI interface */
157                                bus-type = <4>; /* MIPI CSI2 D-PHY */
158                                remote-endpoint = <&csi2host_out>;
159                        };
160                };
161 
162                port@1 {
163                        reg = <1>; /* must be 1, second child port */
164                        csi2dc_out: endpoint {
165                                remote-endpoint = <&xisc_in>; /* output to sensor controller */
166                        };
167                };
168         };
169     };
170 
171   # Example for connecting to a DMA master as an AHB slave
172   # and the input is received from Synopsys IDI interface
173   - |
174     #include <dt-bindings/dma/at91.h>
175     csi2dc@e1404000 {
176         compatible = "microchip,sama7g5-csi2dc";
177         reg = <0xe1404000 0x500>;
178         clocks = <&pclk>, <&scck>;
179         clock-names = "pclk", "scck";
180         dmas = <&dma0 AT91_XDMAC_DT_PERID(34)>;
181         dma-names = "rx";
182 
183         ports {
184                #address-cells = <1>;
185                #size-cells = <0>;
186                port@0 {
187                        reg = <0>; /* must be 0, first child port */
188                        csi2dc_input: endpoint { /* input from IDI interface */
189                                remote-endpoint = <&csi2host_out>;
190                        };
191                };
192 
193                port@1 {
194                        reg = <1>;
195                };
196         };
197     };
198 
199 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php