From nobody Fri Dec 19 13:49:39 2025 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (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 25C37221727; Mon, 17 Feb 2025 14:09:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739801370; cv=none; b=I/oXIWU1ibuaYD9QW4GaJ2LXFTVef1vjdLs27Yipart6vv/4J34FCiadbygU1jQx6NO89CfbLHwtiBzmIMjvdRCpeyP8f7scOaGr1kLAN5eAzgJqnbwIH/+Rgpxnqxmae8MX0wfrgi0i1B5cEnf/HuQFaYxsc7cHh+CFCjO6Z9c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739801370; c=relaxed/simple; bh=S+HfPGi/6ba6d0UDLExm1JLQtrRLOt9XJJit5Kyy3RA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VJ8sxSWKb7PaZo/rQVcARMTTdAknKLvD0VlpFyFy8D46AsdnIWKEGN/IcXJsLROncjP9CgpdMNdT/bf7OIBLjCaZ/TPf6lmAYVGsuOI103urjxUlkzwEZv5gqClNWYnUoZ9ZM0tmnn07W14dluujeZ4pFiRqrRNU4TiHU0VT5gQ= 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=hJkIrOvY; arc=none smtp.client-ip=209.85.167.44 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="hJkIrOvY" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-546202d633dso1104713e87.2; Mon, 17 Feb 2025 06:09:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739801366; x=1740406166; 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=NBvpaDEnRYexWP0/rCT65mQ1l4vlz411qKmQ+5kOMDY=; b=hJkIrOvYP1lqumE9DGc7B9OZd32z6yXXhml7uAU0tuuocDpdaLdkgU21FeWvtyI3iV Vp9TwYhRhqz6CZYO/B0aLBBfcqITgdUbrGiR0ACZRT2chqoHZkNyTxqiem2FISOY6B3s 5VH7TxM9kqEvgfVfpwlChxHJL+Rml+vnl2E2EpJMiFv08lzLsA3lX1Esq4gNICnNr8Sy u9AeYe0V+tEdcIHybbfquG8zSrYf8dBbIZGzfbHjFIHIPXCn5OR69Z4tsae1lFUEvnWv bX2+ioOgdLyhPbF+7ymzmmzgifVxRLNgukT8Nl7AHwvmJmMsMzvRj+2/q1ogHHnnfeTd ZMvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739801366; x=1740406166; 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=NBvpaDEnRYexWP0/rCT65mQ1l4vlz411qKmQ+5kOMDY=; b=M51Qpue/d4UIDR2gMaCQmjMUFEA0ILp4LUQubyhZlpo6/dMPeSfXyIxCFJ5sABKex/ oeuGP+00Y93Ncw1vGHeJb2zYTtjhRu2R9W9UWQImbVvT1+LRiKqEdYmzFONfq2bXEgqc YffKKihy3k5ZhzdCbjiEDCEXJh2R4zwQIhPHuNFLcsHNEbO4kQMc4RnQcR4NrRSPWiZ2 +czQsp0bWA/ywRHQnF1lLsxSNq3hNnsfW8DiydXnm4H3Hd4tyf06Vj/9OR5EaZuV7FyU ZxIc7pDg+jvnO4C99imYCyHozW4DVDawwabsOQ/TLcP44pT5B3nGep2hJJXCpoaZGQBx VaQw== X-Forwarded-Encrypted: i=1; AJvYcCWgKrXuwQNqm5i5FRXYjJuaN47kmlbPVT8E4o0OwVGB0u/1JaYa4IGWgNXOpoRKD1bGJUTc1He1qUfR@vger.kernel.org, AJvYcCWzcx2lk3DYsAYDeSMAqR1yULxVqgYsEO1B/npNNrDrMQ8cJcDyd6rP9sLFz6mOsLCsh8uOsOctY6XaoZcO@vger.kernel.org X-Gm-Message-State: AOJu0Yx+lPwjsZ2LuhMe9TuAf4UpglqpJKyPCzpDP/TJvVTvWcbLnudJ y3dOezX3+tRSZ9dsSOQX8THiwJcuhWxWf02BtkwZ9eIRQKl4LGpl X-Gm-Gg: ASbGncss8+6pWtzuRkFBpVUJVMvSINpE1dKq3+B9Qyz0Y+T6QoUEwaE4aZkbRs0zgbi RTdW+OTdVCWm7S5hv+FvY0qsLCDWlJtJJoV7/oI3CSjtY5hHjDesSsLtCKtCiSTPVFe72zQHq6O mRr8AQANVEU82e/NdzQnF0/1OtTaIpLNt2BHT3SSMX3RM3I4VzYOqOc+vxeKkLMk0XjIXRh1Wyk 1Ndp4bpV9MMyz/mESLCHURfD1QmZouQEZ4Mf+4D/1Rj6xhUExSdX30LEcBR2LdAaG2BZxDsoCXR zNBYyg== X-Google-Smtp-Source: AGHT+IFxia5DKdKWgX6hkQJUH6EY+CAt795XfnBfkMfO9oSW6FA40NQb9/QyEftvaXCvsImNdilT9A== X-Received: by 2002:a05:6512:3a91:b0:545:b89:30a4 with SMTP id 2adb3069b0e04-5452fe6369fmr2389050e87.29.1739801364482; Mon, 17 Feb 2025 06:09:24 -0800 (PST) Received: from xeon.. ([188.163.112.51]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54531b8ac1dsm866855e87.75.2025.02.17.06.09.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 06:09:23 -0800 (PST) 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 v2 1/2] dt-bindings: display: bridge: Document Solomon SSD2825 Date: Mon, 17 Feb 2025 16:09:09 +0200 Message-ID: <20250217140910.108175-2-clamor95@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217140910.108175-1-clamor95@gmail.com> References: <20250217140910.108175-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.43.0 From nobody Fri Dec 19 13:49:39 2025 Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) (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 B7BD4221DA4; Mon, 17 Feb 2025 14:09:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739801371; cv=none; b=WN8g9ERLGNfDG80Cc62B6QqzCo+jCbxgj3WS+Q4ONdcRjI+KqWvHTYaVdjCtcRS+UuujY8ojH0/NAtKpxt/zv6zduwtQ50HgzP4KytZ5oLaOWa9zpB7BeRc9ZTkIsVua3a4K3HyWCtWjaS54QyaTRSo+DHOUGcu3v/Dn2S+jaXE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739801371; c=relaxed/simple; bh=tslJuZYU9T70pnWczoEiXb1ETCjLy9vCbPsSNnDiQdE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pbAAqQXAyy3tvBwrnmtncZbKxQcK/HRu/XRuGmomoOE0eCRk3BIXyxo/LIBt5UcPGHw5/0ycH5JO3+DyTKNWq0n23OTGR6ko4AJHbzK4SKVhIfJhmKm83mIospKUbNG/SCXHOK88X0bfbqKVxdGAfQ9qyAodErJEWYw3/+Eqg8w= 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=QeaTOJkN; arc=none smtp.client-ip=209.85.208.179 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="QeaTOJkN" Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-307bc125e2eso41904321fa.3; Mon, 17 Feb 2025 06:09:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739801367; x=1740406167; 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=ciy+5XcpcAscK2izNPHwRlg361ofDyui4agTOOyCNlM=; b=QeaTOJkN6F4+De4ywUctpA4NPveAr8rpuOH9CfkxjtfD1stqVxs8AZDwZYHPxIwAMW COMH9eu5pcbd0zS3vCThYyim5RKiL/m3hATardtVf7Uip5+4hsoUpawRvkPfmckBk4u9 hZ6PvdB7y9zsgkz01dU87AgQxNmY6n/EFFAWylwLjB898K4A9c+Fk/Q2TFswpzhT9mxR ffOOqpbWKn938+vA/qRBkwE3Pgc8GaPMXfTAFNIYO9QU+udSfb7vbAcEKBWwDx9Adetf QuisA8MnsmyqQ7jpfRopH/xA+pnnexvUv2q+qQDUYnLs2QJJrQrTFLwz13lAh0q4NxRQ 3E5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739801367; x=1740406167; 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=ciy+5XcpcAscK2izNPHwRlg361ofDyui4agTOOyCNlM=; b=i6qmCtfVoCtqQ60cXs2mQceg9hqzf644jxHlXb6Y9D4AmYnj/GCRWZWZNnuU0bBPaL fteIgrju3c48t8HXCRSyswZTjT/OVCtPs42CkSQs82Ugz/YV1rxnmzEcR+Je6/6d+5PX 2FjGie0kOW9NT5vikMiRekhFC/nt75LMJqetsCYMfr5Kxuhm9uH6Ul+0GML9hhz7GX/h Si3W+Unyj5PusJeN/gGk/B5EIG9KFQR90yo3Sc/PI76yypz61tREUFyWX/wgdiJh6OEQ eXmQVwardm7Wxe2NEDdGMmP7Uyey4u0NJkz7OyBuMWjOV/EALmJ3giOpSYtyI+aZ8rb/ 8fSg== X-Forwarded-Encrypted: i=1; AJvYcCVcM7/YYHrVIueYxOaKbfC4IKwGbMa0G2VRXeRj0FDg4S0AVsFBLzYFmNNVwlItDhxZpxJsXqdXy7Ur@vger.kernel.org, AJvYcCXuoWYTFLYFoKkdOd0iOLD7GFvoe9t70Mr21pl2d+Hh2SZ16gEb0fVSyrrjispTvlQ+r71rIyEUeXt7NnCq@vger.kernel.org X-Gm-Message-State: AOJu0YzGV+163ox6kDOh7oiWuAsbReNbwG7QCk2NTPaP+9DXT9uCiKbJ 8ZJo1jgFAyFfbmdMUhVQ/px0/VrhNNd73jGlgwowRufYSbDVrge7 X-Gm-Gg: ASbGncuwU+HtoprTwrMh+aqY8laTcjZ6gxeaoLy5lZVMY4CrBn3jtdz+Q/eewDRwPRK OlXavIXPoOLcSV9g7Qm9FadErg5kk75kK/twl2Z4RgFEaTGxZpWjkV0vEEG04vljF+wHokezrbj BJD4PnFXNgtKYtmQdiR/8hP3REQ9zn6tKUYa9IZQS4FnzCsKrrErzyunv+RDY7eJJW3oGQqyZ9v 5vxtKJDypInHUNm4cN1Q1pNq77IN6iS+rNItnFKGZDxT4PR4SPR7lSOMVFGYuH2YM+EOASVZset UAq0NQ== X-Google-Smtp-Source: AGHT+IHfLywelDOE7b/EzPtWDBl8nQiFtlDzeSzpbZghkpWMJJYzUzgFjNuWzOkvP+3rPBZePlgF6A== X-Received: by 2002:a05:6512:ba6:b0:545:bda:f20 with SMTP id 2adb3069b0e04-5452fe9041dmr3192641e87.32.1739801366409; Mon, 17 Feb 2025 06:09:26 -0800 (PST) Received: from xeon.. ([188.163.112.51]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54531b8ac1dsm866855e87.75.2025.02.17.06.09.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 06:09:25 -0800 (PST) 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 v2 2/2] drm: bridge: Add support for Solomon SSD2825 RGB/DSI bridge Date: Mon, 17 Feb 2025 16:09:10 +0200 Message-ID: <20250217140910.108175-3-clamor95@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217140910.108175-1-clamor95@gmail.com> References: <20250217140910.108175-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 | 14 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/ssd2825.c | 824 +++++++++++++++++++++++++++++++ 3 files changed, 839 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 6b4664d91faa..a6eca3aef258 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -306,6 +306,20 @@ 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 + select VIDEOMODE_HELPERS + 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 97304b429a53..c621ab3fa3a9 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -23,6 +23,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..cc6f5d480812 --- /dev/null +++ b/drivers/gpu/drm/bridge/ssd2825.c @@ -0,0 +1,824 @@ +// SPDX-License-Identifier: GPL-2.0 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include