[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250616070536.670519-2-andyshrk@163.com>
Date: Mon, 16 Jun 2025 15:05:17 +0800
From: Andy Yan <andyshrk@....com>
To: neil.armstrong@...aro.org
Cc: conor+dt@...nel.org,
quic_jesszhan@...cinc.com,
krzk+dt@...nel.org,
robh@...nel.org,
sebastian.reichel@...labora.com,
tzimmermann@...e.de,
devicetree@...r.kernel.org,
dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org,
Andy Yan <andy.yan@...k-chips.com>
Subject: [PATCH 2/2] drivers/panel: raydium-rm67200: Make reset-gpio optional
From: Andy Yan <andy.yan@...k-chips.com>
Although the datasheet of the panel module describes that it has a
reset pin, in the actual hardware design, we often use an RC circuit
to control the reset, and rarely use GPIO to control the reset. This
is the way it is done on our numerous development boards (such as
RK3568/RK3576 EVB).
So make the reset-gpio optional.
Signed-off-by: Andy Yan <andy.yan@...k-chips.com>
---
drivers/gpu/drm/panel/panel-raydium-rm67200.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67200.c b/drivers/gpu/drm/panel/panel-raydium-rm67200.c
index 205273163cb97..add6099ae8a64 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm67200.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm67200.c
@@ -36,12 +36,14 @@ static inline struct raydium_rm67200 *to_raydium_rm67200(struct drm_panel *panel
static void raydium_rm67200_reset(struct raydium_rm67200 *ctx)
{
- gpiod_set_value_cansleep(ctx->reset_gpio, 0);
- msleep(60);
- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
- msleep(60);
- gpiod_set_value_cansleep(ctx->reset_gpio, 0);
- msleep(60);
+ if (ctx->reset_gpio) {
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+ msleep(60);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ msleep(60);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+ msleep(60);
+ }
}
static void raydium_rm67200_write(struct mipi_dsi_multi_context *ctx,
@@ -412,7 +414,7 @@ static int raydium_rm67200_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
+ ctx->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset_gpio))
return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio),
"Failed to get reset-gpios\n");
--
2.43.0
base-commit: 8c98c2c9ebeaa472e742d664b714aed5ab7c6f53
branch: rk356x_rk3588_rk3576_dsi
Powered by blists - more mailing lists