summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
diff options
context:
space:
mode:
authorBiju Das <biju.das.jz@bp.renesas.com>2023-05-02 11:09:08 +0100
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2023-05-29 16:41:03 +0300
commit11696c5e89245a1d360f75be3dfc4960b25a265a (patch)
tree3b88479798b74644ee8d55d02e891df0c782683a /drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
parent2da4b728f994a1f9189a8066b0be90b615768764 (diff)
drm: Place Renesas drivers in a separate dir
Create vendor specific renesas directory and move renesas drivers to that directory. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Acked-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Diffstat (limited to 'drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c')
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c124
1 files changed, 0 insertions, 124 deletions
diff --git a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
deleted file mode 100644
index 18ed14911b98..000000000000
--- a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
+++ /dev/null
@@ -1,124 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * R-Car Gen3 HDMI PHY
- *
- * Copyright (C) 2016 Renesas Electronics Corporation
- *
- * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
- */
-
-#include <linux/mod_devicetable.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-
-#include <drm/bridge/dw_hdmi.h>
-#include <drm/drm_modes.h>
-
-#define RCAR_HDMI_PHY_OPMODE_PLLCFG 0x06 /* Mode of operation and PLL dividers */
-#define RCAR_HDMI_PHY_PLLCURRGMPCTRL 0x10 /* PLL current and Gmp (conductance) */
-#define RCAR_HDMI_PHY_PLLDIVCTRL 0x11 /* PLL dividers */
-
-struct rcar_hdmi_phy_params {
- unsigned long mpixelclock;
- u16 opmode_div; /* Mode of operation and PLL dividers */
- u16 curr_gmp; /* PLL current and Gmp (conductance) */
- u16 div; /* PLL dividers */
-};
-
-static const struct rcar_hdmi_phy_params rcar_hdmi_phy_params[] = {
- { 35500000, 0x0003, 0x0344, 0x0328 },
- { 44900000, 0x0003, 0x0285, 0x0128 },
- { 71000000, 0x0002, 0x1184, 0x0314 },
- { 90000000, 0x0002, 0x1144, 0x0114 },
- { 140250000, 0x0001, 0x20c4, 0x030a },
- { 182750000, 0x0001, 0x2084, 0x010a },
- { 281250000, 0x0000, 0x0084, 0x0305 },
- { 297000000, 0x0000, 0x0084, 0x0105 },
- { ~0UL, 0x0000, 0x0000, 0x0000 },
-};
-
-static enum drm_mode_status
-rcar_hdmi_mode_valid(struct dw_hdmi *hdmi, void *data,
- const struct drm_display_info *info,
- const struct drm_display_mode *mode)
-{
- /*
- * The maximum supported clock frequency is 297 MHz, as shown in the PHY
- * parameters table.
- */
- if (mode->clock > 297000)
- return MODE_CLOCK_HIGH;
-
- return MODE_OK;
-}
-
-static int rcar_hdmi_phy_configure(struct dw_hdmi *hdmi, void *data,
- unsigned long mpixelclock)
-{
- const struct rcar_hdmi_phy_params *params = rcar_hdmi_phy_params;
-
- for (; params->mpixelclock != ~0UL; ++params) {
- if (mpixelclock <= params->mpixelclock)
- break;
- }
-
- if (params->mpixelclock == ~0UL)
- return -EINVAL;
-
- dw_hdmi_phy_i2c_write(hdmi, params->opmode_div,
- RCAR_HDMI_PHY_OPMODE_PLLCFG);
- dw_hdmi_phy_i2c_write(hdmi, params->curr_gmp,
- RCAR_HDMI_PHY_PLLCURRGMPCTRL);
- dw_hdmi_phy_i2c_write(hdmi, params->div, RCAR_HDMI_PHY_PLLDIVCTRL);
-
- return 0;
-}
-
-static const struct dw_hdmi_plat_data rcar_dw_hdmi_plat_data = {
- .output_port = 1,
- .mode_valid = rcar_hdmi_mode_valid,
- .configure_phy = rcar_hdmi_phy_configure,
-};
-
-static int rcar_dw_hdmi_probe(struct platform_device *pdev)
-{
- struct dw_hdmi *hdmi;
-
- hdmi = dw_hdmi_probe(pdev, &rcar_dw_hdmi_plat_data);
- if (IS_ERR(hdmi))
- return PTR_ERR(hdmi);
-
- platform_set_drvdata(pdev, hdmi);
-
- return 0;
-}
-
-static int rcar_dw_hdmi_remove(struct platform_device *pdev)
-{
- struct dw_hdmi *hdmi = platform_get_drvdata(pdev);
-
- dw_hdmi_remove(hdmi);
-
- return 0;
-}
-
-static const struct of_device_id rcar_dw_hdmi_of_table[] = {
- { .compatible = "renesas,rcar-gen3-hdmi" },
- { /* Sentinel */ },
-};
-MODULE_DEVICE_TABLE(of, rcar_dw_hdmi_of_table);
-
-static struct platform_driver rcar_dw_hdmi_platform_driver = {
- .probe = rcar_dw_hdmi_probe,
- .remove = rcar_dw_hdmi_remove,
- .driver = {
- .name = "rcar-dw-hdmi",
- .of_match_table = rcar_dw_hdmi_of_table,
- },
-};
-
-module_platform_driver(rcar_dw_hdmi_platform_driver);
-
-MODULE_AUTHOR("Laurent Pinchart <laurent.pinchart@ideasonboard.com>");
-MODULE_DESCRIPTION("Renesas R-Car Gen3 HDMI Encoder Driver");
-MODULE_LICENSE("GPL");