Re: [PATCH v5 6/6] drm/panel: Add driver for Synaptics R63455 DSI panel
From: Linus Walleij
Date: Tue Sep 29 2026 - 09:08:44 EST
Hi Jun,
thanks for your patch!
On Mon, Jul 27, 2026 at 10:09 AM Jun Nie <jun.nie@xxxxxxxxxx> wrote:
> +#define R63455_MF_CMD_ACCESS_PROTECT 0xb0
> +#define R63455_SEQ_CTL 0xd6
> +#define R63455_DSI_CTL 0xb6
> +#define R63455_DISP_MODE 0xb7
> +#define R63455_GEN_OUTPIN_SET 0xb9
> +#define R63455_DISP_SET1 0xc0
> +#define R63455_DISP_SET2 0xf1
> +#define R63455_DISP_SET3 0xc6
> +#define R63455_DISP_SET3_2 0xcd
> +#define R63455_DISP_SET4 0xcf
> +#define R63455_DISP_SET5 0xec
> +#define R63455_DISP_SET6 0xef
> +#define R63455_TE_GPIO_CTL 0xbe
> +#define R63455_PPS_SET 0xe6
This is more details than we usually get, which is nice.
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_MF_CMD_ACCESS_PROTECT, 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_SEQ_CTL, 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx,
> + R63455_DSI_CTL,
> + 0x20, 0x6b, 0x80, 0x06, 0x33, 0x9a, 0x00, 0x1a,
> + 0x7a);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_MODE,
> + 0x54, 0x00, 0x00, 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_GEN_OUTPIN_SET,
> + 0xf, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> + 0xf, 0xb2, 0x00, 0x64);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_SET3,
> + 0x08, 0x70, 0x28, 0x48, 0x00, 0x00, 0x13, 0x21,
> + 0xff, 0x00, 0x0f, 0x01, 0x14, 0x17, 0x00, 0x00,
> + 0x00, 0x02, 0x40, 0x0C, 0x00, 0x00, 0x00, 0x20,
> + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x70, 0x08,
> + 0xD0, 0x02, 0x21, 0x6F, 0x08, 0x5A, 0x00, 0x00,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> + 0x00, 0x00, 0x00, 0x00, 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_SET1,
> + RTN, 0x86, LE16_BYTE0(VBP), LE16_BYTE1(VBP), 0x08,
> + 0x70, BE16_BYTE0(VFP), BE16_BYTE1(VFP), 0x00,
> + 0x00, 0x08, 0x3B, 0x00, 0x00, 0x19, 0x01, 0x22);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_SET3_2, 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_SET4,
> + 0x8b, 0x00, 0x80, 0x46, 0x61, 0x00, 0x8b);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_SET5,
> + BE16_BYTE0(VID_VS_DELAY),
> + BE16_BYTE1(VID_VS_DELAY),
> + 0x00, 0x00, 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_DISP_SET6,
> + 0x00, 0x24, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> + 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
> + 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x03,
> + 0x1D, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
> + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> + 0x00);
> + r63455_dsi_write_seq(ctx, dsi_ctx, R63455_TE_GPIO_CTL,
> + 0x00, 0x6A, 0x02);
So for the commands above we have a little more knowledge than just
opaque numbers about what the display controller is doing.
If you have a datasheet for this display controller, then please add some
one-line comments before each command to explain what is being set
up.
It still bugs me that we accept this much magic numbers in panel
drivers but I guess I just take a deep breath and live with it.
Yours,
Linus Walleij