mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-05 11:53:41 +00:00

The MAX96712 and MAX96724 are both quad GMSL2 to CSI-2 deserializers and are in parts similar, but not identical. The most obvious difference is on the CSI-2 side where the MAX96712 have 4 PHYs and support D-PHY with 1x4, 2x2 and 4x2 lanes where the MAX96724 only have 2 PHYs and supports D-PHY with 2x4 or 4x2 lanes. The register layout overlap in part but there are differences and holes. Most of the differences are related to the different number of CSI-2 PHYs, but there are other capability differences between the two. Add a specific compatible for MAX96724 to the max96712 bindings. The bindings do not yet support validating all DT properties to limit it the each devices capabilities. However to allow for this in future a specific compatible for the two different devices are needed. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
122 lines
3.4 KiB
YAML
122 lines
3.4 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
# Copyright (C) 2021 Renesas Electronics Corp.
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/media/i2c/maxim,max96712.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Quad GMSL2 to CSI-2 Deserializer with GMSL1 Compatibility
|
|
|
|
maintainers:
|
|
- Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
|
|
|
|
description: |
|
|
The MAX96712 deserializer converts GMSL2 or GMSL1 serial inputs into MIPI
|
|
CSI-2 D-PHY or C-PHY formatted outputs. The device allows each link to
|
|
simultaneously transmit bidirectional control-channel data while forward
|
|
video transmissions are in progress. The MAX96712 can accommodate as many as
|
|
four remotely located sensors using industry-standard coax or STP
|
|
interconnects.
|
|
|
|
Each GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
|
|
forward direction and 187.5Mbps in the reverse direction. In GMSL1 mode, the
|
|
MAX96712 can be paired with first-generation 3.12Gbps or 1.5Gbps GMSL1
|
|
serializers or operate up to 3.12Gbps with GMSL2 serializers in GMSL1 mode.
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- maxim,max96712
|
|
- maxim,max96724
|
|
|
|
reg:
|
|
description: I2C device address
|
|
maxItems: 1
|
|
|
|
enable-gpios: true
|
|
|
|
ports:
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
|
|
properties:
|
|
port@0:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: GMSL Input 0
|
|
|
|
port@1:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: GMSL Input 1
|
|
|
|
port@2:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: GMSL Input 2
|
|
|
|
port@3:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: GMSL Input 3
|
|
|
|
port@4:
|
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
|
unevaluatedProperties: false
|
|
description: CSI-2 Output
|
|
|
|
properties:
|
|
endpoint:
|
|
$ref: /schemas/media/video-interfaces.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
properties:
|
|
data-lanes: true
|
|
bus-type:
|
|
enum:
|
|
- 1 # MEDIA_BUS_TYPE_CSI2_CPHY
|
|
- 4 # MEDIA_BUS_TYPE_CSI2_DPHY
|
|
|
|
required:
|
|
- data-lanes
|
|
- bus-type
|
|
|
|
required:
|
|
- port@4
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- ports
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/media/video-interfaces.h>
|
|
|
|
i2c@e6508000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
reg = <0 0xe6508000>;
|
|
|
|
gmsl0: gmsl-deserializer@49 {
|
|
compatible = "maxim,max96712";
|
|
reg = <0x49>;
|
|
enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@4 {
|
|
reg = <4>;
|
|
max96712_out0: endpoint {
|
|
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
|
|
clock-lanes = <0>;
|
|
data-lanes = <1 2 3 4>;
|
|
remote-endpoint = <&csi40_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|