From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (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 C8C8B2E498D; Wed, 16 Jul 2025 19:31:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752694317; cv=none; b=lWPBPykCvSpUywmGJpm+lGSqRUkO39h2K1nXTyyTLJY96alWuZGQsCFFhNSeI0l7lQEODUxrx/jOWEgCWXY7S7P0bi3I9wb4f2XYX0f174Ec33okjR5/M2blmHDg2wEsxSpuOcowmbR2IJ2wTl+LmmTsFm8sfpt8JrmQnDuTWz0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752694317; c=relaxed/simple; bh=PYdrzdyyoX+qFtzk00HDX2VIPKqewRQ8tiJnoeGslNI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tJKPE0oyUnUtvPjAta9nz63823XxwsJbyHaBYdV2ElrEMoISUEBPDcvECetVxRgVzkgyTCVwdxKV9jWNVPdso9/EMEbvFpgD+iR1YE5z0JIKj+MOBAb5LGzQ5g11Qb9UndsrxDvpcvinE4HuZTPb0eBh/f6+pAkU7QGuC1Xip44= 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=hkz7ZA7g; arc=none smtp.client-ip=209.85.218.48 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="hkz7ZA7g" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-ae9be1697easo236483166b.1; Wed, 16 Jul 2025 12:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752694314; x=1753299114; 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=Wzny4taQLj1D3V6dnzLdhCUE6QI8w+14ASroQ3LbmuQ=; b=hkz7ZA7gclUckRdp+6C6zAc9T1yMYiJYoLUofvv/QImgVAmS66biVmPRkUIJutFmTl F8CQOentIPgu/tzPpkO8M3ptw/D+2G8xk9cTZiCULStw/MmfU+pJPRUi9VPXm9bI+eHK zhGT4alV0biCmbaGfKW5L1pj/jgXVCZtAtfgcv1dZqg+qdRz4kMuNzp9o4NPe9en72Ia Rk0/PpQDij5fKXloDcXOu0I0jrJQHNWBxZoEIEZNGVQh2oalzhoOzLBctaDikh1ZIBXp qr2oCVdVErRPfmGL1LC9WN9XYP40U+odGBykaUhM+olfadAbBgh3bNgphKEQLYUiP/l6 7NVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752694314; x=1753299114; 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=Wzny4taQLj1D3V6dnzLdhCUE6QI8w+14ASroQ3LbmuQ=; b=m3jOWgKe0P1NkbDTDHi0PHypswXrE+nTfY2oQicUCuEAAPiOHfq7Z+El05U4gBVeM4 896+pS5Yh47liJMM+I2WImQyHWwZmLsb8bPvA2y0PyIEwXenl7Tb78DXuO+i8KegqssH 3OCzolVmNnO0EC3f+52NGpi8zqtXIJrY1ZD9LEBqPVmDfTpPIXAPzOv9AyIY1tkARveB cLWg8s5cNI8oHEkMsjp9Y6RSMt08bIPNjNCDitRjxX9WPITweNjGoY1PeUbzA9rmfxGh 2EKYHndSFbkWmk1Ubeb+mHSvMIVekidLQ1Knr6uHFHWovDlggPoQSxyiMKqZp8gxekDp 1Qjg== X-Forwarded-Encrypted: i=1; AJvYcCVR2w4Dx9/wZlNijsRLhOxOGUOHEV2iDTKdBydp+2fxJ5W5G7/B943JJLmbCT8DLquZa7utCBolIVrlIj7f@vger.kernel.org, AJvYcCWPKeKps5OJJmjCBQVI/8IzzcVFwynSFh3BNYJvZnvSciovfCRKOI8ynOyZYI/bdcLuKrjgbszR2t+/@vger.kernel.org, AJvYcCXiItUVFPQtQu9+5M26FcCWM9E+0Ejd4KK1iAUtlPrDEUZwt0lioCYb912EdMxYw+mQvZ1bRMWmaYn47g==@vger.kernel.org X-Gm-Message-State: AOJu0Yzo5iL8UUw7ii6q0V3IsPna+fqrpBurUIGKsir+stMvBY2aPIRB XhbyEdI9rx6phbyjP3ohs63ix8R8xMKlZag7GbZF4Ri4RjBFgkyCTEY1 X-Gm-Gg: ASbGnctPOO/v5qGRD/9wD7F0yGbpwrvn7Fq+RspB749TnZUK+jMFVXKkNcoMQjfIzCz ih7siQGD2qv0sTFaandF2OurqjQ150kSUs+AIIevjNyBW06uP2Z/Ti+4Vp2WVEz3CBY8Yqk/8p1 iBdaYYD8hQ/+0gwFXY6I9UYbaMpmvuWq56irzCKBgq2A6DlLxSZaG9RHLF8RVgr3yR9SS54xBcy Dq9oSL6i4SDJ29kLK9dotTGL3VcyoUCN1R+V3RvPtf5AHNCEIh18khhBKj1iXEz/7VjmWFDAMBi GFaVEa91nuACKY960TeZSz0vY8wmO73UI+Udw8O859CRcoAg1G48spza408BJ7JQ3kxejF1d42A DqTzUoRyrmvY+nNv2E48Dp9G2LXMO0E9/OdKWDW+7vTDXaQ== X-Google-Smtp-Source: AGHT+IH59Jx/aoQ0zsOYKfIm8cr4n+ymlaW8F/b0YB09smct8JEhsygHq1XYVtPngtMYuVhz/99i7Q== X-Received: by 2002:a17:907:b816:b0:ad8:e448:6c64 with SMTP id a640c23a62f3a-aec4d7ec638mr49736766b.24.1752694313829; Wed, 16 Jul 2025 12:31:53 -0700 (PDT) Received: from demon-pc.localdomain ([188.27.131.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e82df54csm1226534666b.155.2025.07.16.12.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 12:31:53 -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 v6 14/24] dt-bindings: media: i2c: add MAX9296A, MAX96716A, MAX96792A Date: Wed, 16 Jul 2025 22:30:59 +0300 Message-ID: <20250716193111.942217-15-demonsingur@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250716193111.942217-1-demonsingur@gmail.com> References: <20250716193111.942217-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..c0a8916353f6a --- /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 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