From nobody Wed Oct 8 05:57:41 2025 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (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 D7E8C28DEFA; Wed, 2 Jul 2025 13:21:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751462507; cv=none; b=rToZxOfG93Fn3ODrDbSZABIB88W+7vrcFUy7V9YX7Wi/SJXdmB3kEmZMYNJtZwq82hKlRxzf5Q061i54LhdLxSoh/zdpZjO7lJ7DTLHEe4Gda0lAQLGnAur96UlBXu8QCZ284QcRx92GA/DJNxtlNsTU8VsZMDqlTboHFmu/yME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751462507; c=relaxed/simple; bh=Mh8LKlWFv2aIRaZJ0PIrPQ8QGfIFlvbi3X0tie7EnzI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CxQFDaDC0eb8nZ2DKHb08oz1wCAX0lOOOiEYDptkjJcqzGtNQLDR+v96nIhzeGRqAgNemlwL1Q7ZFeY32rXEsU0bWZunBlnPTLjnrLQgNk81FHGt/Wr3cQDGbqgKwtIHTSUvvZmt1ZWwGFRI5iDQSQ+J9AtNC4tyIKwq5wGKm4E= 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=h7WiiRE3; arc=none smtp.client-ip=209.85.218.43 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="h7WiiRE3" Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-ae3c5f666bfso98240966b.3; Wed, 02 Jul 2025 06:21:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751462502; x=1752067302; 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=DQsDsouXGnTEHD/Y5a06yBAM+3Z7GZ4pZgoIjiS96B0=; b=h7WiiRE3Q1AwhKhrWBSrt2fASkXzMMR7yeS2IOa0xJCl7QrYCoYY5NJy+8JQDowmpu xO2q80dHGE3mRgTtaQvccusgEqkh3Ad/cbczoF3Q48THJWdZvW28n5XoW99rbwq2kLay K69kn4FG8AflNDAfppUNXi9Rm7lmn9xtaMPmsRXNN/Saqms6/mxEHCBp2XtndtISUBBn bysCtc04yHaQ7t5w4Ezzi77x44lP7439ci4ClEbB21GNmpmG3UcrHX7m2UkIwvRkxWvb kAlEhN5ykN0wjf+ClBZxbr0l4A2Sk6w8pr1S6iNsK76tNLmW/bfAzjqhjWn2hrt3ZE4Y 2a5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751462502; x=1752067302; 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=DQsDsouXGnTEHD/Y5a06yBAM+3Z7GZ4pZgoIjiS96B0=; b=KxVOHqeQbiCrXMHhO9r+e+gXVjS8neqUtU+lQP5PN0IDOGxSkj77uMrORssAhUlLDu y591batDoDVqi6720uVbONsEcGSijzdvi5qYP+92Bc/drlAAmFV5MysO1PeEAh7Kp2ab 4s/dXghlNnOXdqJy7GoFcR3Zg/I7MGCR/K80c9wuloWWZlaNr5gbPDsTtnu/jE5CnZNL boE91pA5brgk6XObdY+2tmJaNTHEAmgqRnVnM0gBi0BfZ9UzPw4BCr93hTLn+ntTek4X 4MJcvTbaYQAGW5o1nm2l14TuOT5zN9OE5x0YwrjrMZ7IfZUTDUKokea4fG5kF4J0HbFS BKWw== X-Forwarded-Encrypted: i=1; AJvYcCVuOcOpKQ07X8vgustq3WiJpGnSLhYwToLdhl+YLfUNZ/Tv8DPweaOR3nqFM3U8yjZwGMTkBHQANuf8hw==@vger.kernel.org, AJvYcCWNjuYyCoHTvccyURNTCSOvicsJugfi6ZBeFJmpiT7gS1U2z7r9XCNMN8VmqcfuUVs3rcr7v5DPA1IEL7UM@vger.kernel.org, AJvYcCWYCkG0BpbvYeTbPiuvRm/P2XR0S7UyKAoz3Leqe0VBY42AScX1si+NAptyuqmboCNFL6NWvNQRrHcB@vger.kernel.org X-Gm-Message-State: AOJu0YzrDG6cTrKeZLuCop/qS0n7cB56xS/rF7/vMEfXrc1AaE56Z5tO 0aPGMQAaKV8wzl8VuuNP4JQekB3/hTB8EfP6Elb1SAspa/xctf2Z6YNW X-Gm-Gg: ASbGncvSSubvHZ+7ySCP9n1h6mHt+8XVM4sQUdaAQPDqN5tEq0wtexI0//j61CsiH/w HUmw4KRYpmQuxR9w37C+7TgG8trln61rBhL36VvqWLxB3wnY06wIn0y3Wg9593fXWcgkjfkSUW+ cvPoEZs+lB6yc/Ir3nJcjfBowaa/Zk4+vTZEYch53js4VKXqTFrDeIQnSbAmTIoFIAQm5hGVpb9 c7KgO8VjpOSi+YabvGPuvOHeNCyX6fg13SqZlbJRBa0nvNDqxlJMb324npkQ2SCsO9Fh5XrmgKV G4DIeLKsSmdLBvPPyS9YJapgu/84mWVjgFQvi237P96iG3k9zjYxub0fxLuOLJHE7xtBa8VfItQ tr62YJIXv6w== X-Google-Smtp-Source: AGHT+IGQo1X2tG/+haFZYHCJIgDFrHhpayF4pnl9EavUV/pXr+ODu0WNrPTbhTs53mc+YL9D5CTAcQ== X-Received: by 2002:a17:907:7ba3:b0:add:f62e:a300 with SMTP id a640c23a62f3a-ae3c2b12d95mr277375566b.2.1751462501873; Wed, 02 Jul 2025 06:21:41 -0700 (PDT) Received: from demon-pc.localdomain ([188.27.131.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae35363b094sm1063800966b.22.2025.07.02.06.21.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 06:21:41 -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 v5 14/24] dt-bindings: media: i2c: add MAX9296A, MAX96716A, MAX96792A Date: Wed, 2 Jul 2025 16:20:40 +0300 Message-ID: <20250702132104.1537926-15-demonsingur@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250702132104.1537926-1-demonsingur@gmail.com> References: <20250702132104.1537926-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: quoted-printable Content-Type: text/plain; charset="utf-8" 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,max92= 96a.yaml diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yam= l b/Documentation/devicetree/bindings/media/i2c/maxim,max9296a.yaml new file mode 100644 index 000000000000..c0a8916353f6 --- /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 =3D <1>; + #size-cells =3D <0>; + + deserializer@28 { + compatible =3D "maxim,max9296a"; + reg =3D <0x28>; + powerdown-gpios =3D <&main_gpio0 37 GPIO_ACTIVE_LOW>; + + i2c-alias-pool =3D <0x40 0x41>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + des_gmsl_in_0: endpoint { + remote-endpoint =3D <&ser_0_gmsl_out>; + }; + }; + + port@1 { + reg =3D <1>; + des_gmsl_in_1: endpoint { + remote-endpoint =3D <&ser_1_gmsl_out>; + }; + }; + + port@2 { + reg =3D <2>; + des_csi_out: endpoint { + data-lanes =3D <1 2 3 4>; + link-frequencies =3D /bits/ 64 <400000000>; + remote-endpoint =3D <&csi_in>; + }; + }; + }; + + i2c-atr { + #address-cells =3D <1>; + #size-cells =3D <0>; + + i2c@0 { + #address-cells =3D <1>; + #size-cells =3D <0>; + reg =3D <0>; + + serializer@40 { + compatible =3D "maxim,max96717"; + reg =3D <0x40>; + gpio-controller; + #gpio-cells =3D <2>; + #clock-cells =3D <0>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + ser_0_csi_in: endpoint { + data-lanes =3D <1 2>; + remote-endpoint =3D <&sensor_0_out>; + }; + }; + + port@1 { + reg =3D <1>; + ser_0_gmsl_out: endpoint { + remote-endpoint =3D <&des_gmsl_in_0>; + }; + }; + }; + }; + }; + + i2c@1 { + #address-cells =3D <1>; + #size-cells =3D <0>; + reg =3D <1>; + + serializer@40 { + compatible =3D "maxim,max96717"; + reg =3D <0x40>; + gpio-controller; + #gpio-cells =3D <2>; + #clock-cells =3D <0>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + ser_1_csi_in: endpoint { + data-lanes =3D <1 2>; + remote-endpoint =3D <&sensor_1_out>; + }; + }; + + port@1 { + reg =3D <1>; + ser_1_gmsl_out: endpoint { + remote-endpoint =3D <&des_gmsl_in_1>; + }; + }; + }; + }; + }; + }; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index 2fd3edef879f..334195989c00 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14764,6 +14764,12 @@ S: Maintained F: Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.yaml F: drivers/iio/proximity/mb1232.c =20 +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 --=20 2.50.0