summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2020-11-11 00:46:51 +0100
committerLinus Walleij <linus.walleij@linaro.org>2020-11-16 00:48:16 +0100
commit9cea169835dec8faa1be0e980b2ed9da7e2c9850 (patch)
treeac20bf33518992b58e35ecb56a068338703f58bd /drivers
parentdrm/panel: s6e63m0: Implement reading from panel (diff)
downloadlinux-9cea169835dec8faa1be0e980b2ed9da7e2c9850.tar.xz
linux-9cea169835dec8faa1be0e980b2ed9da7e2c9850.zip
drm/panel: s6e63m0: Add some explanations
The SPI DCS code was a bit hard to understand as the device accepts 9-bit transfers packed into 16-bit words with the most significant bit in bit 9 of the 16-bit word. Add some clarifying comments. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Cc: Stephan Gerhold <stephan@gerhold.net> Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20201110234653.2248594-4-linus.walleij@linaro.org
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
index 94ae4ac5a88e..fa24e6889ec1 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
@@ -42,10 +42,17 @@ static int s6e63m0_spi_dcs_write(struct device *dev, const u8 *data, size_t len)
int ret = 0;
dev_dbg(dev, "SPI writing dcs seq: %*ph\n", (int)len, data);
+
+ /*
+ * This sends 9 bits with the first bit (bit 8) set to 0
+ * This indicates that this is a command. Anything after the
+ * command is data.
+ */
ret = s6e63m0_spi_write_word(dev, *data);
while (!ret && --len) {
++data;
+ /* This sends 9 bits with the first bit (bit 8) set to 1 */
ret = s6e63m0_spi_write_word(dev, *data | DATA_MASK);
}