From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (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 C771C375F87 for ; Mon, 22 Jun 2026 15:25:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782141921; cv=none; b=W5FELQNhPQ3xUrovqxS21qHpu1w7j7GzDkfK5BbLRfnY/oSYz/JFLeyWosuGsGNaxR7TZZHQ78E/vURpNBQ+k+3dcC+WaQeWT7cFH94DBGMf5FZhj7giYzD5wCMPeGuFvX+KkiADb0pime47XUeCJcCuYdK8zAPNLqXaSC9d+Dc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782141921; c=relaxed/simple; bh=FjFXJ5dUGr72R4YaGkKyaIYzexfp4gxj3M1jHMlRFI8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=rvukQQcS1leLAmDgRv4anK8SsFzVaK6Rw95peeX69bnJggj8+7NplpZgpKLBIKClUwgeifdlOTD08IAHrb3GlhFTP+sbsSDXNQ5CBAgyDp1i/pJSSBhD7r75UVC/vLZvjrMl+N9wcAh6eyg/t42drIEKbG1NBv+Bx+NTXX8iI9k= 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=oCVMOuqO; arc=none smtp.client-ip=209.85.221.54 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="oCVMOuqO" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-464192ab2e1so2847422f8f.0 for ; Mon, 22 Jun 2026 08:25:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782141918; x=1782746718; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=kL1tj/BLw05+tMmUXWpE7p03gE32TyonQg4lQC1zuNQ=; b=oCVMOuqODYuueS51P7A97np0ij6118fitVxcxc9RKMB7fqwOK1XNwXlyIjRV4u9vJj 8XXtyC4bNPsdnXupYpd5r20X4jNJ0mS+kT1+N9asGB3BF4bUrEKkiWLOW7ziiPEMKYAc MF7OTq59nCF9PONs/PDQh3U2mg1cjnQ/ato2xm/iXxjfT25Sg/XQszzNLF9tB/5k4E99 48azXwDiXJILdluP1cLNEhGpwgUTJvs6kypMfSgHAnKpnE8jebAl97Dz42KQm4muLvwl R9HOPUYmUztnpNOp87HjaTdmTL8L+6K++wyfMez6Rsc4AWaPgYac33HLAkvg2NSJUk2J CPZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782141918; x=1782746718; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kL1tj/BLw05+tMmUXWpE7p03gE32TyonQg4lQC1zuNQ=; b=XxbaCpSyqKxSoK32UgCWERw6SVHL/2EaMkWO5XszUctEoGQEN+tTrVmHNb8Q70x/gc EUM6562qH/72uyApCvK/E+3v3vRtQJhmVf0LDbOqTUhxM7R4r2Rx6kMzBL/JcCsYDJF2 zkUrRAbLUvMegFLfHMlncx+JREiXn3pwHtD8r9cOjzO73BuILTB+qYABS9kycYCSw37t ldG3BKiwIPF41XiZQDnMPOcVZ8tT400i+PovGNw8yV6ey3WOSRJ3jeKt6Jo3xReH794K jVQNG0Tg+rlOenexL46AVNDTcXe0elfC2lKCvYkWW6LPx4gbWc21ZuCzLZtWKC2Re04a Y4MQ== X-Forwarded-Encrypted: i=1; AFNElJ89hAb+9DI75umrGJnjvwH8ewvX56sFqrpF53OTXnpGfZMmPti+QbHgUMynMWcUqdNVl4ajBYfXdOcdPWM=@vger.kernel.org X-Gm-Message-State: AOJu0YykopRkzivHabFRlW3wIvxRfcQN+9DKz81/+57/IuvNKnwaGtTV 8E9UUCZX5ABRDSk5ANuK1y5t6hODP3PFGjEqaZbCNqmbsVDvzchhBTmR X-Gm-Gg: AfdE7cng+ZNz4SjhXA3yjsV2Re+G4b8+5uXgBJzpUbYIVaMHkykQWpPsVfTO+Gs8Vsj W+7clhGMTl3iYe98Mj9UkDKcs5ArPTqdKt7pL4GILGUy8gTaUzFG9YkI27tUXrDuyJpQ1wn49f/ /ipxxP9sFPaQrDCQN6vDec4RNeykbvyR9VO5a0NFU7AHX/cacLN/8FsOqy9/M4k3Fc3eCcXvkTe e9lRootcDJdM985lDSIihUfO0u5Duc//u2Y2IBI2T3vLv6kHtmhsYFcMyuPLCfAXJBU0vyOPOb8 ryaeY3LdBuugm/uQaXBNbPmmUPQUsnW9bjA2KHi7rws7RRmNsqkHVPrADRqs66uPUndXvBPybfC /iKK/NGiojT2HNsIOpF2SCdTXrYsUspFsk/sH9EG6j3ioMp5dFJofvMrcXGh4eCIePmNaCwNVGW o2y7SNcBw9PFanroxXxp1l54Bt0gE= X-Received: by 2002:a05:600c:45c5:b0:492:41a1:f217 with SMTP id 5b1f17b1804b1-49241a1f31fmr221649685e9.1.1782141917981; Mon, 22 Jun 2026 08:25:17 -0700 (PDT) Received: from anthony.local ([2a06:c701:49b2:4c00:12ff:e0ff:fea5:3d2e]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-492492338dasm217883655e9.1.2026.06.22.08.25.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 08:25:17 -0700 (PDT) From: Amit Barzilai To: javierm@redhat.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andy@kernel.org, gregkh@linuxfoundation.org, deller@gmx.de Cc: azuddinadam@gmail.com, chintanlike@gmail.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, Amit Barzilai Subject: [PATCH v2 0/4] drm/ssd130x: Add support for the Solomon SSD1351 OLED controller Date: Mon, 22 Jun 2026 18:25:02 +0300 Message-ID: <20260622152506.78627-1-amit.barzilai22@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This series adds support for the Solomon SSD1351, a 128x128 65k-color RGB OLED controller, to the ssd130x DRM driver, and removes the legacy fbtft fb_ssd1351 driver it supersedes. v1 [1] was a self-contained ssd1351.c driver. Following Javier's review, the SSD1351 is instead folded into ssd130x as a new color family, which also brings 65k color to the existing SSD1331. The work is split as: - Patch 1 adds the device tree binding. It was previously posted standalone as a v2 [2]; it is folded into this series here, as Conor asked, so the binding lands together with the driver and the fbtft removal. - Patch 2 changes the SSD133X family to drive RGB565 instead of RGB332, via a per-variant flag in deviceinfo. The SSD1331 is the only current member and gains 65k color from this. - Patch 3 adds the SSD1351 as a new SSD135X_FAMILY, reusing the SSD133X plane/CRTC and blit/clear helpers. The only data-path difference is the explicit Write RAM command (0x5c) the SSD1351 needs before pixel data; it also gets its own init sequence and a longer post-reset settle delay. - Patch 4 removes the now-redundant staging fbtft fb_ssd1351 driver. Testing: - The SSD1351 (patches 1 and 3) is tested on hardware. - The SSD1331 RGB565 change (patch 2) is compile-tested only; I do not currently have a working SSD1331 panel. Javier has kindly offered to test it on his SSD1331. Dependency: The SSD1351 reuses ssd133x_update_rect(), which programs the column and row *end* address as a relative offset rather than an absolute coordinate. This breaks partial updates that do not start at (0,0). A separate fix is posted at [3]; until it lands, the SSD1351 shows the same partial-redraw artifacts. This series applies independently of that fix, but the two are best merged together. Based on drm-misc-next. [1] standalone v1 driver: https://lore.kernel.org/dri-devel/20260615181253.97551-1-amit.barzilai22@gmail.com [2] standalone v2 binding: https://lore.kernel.org/dri-devel/20260615175620.88828-1-amit.barzilai22@gmail.com [3] ssd132x/ssd133x update_rect end-address fix: https://lore.kernel.org/dri-devel/20260622122604.32500-1-amit.barzilai22@gmail.com --- Changes since v1: - Fold the SSD1351 into ssd130x as a new SSD135X family instead of a standalone ssd1351.c driver (per Javier). - Add RGB565 to the SSD133X family, so the SSD1331 also gains 65k color. - Drop native 256k color (no matching DRM fourcc) and the 0/180 rotation support, to keep the series focused; both can return later. - Binding: drop solomon,width / solomon,height (deducible from the compatible) and the rotation property (no consumer), per Krzysztof; use dt-bindings/gpio/gpio.h flag defines in the example. - Remove the staging fbtft fb_ssd1351 driver in the same series (per Conor). Amit Barzilai (4): dt-bindings: display: Add Solomon SSD1351 OLED controller drm/ssd130x: Add RGB565 support to SSD133X family drm/ssd130x: Add SSD135X_FAMILY and SSD1351 support staging: fbtft: remove fb_ssd1351 driver .../bindings/display/solomon,ssd1351.yaml | 42 +++ drivers/gpu/drm/solomon/ssd130x-spi.c | 7 + drivers/gpu/drm/solomon/ssd130x.c | 269 +++++++++++++++--- drivers/gpu/drm/solomon/ssd130x.h | 12 +- drivers/staging/fbtft/Kconfig | 5 - drivers/staging/fbtft/Makefile | 1 - drivers/staging/fbtft/fb_ssd1351.c | 240 ---------------- 7 files changed, 283 insertions(+), 293 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd1351.yaml delete mode 100644 drivers/staging/fbtft/fb_ssd1351.c -- 2.54.0