From nobody Tue Dec 16 15:35:48 2025 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 CFE9927AC4A; Tue, 6 May 2025 09:33:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746524034; cv=none; b=H+qffiNCy55dl3aQy/3T9AiyfPkMF/2/8tkQ0YHxziCcBVElaOoEZzAqoCyuKieP2dtG8J5ohgp50YG8pDZSeVznhBXo8j8DYD5RWD088jh5WIj7j4toehPGC2i87XbmR7jLw1/7tiGzNbI+2KQwY6xP51urJdSJpy14tc601Wg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746524034; c=relaxed/simple; bh=Qnk8ApjKHe7cIi2nAfJHQjcWlleZ4gTm+u7X22VKTFg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PIG2QoFxsWUM2o9EB3CVv1KxZl8gaWcZGZPrgroGfGJG1Wp+oN4rMn3j/ZWlR9UwFIHGO9D1r0ld+sXWK4tobptKX+Cu4TtamTymI6xMtt/gQiSzRLLwdcYfnq/+vsZ7PebwSurSMZ6XVSvZMJvUo0ia9ASiYLAdj8XLycWOKEg= 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=D7Ruh78o; arc=none smtp.client-ip=209.85.218.41 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="D7Ruh78o" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-ac3eb3fdd2eso164596166b.0; Tue, 06 May 2025 02:33:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746524031; x=1747128831; 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=qhA4vB5QX4cGx67rLq/kl8NrO4ybnOcVhUciXhl2JI0=; b=D7Ruh78oXIkMnzcehoKfpdh05ahiTcbMr7bApCcK+tiH+DtjQ+Fj0XAetzy08IibHa +koczC05V2dMyWbrTWnjHfISfKV7uUgeDmtEjUfPA+io6sNEwYO7U63xGs9XeFzu0X1s DMFiG4Bi/puqtMaHN/+8pYFbpG8CZDu2Tl/3g/XlaAUBgOXWnobI/tUnGoayhOFCMrT7 6E3BacANMnLqC1lzjRxsU5iEFt7V4w2nKTKZ3DIvL5dYLKUSqDAYjWLMPgxEsS0JPNot Wh0U4rA5qbUI+WRFTM5ddSConFOugBwRiEq53RJnoq0EAfhbPx6+0gFVXpmOqLsz7S1P EkuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746524031; x=1747128831; 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=qhA4vB5QX4cGx67rLq/kl8NrO4ybnOcVhUciXhl2JI0=; b=hg+0zt3sD2k10ASzedF+bVBlzt3t1bvFW2IaWjHL+XwDOgvBlkmzE1yt9LkwsoLN4G 2mAlg323ENGaBLC0Xlxj+PaRD6uZtZpYGSAqX6otK0BhK779fTJVPVuM3/3OgzbsLy6U a6PXYnfcFjG+wMNCRTmhyCrdyMqEqXkxRus2TOGYJmJdQROrSNDopvVgY+3sE9PjmtbP OgcHiF/UQFw3aqgpzKbnN36Xhr9hrjEfTpuhQjOhTkh/kCgSwXXBgax6wRBR7gGa+wv6 qmrYv0dHYKC6fhc9ZpkxbCqmu57qgfP9XpeASg5ng/yRDAPqR0qmikmal5Pq+7Zgel5s YA3A== X-Forwarded-Encrypted: i=1; AJvYcCXZ9FyhdTFiWVAeJvNZryEQ/YNBB0jUcGOMADydCim3ekrM7eXd8jWTaP3iz0OJJeey12bIwgwxzvRB@vger.kernel.org, AJvYcCXkMhDHlnPDo8CxT+eBVXW7P670QY5ffK0b7YANbbByLrFCIwJN8efu5MwbPKmJst9cKFGgd7om1AIdsjSi@vger.kernel.org X-Gm-Message-State: AOJu0YzLIj9fupL/8tNLEzjyNhUoNRcBGyZOGcBYjwwZa92IJrAAe59J N8TIqs/LF7krKQPFP7BdRoQ4ZMwEhhXtjKJang4ul5F2zrwdAVzK X-Gm-Gg: ASbGncuKZYGIWL1AhmjnJk29DR4AK8PbwO427nET0iQLv0jOnZq72G080SdrIoDxPn6 8xudjhoChv95I+hCTaP4l6i6nNe6fUKONRzEwm34z2RlJJf+XbvwIUCscKRVtuJK/cKt9qCHdic gUT3YgbC3fWn4xR2TqseEYJVarvbnT7+5KV8HV8bntRw+2Hq2sPorbbAs9yj/pyf2mhhm1QYap2 RO4kgv/5/O8h1F9/Q5t8lmIJA/4K+n6rHJdOidJG6cCaeRqKOpnHe/CAq04wat6qQhGqwbO6H7y 6dR+/5QwgQ7T45WXz4+cf/LCEuBr4y3l X-Google-Smtp-Source: AGHT+IFtCBcr7dFXi8hYBmPOb4L/CnUpKjpcGPLBRC3hn7FKEobypbJ4vI4+M83ZIMj8oevyLZNh3g== X-Received: by 2002:a17:906:c142:b0:ace:c416:4231 with SMTP id a640c23a62f3a-ad17b470739mr1692264466b.12.1746524030821; Tue, 06 May 2025 02:33:50 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad1e1292696sm25594666b.111.2025.05.06.02.33.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 02:33:50 -0700 (PDT) From: Svyatoslav Ryhel To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Svyatoslav Ryhel Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 1/2] dt-bindings: display: bridge: Document Solomon SSD2825 Date: Tue, 6 May 2025 12:33:39 +0300 Message-ID: <20250506093340.106575-2-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250506093340.106575-1-clamor95@gmail.com> References: <20250506093340.106575-1-clamor95@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" Add bindings for Solomon SSD2825 MIPI master bridge chip that connects an application processor with traditional parallel LCD interface and an LCD driver with MIPI slave interface. The SSD2825 supports both parallel RGB interface and serial SPI interface. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Krzysztof Kozlowski --- .../display/bridge/solomon,ssd2825.yaml | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/solomo= n,ssd2825.yaml diff --git a/Documentation/devicetree/bindings/display/bridge/solomon,ssd28= 25.yaml b/Documentation/devicetree/bindings/display/bridge/solomon,ssd2825.= yaml new file mode 100644 index 000000000000..e2d293d623b8 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/solomon,ssd2825.yaml @@ -0,0 +1,141 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/solomon,ssd2825.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Solomon SSD2825 RGB to MIPI-DSI bridge + +maintainers: + - Svyatoslav Ryhel + +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml# + +properties: + compatible: + const: solomon,ssd2825 + + reg: + maxItems: 1 + + reset-gpios: true + + dvdd-supply: + description: Regulator for 1.2V digital power supply. + + avdd-supply: + description: Regulator for 1.2V analog power supply. + + vddio-supply: + description: Regulator for 1.8V IO power supply. + + spi-max-frequency: + maximum: 1000000 + + spi-cpha: true + spi-cpol: true + + clocks: + maxItems: 1 + description: Reference TX_CLK used before PLL is locked. + + solomon,hs-zero-delay-ns: + description: + HS zero delay period + minimum: 0 + maximum: 1700 + default: 133 + + solomon,hs-prep-delay-ns: + description: + HS prep delay period + minimum: 0 + maximum: 1728 + default: 40 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: + Video port for RGB input + + properties: + endpoint: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + unevaluatedProperties: false + + properties: + bus-width: + enum: [ 16, 18, 24 ] + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: + Video port for DSI output (panel or connector) + + required: + - port@0 + - port@1 + +required: + - compatible + - ports + +additionalProperties: false + +examples: + - | + #include + + spi { + #address-cells =3D <1>; + #size-cells =3D <0>; + + dsi@2 { + compatible =3D "solomon,ssd2825"; + reg =3D <2>; + + spi-max-frequency =3D <1000000>; + + spi-cpha; + spi-cpol; + + reset-gpios =3D <&gpio 114 GPIO_ACTIVE_LOW>; + + dvdd-supply =3D <&vdd_1v2>; + avdd-supply =3D <&vdd_1v2>; + vddio-supply =3D <&vdd_1v8_io>; + + solomon,hs-zero-delay-ns =3D <300>; + solomon,hs-prep-delay-ns =3D <65>; + + clocks =3D <&ssd2825_tx_clk>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + bridge_input: endpoint { + remote-endpoint =3D <&dpi_output>; + bus-width =3D <24>; + }; + }; + + port@1 { + reg =3D <1>; + + bridge_output: endpoint { + remote-endpoint =3D <&panel_input>; + }; + }; + }; + }; + }; --=20 2.48.1 From nobody Tue Dec 16 15:35:48 2025 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 7E29C27B4E2; Tue, 6 May 2025 09:33:54 +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=1746524037; cv=none; b=YGQ0afJNjc7+kjUgtZLIrcRZh7Oxu4O0T9+qNMqZbuCa/bSUt+U+X3gklRbDepuO3lEl52G0CmUdTstk9/t/CKrQxD22XfseJCyoQx1MtjdrrgvfmdkVndEGn9QqxxhYzZ2+qyvYY+D2WMkDSocRmEGDDL9WuF1CO76Lx6CoYZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746524037; c=relaxed/simple; bh=WysIGGmY0lso+kjWt0YdA45tvmMAguUYCnZnE5xEE3c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Oji95IBRentemM1a2eBiGRIT9gVrg6gGnGdEJGCO/ZwWpjf2XmgtWrlxLvx4IS7ZFv2PaoIR9evhrKA8vWtQE3z04Kws9yVGfFvsQsScl38oabTpIE8bM5IEEzG2qQeO2MUcI9hL5+BA7VkPpSaHgffFRlQVwjUTSKEnuHpLL7U= 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=bFg2fTl3; 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="bFg2fTl3" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-ac289147833so1002640566b.2; Tue, 06 May 2025 02:33:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746524033; x=1747128833; 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=lpfNGkazVHCZjp/JXYaucKjakTWNIV9iVsWHCouQB2I=; b=bFg2fTl3rh8hMbxUC/DuozYpnzqW1tIPkkSf+Ushqgc2JPWvBKji05SIZDRqM8i5JF p3OHd7ACFNCX2Fj3JRxz2UWC2Lo8huv7MLH6WZYpZuK5/TgdeA1qc4ODF8yVSsBF0E6J QcGjC938ZCtRPL6llQ7yzuRak/UPwUf4uW1tZS+gQNknXCEsUPbiNqpyF1tSwBJ7vU+Q oStLQUE+OuI6KzDunZ5ulVsROe7Ghck/OjPVUoKz2KKEaGQgrhGNonyWl8sjGPHGz5Rc SJDENT3qTGTKcrmbJovFahYNLULakbYJfJj4TvwJKs4tlfvpPf1gRtGROLyvZvXzlltg H+Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746524033; x=1747128833; 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=lpfNGkazVHCZjp/JXYaucKjakTWNIV9iVsWHCouQB2I=; b=t6Du0i+qBSw78W+qaadoLq/pb3KmVjFop2i6pfKI6RcRG2oQ35pGvoaRmaocrS+HvE FWTZVsq/39YWoUMdxNz6SPrJnN36x35/q/JjsW2WViIfFxx5u7f6iV0u0PQFgo8Jh3y9 ZBMHMi7d3yD78pYddDJ6ws8ccqzHGWFXBR77Gc/rCHANtn795S9zoktcXL1OpHKW5qCI 7eD3npqKE6z06FpCat0ZoQPGObFqUlcM2C1f1tLi/UFqVEXKvd3hytEUzu5CoL6UURyt PJJm8Q9Sey8LByVFtvYEpslnvzldKNhctvlYRGfQizbs+i668oEWS3byLbaH6zdM1PUf rMdA== X-Forwarded-Encrypted: i=1; AJvYcCV1wUeBe8pd9zntfnmLwDrLdv+N6yKt9nJ8blpBrEGy8vadQoQQYoRfAQKy02I1gFglfMIzR3HjgJqc@vger.kernel.org, AJvYcCWMlIrpsM8sGVR/WNsT3sXqyTO8v7yi0ozmY56xhQbdK/rXDRE3DbBbaU7HrbrgPvRoy0VCND/7Lsef6iek@vger.kernel.org X-Gm-Message-State: AOJu0YwnKAIj7az5zvvCsY6DANC3yL9gbPDPUXHgiRlFSS8rRHh7pgSz Ni50CQeM+GlJOL65+aTS++D1/HLiZ4GsHgHDeFzCfkGlZaOXn+LDHlwl4Q== X-Gm-Gg: ASbGncsLnUo6dBEEu4GDf2eH/ygABZ+ZYmZV3qHmBAdd+dZl9xdV+uq/b6xhsXmw8dk YGhdEvPNHlcA8JLl0Bi0S0YoG7xVoxSNNVA2yuA9u102RwDv8hDkW2I32MG1761kMvuTlXB/Ls0 SpHR5heWq5b0EuVkKAgFK85zwp+gCfTyC1/E9SZuCEhVsdG7mj2QuHRgYFsPw5bVrx5v+U1/T3Q VZgQu2m0Yb1lI9UbZefvNOJhgR+9/VOzVwLl7WcFxJA3h9L2289HZ8S+6+ikaora3CPBG61vida kHLG3jpCHuskrVzPYytlXx9UykhdvWFk X-Google-Smtp-Source: AGHT+IF5jLMsgRLqWw45+JEsABG4612S23OPdW4W+Ggsa8WkRZS9umJ1nn1HBFK+MUXbSs+bdReBnA== X-Received: by 2002:a17:907:3991:b0:ac3:3d10:6f with SMTP id a640c23a62f3a-ad1d346eac2mr193763666b.8.1746524032485; Tue, 06 May 2025 02:33:52 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad1e1292696sm25594666b.111.2025.05.06.02.33.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 02:33:52 -0700 (PDT) From: Svyatoslav Ryhel To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Svyatoslav Ryhel Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 2/2] drm: bridge: Add support for Solomon SSD2825 RGB/DSI bridge Date: Tue, 6 May 2025 12:33:40 +0300 Message-ID: <20250506093340.106575-3-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250506093340.106575-1-clamor95@gmail.com> References: <20250506093340.106575-1-clamor95@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" SSD2825 is a cost-effective MIPI Bridge Chip solution targeting mainly smartphones. It can convert 24bit RGB interface into 4-lane MIPI-DSI interface to drive display modules of up to 800 x 1366, while supporting AMOLED, a-si LCD or LTPS panel technologies for smartphone applications. Signed-off-by: Svyatoslav Ryhel --- drivers/gpu/drm/bridge/Kconfig | 13 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/ssd2825.c | 812 +++++++++++++++++++++++++++++++ 3 files changed, 826 insertions(+) create mode 100644 drivers/gpu/drm/bridge/ssd2825.c diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index b9e0ca85226a..767b3d5a4488 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -316,6 +316,19 @@ config DRM_SIMPLE_BRIDGE Support for non-programmable DRM bridges, such as ADI ADV7123, TI THS8134 and THS8135 or passive resistor ladder DACs. =20 +config DRM_SOLOMON_SSD2825 + tristate "SSD2825 RGB/DSI bridge" + depends on SPI_MASTER && OF + select DRM_MIPI_DSI + select DRM_KMS_HELPER + select DRM_PANEL + help + Say Y here if you want support for the Solomon SSD2825 RGB/DSI + SPI bridge driver. + + Say M here if you want to support this hardware as a module. + The module will be named "solomon-ssd2825". + config DRM_THINE_THC63LVD1024 tristate "Thine THC63LVD1024 LVDS decoder bridge" depends on OF diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makef= ile index 245e8a27e3fc..19f5a09d9291 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_DRM_SIL_SII8620) +=3D sil-sii8620.o obj-$(CONFIG_DRM_SII902X) +=3D sii902x.o obj-$(CONFIG_DRM_SII9234) +=3D sii9234.o obj-$(CONFIG_DRM_SIMPLE_BRIDGE) +=3D simple-bridge.o +obj-$(CONFIG_DRM_SOLOMON_SSD2825) +=3D ssd2825.o obj-$(CONFIG_DRM_THINE_THC63LVD1024) +=3D thc63lvd1024.o obj-$(CONFIG_DRM_TOSHIBA_TC358762) +=3D tc358762.o obj-$(CONFIG_DRM_TOSHIBA_TC358764) +=3D tc358764.o diff --git a/drivers/gpu/drm/bridge/ssd2825.c b/drivers/gpu/drm/bridge/ssd2= 825.c new file mode 100644 index 000000000000..a6c83068ef0c --- /dev/null +++ b/drivers/gpu/drm/bridge/ssd2825.c @@ -0,0 +1,812 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include