From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA5AF2E3395; Fri, 18 Jul 2025 15:25:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752852348; cv=none; b=QDF7742ZJYa9V1wPRbM/sIyCKKfMT/+Q0i/Zd9kSU1vXuvyN1sPK4xV0II+CA9GFJssbXqA4b+1PG2orrAQ/PbEPM8GJ0d75SjViZlk3IAFOnFUGXF0Ztgjf/L3tnUwf5S8fWnaJOt+xTUUegbjBWeSPpfCtKnG6NWlgu3jq4w0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752852348; c=relaxed/simple; bh=/zvrVlATZXRbMWRu5CMCE609Fpm95UQ7jNDx71d2bMg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HTmsqq9otTbCuzWeTOwzLeNeeA55l6zfet0tASGbQmlICDeRIaC5KLbhcz+ywV7AMr9MEBnB8D2yZQZDO78pjn2jBf5S1FETrG5c0joQL++TPWM/+s9jQKIsCmjnGk9SDc5racW0DIsrFWq2kPNX3m2eCQDVzvJYJ3FRmIxyNpo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WmpWGIEY; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WmpWGIEY" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4561607166aso17473125e9.2; Fri, 18 Jul 2025 08:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752852345; x=1753457145; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gv2UwlILHZVL731gdrcUx1vcPzTbBtIbkXvZA3zOoPc=; b=WmpWGIEYmLw2JKd7IGVavgjm1hzpLkoLVk1IQpr5oxqCgUxiXTeXUZQNwzFSEjjeqY KTZwvC0/d7g5NXLG/+icMSkF9PTx8HFIWtCPiL4A74VsSz3HbOTrOn3Tgszoy6VhVo6X fI3rWer9k92un+fXztbgsDG27WwuD6VAVDaJU+eDgHroMDCYFpM9jLmW4Ac3i0qEtBIQ jXTM2xvsA3pL3I2Y9RgqHnu7aczvW7GFkS2lnRQRuFvreean4nnM73ky1SxK71P1iv/x RavbYGFSvmJjXvZlO3TvpBHT8OqXTi5HwIVide2jRlzsTYJQC4joj45TSZpAQbxCGAO7 oqAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752852345; x=1753457145; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gv2UwlILHZVL731gdrcUx1vcPzTbBtIbkXvZA3zOoPc=; b=uSniuZ0989Jt/u29gk3YwCnuuRRQ/9f0YxaLIPUI86Ej8xYaVPRwH6DlLWTEBt3MkA E0dvzXrMFvEDF+eaJx8mIdk3qnICZJPMe18ugvh8R1mywiD9y3wcbK0Gwy9+ffaNYRQ4 3HdDQR57ntqkGZWQL8436DLjr6f0zjTdIfgBZgAfloGkBkwcuwMWBjhVyrETzHU9gbsc Dl/m5ntPkzQ4Tm7H6GpY0OS9nGtpCL1a7vS6PuW3B953VwUFZkLCbfyVN5/o921z3yeE ZsB6kBNA7Lo2hARjxhPB/BmNn7mXSh6/ITbBjKlzWaQhYQkEhQKoQngnPWrYD8wyDB53 GZug== X-Forwarded-Encrypted: i=1; AJvYcCUl1Huc+YXZe8SqjiNhjfHtC5y66Z0LyWr2OZWEtnqyfr6j2P+2Fw0iwqTGwhvDwvZXHb0hPgxvfx82@vger.kernel.org, AJvYcCUsEmcLb4EQ4sqAFId+WrQtNaelVYhpo50NT8ZttrbZ+qvTHvev6wIZxxK+XOk3IGeq7HIhrwj80xbf0A==@vger.kernel.org, AJvYcCXrVsKJhjg+8r28HVbYkYQSV95DPebl6FnzJnMYCL5HQUqmW36K2N/2hlrbOQMJDtV2NhkVhtRzRChgBMwy@vger.kernel.org X-Gm-Message-State: AOJu0YwXEgFrT809B2SbQ5wGod08n5/Zed63YPTPkpDf3MEnrTsSxh62 UBXAZDG8Ir6CDieGd3KFInkOOjjIVzSVCzBBjPLQqLGVY2HUeMieJXd5 X-Gm-Gg: ASbGncvb4eTbSfk+U5Es8Hij9ufVkihqzbBoa5/TTPVG9/LwZwu3SfxiEeX4vYjRe49 jhPpK6A9GCL4zjFLkPVLsoECH0WTDn2zGG3pBvwxGz+RAZL+O8K3srdZDMdqP6ov+6k/ZpYUn+r J/N6Fhco+UhRU0/t321+FRaiRl4RdmsPW0GeXGNoeOP3sm/g+k1UM9G/QXEm1LmVxtksqsFRoe5 paDFaPG947++HUsco0Etuqaw7diwRc2KC1igRAZoXzAKbZU+hNuCwiPN9GLQqMTaF+n+9w61Uji 8SpENBNiozWh0ttozCn6nt+Y1ukaqq2ZV/MHXZ0N0C1lHPdFmW9UMgqcUnAvg98+APzgszFc24G KhYWz3Rt9xoVZRWf+bvC0HJRjt6jO+wWn1Kc= X-Google-Smtp-Source: AGHT+IF05u/JDIMhtgLh0khNbq1QqeDlIvu2B6yXA50pUeJGPBi71zWRxLC1lIENpSW6PL2nvVmSRA== X-Received: by 2002:a05:6000:4b05:b0:3a4:e4ee:4ca9 with SMTP id ffacd0b85a97d-3b60dd72378mr9135810f8f.23.1752852344845; Fri, 18 Jul 2025 08:25:44 -0700 (PDT) Received: from demon-pc.localdomain ([86.121.79.159]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b61ca4893fsm2195780f8f.52.2025.07.18.08.25.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Jul 2025 08:25:44 -0700 (PDT) From: Cosmin Tanislav To: Cosmin Tanislav , Tomi Valkeinen , Mauro Carvalho Chehab , Rob Herring , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Julien Massot , Sakari Ailus , Laurent Pinchart , Greg Kroah-Hartman , Linus Walleij Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-staging@lists.linux.dev, linux-gpio@vger.kernel.org, Cosmin Tanislav Subject: [PATCH v7 14/24] dt-bindings: media: i2c: add MAX9296A, MAX96716A, MAX96792A Date: Fri, 18 Jul 2025 18:24:50 +0300 Message-ID: <20250718152500.2656391-15-demonsingur@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250718152500.2656391-1-demonsingur@gmail.com> References: <20250718152500.2656391-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The MAX9296A deserializer converts single or dual serial inputs to MIPI CSI-2 outputs. The GMSL2 links operate at a fixed rate of 3Gbps or 6Gbps in the forward direction and 187.5Mbps in the reverse direction. In GMSL1 mode, each serial link can be paired with 3.12Gbps or 1.5Gbps GMSL1 serializers or operate up to 4.5Gbps with GMSL2 serializers with GMSL1 backward compatibility. The MAX9296A supports mixed GMSL2 and GMSL1 links. The serial inputs operate independently, allowing videos with different timings and resolutions to be received on each input. MAX96716A supports both tunnel and pixel mode. MAX96792A supports both tunnel and pixel mode, and has two GMSL3 links. Signed-off-by: Cosmin Tanislav Acked-by: Rob Herring (Arm) --- .../bindings/media/i2c/maxim,max9296a.yaml | 242 ++++++++++++++++++ MAINTAINERS | 6 + 2 files changed, 248 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yaml diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yaml new file mode 100644 index 0000000000000..4f2b3b5b69cf4 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yaml @@ -0,0 +1,242 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# Copyright (C) 2024 Collabora Ltd. +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/maxim,max9296a.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Maxim MAX9296A GMSL2 to CSI-2 Deserializer + +maintainers: + - Cosmin Tanislav + +description: > + The MAX9296A deserializer converts single or dual serial inputs to + MIPI CSI-2 outputs. The GMSL2 links operate at a fixed rate of 3Gbps + or 6Gbps in the forward direction and 187.5Mbps in the reverse + direction. In GMSL1 mode, each serial link can be paired with 3.12Gbps + or 1.5Gbps GMSL1 serializers or operate up to 4.5Gbps with GMSL2 + serializers with GMSL1 backward compatibility. The MAX9296A supports + mixed GMSL2 and GMSL1 links. The serial inputs operate independently, + allowing videos with different timings and resolutions to be received + on each input. + + MAX96716A supports both tunnel and pixel mode. + + MAX96792A supports both tunnel and pixel mode, and has two GMSL3 links. + +properties: + compatible: + enum: + - maxim,max9296a + - maxim,max96716a + - maxim,max96792a + + reg: + maxItems: 1 + + powerdown-gpios: + maxItems: 1 + description: Specifier for the GPIO connected to the PWDNB pin. + + port0-poc-supply: + description: Regulator providing Power over Coax for GMSL port 0 + + port1-poc-supply: + description: Regulator providing Power over Coax for GMSL port 1 + + i2c-alias-pool: + maxItems: 2 + + i2c-atr: + type: object + additionalProperties: false + + properties: + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + patternProperties: + '^i2c@[0-1]$': + $ref: /schemas/i2c/i2c-controller.yaml# + unevaluatedProperties: false + properties: + reg: + items: + minimum: 0 + maximum: 1 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + patternProperties: + '^port@[0-1]$': + $ref: /schemas/graph.yaml#/properties/port + description: GMSL Input ports 0-1 + + '^port@[2-3]$': + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: CSI-2 Output ports 0-1 + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + properties: + data-lanes: + minItems: 1 + maxItems: 4 + + lane-polarities: + minItems: 1 + maxItems: 5 + + link-frequencies: + maxItems: 1 + + required: + - data-lanes + + anyOf: + - required: + - port@2 + - required: + - port@3 + +required: + - compatible + - reg + - ports + +additionalProperties: false + +allOf: + - $ref: /schemas/i2c/i2c-atr.yaml# + +dependentRequired: + i2c-atr: [i2c-alias-pool] + i2c-alias-pool: [i2c-atr] + +examples: + - | + #include + #include + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + deserializer@28 { + compatible = "maxim,max9296a"; + reg = <0x28>; + powerdown-gpios = <&main_gpio0 37 GPIO_ACTIVE_LOW>; + + i2c-alias-pool = <0x40 0x41>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + des_gmsl_in_0: endpoint { + remote-endpoint = <&ser_0_gmsl_out>; + }; + }; + + port@1 { + reg = <1>; + des_gmsl_in_1: endpoint { + remote-endpoint = <&ser_1_gmsl_out>; + }; + }; + + port@2 { + reg = <2>; + des_csi_out: endpoint { + data-lanes = <1 2 3 4>; + link-frequencies = /bits/ 64 <400000000>; + remote-endpoint = <&csi_in>; + }; + }; + }; + + i2c-atr { + #address-cells = <1>; + #size-cells = <0>; + + i2c@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + + serializer@40 { + compatible = "maxim,max96717", "maxim,max96717f"; + reg = <0x40>; + gpio-controller; + #gpio-cells = <2>; + #clock-cells = <0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + ser_0_csi_in: endpoint { + data-lanes = <1 2>; + remote-endpoint = <&sensor_0_out>; + }; + }; + + port@1 { + reg = <1>; + ser_0_gmsl_out: endpoint { + remote-endpoint = <&des_gmsl_in_0>; + }; + }; + }; + }; + }; + + i2c@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + + serializer@40 { + compatible = "maxim,max96717", "maxim,max96717f"; + reg = <0x40>; + gpio-controller; + #gpio-cells = <2>; + #clock-cells = <0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + ser_1_csi_in: endpoint { + data-lanes = <1 2>; + remote-endpoint = <&sensor_1_out>; + }; + }; + + port@1 { + reg = <1>; + ser_1_gmsl_out: endpoint { + remote-endpoint = <&des_gmsl_in_1>; + }; + }; + }; + }; + }; + }; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index 93e22dfd61c17..0eb1729ae1647 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14783,6 +14783,12 @@ S: Maintained F: Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.yaml F: drivers/iio/proximity/mb1232.c +MAXIM GMSL2/3 SERIALIZERS AND DESERIALIZERS +M: Cosmin Tanislav +L: linux-media@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yaml + MAXIM MAX11205 DRIVER M: Ramona Bolboaca L: linux-iio@vger.kernel.org -- 2.50.1