From patchwork Mon May 12 21:28:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Tanislav X-Patchwork-Id: 889567 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (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 96BD729CB5E; Mon, 12 May 2025 21:29:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747085372; cv=none; b=LHqIvvV9wZWgiK/nEG5PK7vIqJRd6YumujoH/a++wLkc54aSwpGNgW4eDjchv07IFGu0fgeYWhHPThpuLr44uDR1GQf55ODex2VgI2T1cNb9AJ787ytgqAo57TM1Nmw+hoVYWcx6czcIytwOBB2TnlUqxb/89M6yuxoZDYS9WUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747085372; c=relaxed/simple; bh=o5byaMlhHGlMSCIpoXrG+qxfLcbYJDS79tKWslRns5I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kARN7j6+mfMTHgNzF7EAx4KVpBqnl7+jljvGIQrjxWxprrB8Eex1BwHyyJV6d4//taYUuLjfRgZpsXPxMzTdWWM+03C36sQy0jdvpkRuGnVqOQunDAiqBYq/BbamYvqc1uUF69kYzSEjCGXgySMSkf7YjyYbFzmR1AzHoAA6n9Y= 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=lr2A+VUC; arc=none smtp.client-ip=209.85.218.53 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="lr2A+VUC" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-acae7e7587dso777002366b.2; Mon, 12 May 2025 14:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747085368; x=1747690168; 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=yUjExWpqnqkhaHqTwS5d6A/KmbwfR5xvqQ+EyLJUmUg=; b=lr2A+VUCvkmR65WzalKEPeTk+xKAsxVIr1fVChouCZpAvCkMX+QlYo2Medf8G5cXts LdywmyOhwdxKH3AWfWF0pyG8GWU/gLPWZx3yTRLcWptUVqagBr6lw7eMyZIvRm0tq9+j eTAAuYNGKsvU2tf8CBP6CIqpM07CmPqf8ruvojBJwmSF8cGykty+xOkzqQofZmaLkPn9 7BDcDj3kQAJlEvOfRp89UzvCk1ts0BN0JMegYjWvnwWI+QBYeQlC7RF36ZctkqUvVHLz Lk8+VAgRas9SQDJ7jr3QBh3bHuZ3BRk7aPUG/N5UZ0MXDBefcey5PCwAcJs9ck5m08r9 R0Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747085368; x=1747690168; 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=yUjExWpqnqkhaHqTwS5d6A/KmbwfR5xvqQ+EyLJUmUg=; b=taSwJ9lXwB6igfOy+Q4kbQWzXZR5i7VGLwHi3RnxrNE7JggK4bdyfb97+0eN5v3LYN 6aHRWI7zi1Jc6gaz3lW2hnf6OLwcktErtpnaHvWDTLnawJLWXICgDKadbxeJxY6o9+ob MvfJvvkHgPui+RoBqRwbLFGUOxrY/eE/PVwq1xVmtc6CZg2KnIlBVnrpSMdiTMiD7Yuc 8dxTs1nImUw0mRAWnOKxYC8eOwpjUScpjjox3QmuiyIt9toijWExDxO67BuHGf+j0yxn 5BUge7wlzGwF7u2buqID18DMsdKqbWAVGFcOo7laMtc2XD2lyfkULUaLXOkRGAO6V8qy wU6w== X-Forwarded-Encrypted: i=1; AJvYcCURsSg6SMPlzuJFFNQpa6mSX1VGPIkIdIPLsnTgYG/Ov7mOFMo5Nnem18SSlWDPGfQBJIQoN/7QJzSPdDAN@vger.kernel.org, AJvYcCUo5+w8kZHs7OXuDAFxw/7tMYP3VJDzqKykaGZJTi/si1IB1aBFC0ojHy9LjY4bA5W76kKhnIgPuWdA@vger.kernel.org, AJvYcCVZ60sIxSbHwXxf5T/t2uwrTdYqFKX0jq6CX/vqhMJuaqRaNuyS05gn33uXcEWqoOWMO5iweE5Rtcsfzg==@vger.kernel.org, AJvYcCWEbK8cq/kvARxEogLx6OcaHDt7chMl3LlNQr7z0rGOTo1tS+GuxvoKCPOtBqYnmPql2SRQf1OIDiq1IQM=@vger.kernel.org X-Gm-Message-State: AOJu0YyHgHI/jOmyJlx/EbakWSs1rSidkdi6swVWq+QbaAy5luOYtws2 mbFK7YzDm/uApiLaM3k5w7ohQMjvtY0ykpTNw2rr06Cj0ODUeF8c X-Gm-Gg: ASbGncu3YyfcWKcRjlHSIcf1ZdkbVgtRvsGzk/IenbhxfDImD2vaZ9UcXWMGXxSPrKH 5GLaRvo2XtvqbToaZuw9ACDaYNc+IP22BwRCkKEhET+NHy3qCqJrQoGdjYFtSORVMicHY4O4EtB zTW5VEdxv3mcu4rynmTi0ttpgOcqCwPIxQcBP0MNa645hHTT31CZbnOTsFu7PEN4tA9qgVwFm9f S+Ax5XBUY5nG4HbqI/q5ZEs2zeTjUc1gRpT9zriEVKI+oKP1NQHd93bHpf/NZ0mxO4UiFqT9L91 scMBMJGhxfsljOHvuFDiL5phWPB/P1vxZ0bj6CRNZOGVJwtOrgx5DjxZ/OMeEyo= X-Google-Smtp-Source: AGHT+IFWlFaVbHuY1kbGRQBtbtAtGG8JV9Z3i/CvcDuNM+94mHSkI0CB6R6fEpp/a99+Nh9qqkSRZg== X-Received: by 2002:a17:907:3f03:b0:ad2:1262:3019 with SMTP id a640c23a62f3a-ad218fa54a1mr1544992266b.21.1747085367590; Mon, 12 May 2025 14:29:27 -0700 (PDT) Received: from demon-pc.localdomain ([188.27.128.5]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad23a5552a6sm472861466b.30.2025.05.12.14.29.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 May 2025 14:29:27 -0700 (PDT) From: Cosmin Tanislav To: Cc: Cosmin Tanislav , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Niklas_S=C3=B6derlund?= , Julien Massot , Catalin Marinas , Will Deacon , Greg Kroah-Hartman , Liam Girdwood , Mark Brown , Linus Walleij , Bartosz Golaszewski , Bjorn Andersson , Geert Uytterhoeven , Dmitry Baryshkov , Vignesh Raghavendra , =?utf-8?q?N=C3=ADcolas_F_=2E_R_=2E_A?= =?utf-8?q?_=2E_Prado?= , Taniya Das , Liu Ying , Ross Burton , Elinor Montmasson , Eric Biggers , Hans Verkuil , Sakari Ailus , AngeloGioacchino Del Regno , Zhi Mao , Dongcheng Yan , Benjamin Mugnier , Kieran Bingham , Tommaso Merciai , Dan Carpenter , Ricardo Ribalda , Laurentiu Palcu , 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 v3 14/19] dt-bindings: media: i2c: add MAX9296A, MAX96716A, MAX96792A Date: Tue, 13 May 2025 00:28:23 +0300 Message-ID: <20250512212832.3674722-15-demonsingur@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250512212832.3674722-1-demonsingur@gmail.com> References: <20250512212832.3674722-1-demonsingur@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- .../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 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 = <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"; + 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"; + 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 84078626ed5a..af17147238cb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14221,6 +14221,12 @@ S: Maintained F: Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.yaml F: drivers/iio/proximity/mb1232.c +MAXIM GMSL2 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