/linux/drivers/gpu/drm/rockchip/ |
H A D | rockchip_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Mark Yao <mark.yao@rock-chips.com> 6 * Sandy Huang <hjc@rock-chips.com> 38 * struct rockchip_lvds_soc_data - rockchip lvds Soc private data 39 * @probe: LVDS platform probe function 40 * @helper_funcs: LVDS connector helper functions 43 int (*probe)(struct platform_device *pdev, struct rockchip_lvds *lvds); 54 int output; /* rgb lvds or dual lvds output */ 60 struct rockchip_encoder encoder; member 69 static inline struct rockchip_lvds *encoder_to_lvds(struct drm_encoder *encoder) in encoder_to_lvds() argument [all …]
|
/linux/drivers/gpu/drm/sun4i/ |
H A D | sun4i_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * Maxime Ripard <maxime.ripard@free-electrons.com> 23 struct drm_encoder encoder; member 36 drm_encoder_to_sun4i_lvds(struct drm_encoder *encoder) in drm_encoder_to_sun4i_lvds() argument 38 return container_of(encoder, struct sun4i_lvds, in drm_encoder_to_sun4i_lvds() 39 encoder); in drm_encoder_to_sun4i_lvds() 44 struct sun4i_lvds *lvds = in sun4i_lvds_get_modes() local 47 return drm_panel_get_modes(lvds->panel, connector); in sun4i_lvds_get_modes() 68 static void sun4i_lvds_encoder_enable(struct drm_encoder *encoder) in sun4i_lvds_encoder_enable() argument 70 struct sun4i_lvds *lvds = drm_encoder_to_sun4i_lvds(encoder); in sun4i_lvds_encoder_enable() local [all …]
|
H A D | sun4i_tcon.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 * Maxime Ripard <maxime.ripard@free-electrons.com> 11 #include <linux/media-bus-format.h> 43 static struct drm_connector *sun4i_tcon_get_connector(const struct drm_encoder *encoder) in sun4i_tcon_get_connector() argument 48 drm_connector_list_iter_begin(encoder->dev, &iter); in sun4i_tcon_get_connector() 50 if (connector->encoder == encoder) { in sun4i_tcon_get_connector() 59 static int sun4i_tcon_get_pixel_depth(const struct drm_encoder *encoder) in sun4i_tcon_get_pixel_depth() argument 64 connector = sun4i_tcon_get_connector(encoder); in sun4i_tcon_get_pixel_depth() 66 return -EINVAL; in sun4i_tcon_get_pixel_depth() 68 info = &connector->display_info; in sun4i_tcon_get_pixel_depth() [all …]
|
/linux/drivers/gpu/drm/renesas/rcar-du/ |
H A D | rcar_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * R-Car LVDS Encoder 5 * Copyright (C) 2013-2018 Renesas Electronics Corporation 13 #include <linux/media-bus-format.h> 50 #define RCAR_LVDS_QUIRK_LANES BIT(0) /* LVDS lanes 1 and 3 inverted */ 54 #define RCAR_LVDS_QUIRK_DUAL_LINK BIT(4) /* Supports dual-link operation */ 59 void (*pll_setup)(struct rcar_lvds *lvds, unsigned int freq); 86 static u32 rcar_lvds_read(struct rcar_lvds *lvds, u32 reg) in rcar_lvds_read() argument 88 return ioread32(lvds->mmio + reg); in rcar_lvds_read() 91 static void rcar_lvds_write(struct rcar_lvds *lvds, u32 reg, u32 data) in rcar_lvds_write() argument [all …]
|
H A D | rcar_du_encoder.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * R-Car Display Unit Encoder 5 * Copyright (C) 2013-2014 Renesas Electronics Corporation 21 /* ----------------------------------------------------------------------------- 22 * Encoder 70 bridge = devm_drm_panel_bridge_add_typed(rcdu->dev, panel, in rcar_du_encoder_init() 77 return -EPROBE_DEFER; in rcar_du_encoder_init() 81 rcdu->lvds[output - RCAR_DU_OUTPUT_LVDS0] = bridge; in rcar_du_encoder_init() 85 rcdu->dsi[output - RCAR_DU_OUTPUT_DSI0] = bridge; in rcar_du_encoder_init() 89 * Create and initialize the encoder. On Gen3, skip the LVDS1 output if in rcar_du_encoder_init() [all …]
|
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 3 tristate "DRM Support for R-Car Display Unit" 13 Choose this option if you have an R-Car chipset. 14 If M is selected the module will be called rcar-du-drm. 17 bool "R-Car DU Color Management Module (CMM) Support" 21 Enable support for R-Car Color Management Module (CMM). 28 tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support" 33 Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder. 36 bool "R-Car DU LVDS Encoder Support" 41 Enable support for the R-Car Display Unit embedded LVDS encoders. [all …]
|
/linux/drivers/gpu/drm/radeon/ |
H A D | radeon_legacy_encoders.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 46 static void radeon_legacy_encoder_disable(struct drm_encoder *encoder) in radeon_legacy_encoder_disable() argument 48 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_legacy_encoder_disable() 51 encoder_funcs = encoder->helper_private; in radeon_legacy_encoder_disable() 52 encoder_funcs->dpms(encoder, DRM_MODE_DPMS_OFF); in radeon_legacy_encoder_disable() 53 radeon_encoder->active_device = 0; in radeon_legacy_encoder_disable() 56 static void radeon_legacy_lvds_update(struct drm_encoder *encoder, int mode) in radeon_legacy_lvds_update() argument 58 struct drm_device *dev = encoder->dev; in radeon_legacy_lvds_update() 59 struct radeon_device *rdev = dev->dev_private; in radeon_legacy_lvds_update() 60 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); in radeon_legacy_lvds_update() [all …]
|
H A D | radeon_combios.c | 3 * Copyright 2007-8 Advanced Micro Devices, Inc. 133 struct radeon_device *rdev = dev->dev_private; in combios_get_table_offset() 137 if (!rdev->bios) in combios_get_table_offset() 362 size = RBIOS8(rdev->bios_header_start + 0x6); in combios_get_table_offset() 365 offset = RBIOS16(rdev->bios_header_start + check_offset); in combios_get_table_offset() 379 raw = rdev->bios + edid_info; in radeon_combios_check_hardcoded_edid() 388 rdev->mode_info.bios_hardcoded_edid = edid; in radeon_combios_check_hardcoded_edid() 396 return drm_edid_duplicate(drm_edid_raw(rdev->mode_info.bios_hardcoded_edid)); in radeon_bios_get_hardcoded_edid() 447 if (rdev->family == CHIP_RS300 || in combios_setup_i2c_bus() 448 rdev->family == CHIP_RS400 || in combios_setup_i2c_bus() [all …]
|
/linux/drivers/gpu/drm/i915/display/ |
H A D | intel_lvds.c | 2 * Copyright © 2006-2007 Intel Corporation 56 /* Private structure for the integrated LVDS support */ 84 static struct intel_lvds_encoder *to_lvds_encoder(struct intel_encoder *encoder) in to_lvds_encoder() argument 86 return container_of(encoder, struct intel_lvds_encoder, base); in to_lvds_encoder() 105 static bool intel_lvds_get_hw_state(struct intel_encoder *encoder, in intel_lvds_get_hw_state() argument 108 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_lvds_get_hw_state() 109 struct intel_lvds_encoder *lvds_encoder = to_lvds_encoder(encoder); in intel_lvds_get_hw_state() 113 wakeref = intel_display_power_get_if_enabled(i915, encoder->power_domain); in intel_lvds_get_hw_state() 117 ret = intel_lvds_port_enabled(i915, lvds_encoder->reg, pipe); in intel_lvds_get_hw_state() 119 intel_display_power_put(i915, encoder->power_domain, wakeref); in intel_lvds_get_hw_state() [all …]
|
H A D | intel_dvo.c | 3 * Copyright © 2006-2007 Intel Corporation 119 static struct intel_dvo *enc_to_dvo(struct intel_encoder *encoder) in enc_to_dvo() argument 121 return container_of(encoder, struct intel_dvo, base); in enc_to_dvo() 131 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_dvo_connector_get_hw_state() 132 struct intel_encoder *encoder = intel_attached_encoder(connector); in intel_dvo_connector_get_hw_state() local 133 struct intel_dvo *intel_dvo = enc_to_dvo(encoder); in intel_dvo_connector_get_hw_state() 134 enum port port = encoder->port; in intel_dvo_connector_get_hw_state() 142 return intel_dvo->dev.dev_ops->get_hw_state(&intel_dvo->dev); in intel_dvo_connector_get_hw_state() 145 static bool intel_dvo_get_hw_state(struct intel_encoder *encoder, in intel_dvo_get_hw_state() argument 148 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_dvo_get_hw_state() [all …]
|
/linux/drivers/gpu/drm/gma500/ |
H A D | cdv_intel_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright © 2006-2011 Intel Corporation 27 * LVDS I2C backlight control macros 72 retval = ((dev_priv->regs.saveBLC_PWM_CTL & in cdv_intel_lvds_get_max_backlight() 97 blc_pwm_ctl = dev_priv->regs.saveBLC_PWM_CTL & in cdv_intel_lvds_set_backlight() 99 dev_priv->regs.saveBLC_PWM_CTL = (blc_pwm_ctl | in cdv_intel_lvds_set_backlight() 108 struct drm_encoder *encoder, bool on) in cdv_intel_lvds_set_power() argument 124 dev_priv->mode_dev.backlight_duty_cycle); in cdv_intel_lvds_set_power() 137 static void cdv_intel_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) in cdv_intel_lvds_encoder_dpms() argument 139 struct drm_device *dev = encoder->dev; in cdv_intel_lvds_encoder_dpms() [all …]
|
H A D | psb_intel_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright © 2006-2007 Intel Corporation 25 * LVDS I2C backlight control macros 70 ret = dev_priv->regs.saveBLC_PWM_CTL; in psb_intel_lvds_get_max_backlight() 78 dev_err(dev->dev, "BL bug: Reg %08x save %08X\n", in psb_intel_lvds_get_max_backlight() 79 REG_READ(BLC_PWM_CTL), dev_priv->regs.saveBLC_PWM_CTL); in psb_intel_lvds_get_max_backlight() 84 * Set LVDS backlight level by I2C command 94 struct gma_i2c_chan *lvds_i2c_bus = dev_priv->lvds_i2c_bus; in psb_lvds_i2c_set_brightness() 100 .addr = lvds_i2c_bus->target_addr, in psb_lvds_i2c_set_brightness() 111 if (dev_priv->lvds_bl->pol == BLC_POLARITY_INVERSE) in psb_lvds_i2c_set_brightness() [all …]
|
H A D | oaktrail_lvds.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright © 2006-2009 Intel Corporation 24 /* The max/min PWM frequency in BPCR[31:17] - */ 26 * 15-bit field of the and then*/ 27 /* shifts to the left by one bit to get the actual 16-bit 28 * value that the 15-bits correspond to.*/ 51 dev_priv->is_lvds_on = true; in oaktrail_lvds_set_power() 52 if (dev_priv->ops->lvds_bl_power) in oaktrail_lvds_set_power() 53 dev_priv->ops->lvds_bl_power(dev, true); in oaktrail_lvds_set_power() 55 if (dev_priv->ops->lvds_bl_power) in oaktrail_lvds_set_power() [all …]
|
/linux/Documentation/devicetree/bindings/display/bridge/ |
H A D | renesas,lvds.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/bridge/renesas,lvds.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Renesas R-Car LVDS Encoder 10 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 13 These DT bindings describe the LVDS encoder embedded in the Renesas R-Car 14 Gen2, R-Car Gen3, RZ/G1 and RZ/G2 SoCs. 19 - renesas,r8a7742-lvds # for RZ/G1H compatible LVDS encoders 20 - renesas,r8a7743-lvds # for RZ/G1M compatible LVDS encoders [all …]
|
H A D | lvds-codec.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Transparent LVDS encoders and decoders 10 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 13 This binding supports transparent LVDS encoders and decoders that don't 16 LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple 18 to LVDS panels. This binding targets devices compatible with the following 21 [JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February [all …]
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | atombios_encoders.c | 2 * Copyright 2007-11 Advanced Micro Devices, Inc. 74 struct drm_device *dev = amdgpu_encoder->base.dev; in amdgpu_atombios_encoder_get_backlight_level() 77 if (!(adev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)) in amdgpu_atombios_encoder_get_backlight_level() 87 struct drm_encoder *encoder = &amdgpu_encoder->base; in amdgpu_atombios_encoder_set_backlight_level() local 88 struct drm_device *dev = amdgpu_encoder->base.dev; in amdgpu_atombios_encoder_set_backlight_level() 92 if (!(adev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)) in amdgpu_atombios_encoder_set_backlight_level() 95 if ((amdgpu_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) && in amdgpu_atombios_encoder_set_backlight_level() 96 amdgpu_encoder->enc_priv) { in amdgpu_atombios_encoder_set_backlight_level() 97 dig = amdgpu_encoder->enc_priv; in amdgpu_atombios_encoder_set_backlight_level() 98 dig->backlight_level = level; in amdgpu_atombios_encoder_set_backlight_level() [all …]
|
/linux/drivers/gpu/drm/ |
H A D | drm_of.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 #include <linux/media-bus-format.h> 25 * drm_of_crtc_port_mask - find the mask of a registered CRTC by port OF node 39 if (tmp->port == port) in drm_of_crtc_port_mask() 50 * drm_of_find_possible_crtcs - find the possible CRTCs for an encoder port 52 * @port: encoder port to scan for endpoints 56 * encoder. 83 * drm_of_component_match_add - Add a component helper OF node match rule 101 * drm_of_component_probe - Generic probe function for a component based master 121 if (!dev->of_node) in drm_of_component_probe() [all …]
|
/linux/drivers/gpu/drm/stm/ |
H A D | lvds.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2023, STMicroelectronics - All Rights Reserved 4 * Author(s): Raphaël GALLAIS-POU <raphael.gallais-pou@foss.st.com> for STMicroelectronics. 16 #include <linux/clk-provider.h> 19 #include <linux/media-bus-format.h> 25 /* LVDS Host registers */ 46 /* LVDS Wrapper registers */ 55 #define CR_LVDSEN BIT(0) /* LVDS PHY Enable */ 62 #define CR_LK1POL GENMASK(20, 16) /* Link-1 output Polarity */ 63 #define CR_LK2POL GENMASK(25, 21) /* Link-2 output Polarity */ [all …]
|
/linux/drivers/gpu/drm/bridge/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 21 Simple transparent bridge that is used by several non-DRM drivers to 36 tristate "Chipone ICN6211 MIPI-DSI/RGB Converter bridge" 43 ICN6211 is MIPI-DSI/RGB Converter bridge from chipone. 51 tristate "Chrontel CH7033 Video Encoder" 55 Enable support for the Chrontel CH7033 VGA/DVI/HDMI Encoder, as 67 ChromeOS EC ANX7688 is an ultra-low power 68 4K Ultra-HD (4096x2160p60) mobile HD transmitter 70 2.0 to DisplayPort 1.3 Ultra-HD. It is connected 77 Driver for display connectors with support for DDC and hot-plug [all …]
|
H A D | lvds-codec.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 8 #include <linux/media-bus-format.h> 41 return drm_bridge_attach(bridge->encoder, lvds_codec->panel_bridge, in lvds_codec_attach() 50 ret = regulator_enable(lvds_codec->vcc); in lvds_codec_enable() 52 dev_err(lvds_codec->dev, in lvds_codec_enable() 57 if (lvds_codec->powerdown_gpio) in lvds_codec_enable() 58 gpiod_set_value_cansleep(lvds_codec->powerdown_gpio, 0); in lvds_codec_enable() 66 if (lvds_codec->powerdown_gpio) in lvds_codec_disable() 67 gpiod_set_value_cansleep(lvds_codec->powerdown_gpio, 1); in lvds_codec_disable() 69 ret = regulator_disable(lvds_codec->vcc); in lvds_codec_disable() [all …]
|
H A D | fsl-ldb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 #include <linux/media-bus-format.h> 40 * Clear it to enable LVDS and set it to disable LVDS. 99 return (fsl_ldb->ch0_enabled && fsl_ldb->ch1_enabled); in fsl_ldb_is_dual() 120 return drm_bridge_attach(bridge->encoder, fsl_ldb->panel_bridge, in fsl_ldb_attach() 128 struct drm_atomic_state *state = old_bridge_state->base.state; in fsl_ldb_atomic_enable() 140 /* Get the LVDS format from the bridge state. */ in fsl_ldb_atomic_enable() 143 switch (bridge_state->output_bus_cfg.format) { in fsl_ldb_atomic_enable() 158 * Some bridges still don't set the correct LVDS bus pixel in fsl_ldb_atomic_enable() 163 dev_warn(fsl_ldb->dev, in fsl_ldb_atomic_enable() [all …]
|
/linux/drivers/gpu/drm/tegra/ |
H A D | rgb.c | 1 // SPDX-License-Identifier: GPL-2.0-only 91 static void tegra_rgb_encoder_disable(struct drm_encoder *encoder) in tegra_rgb_encoder_disable() argument 93 struct tegra_output *output = encoder_to_output(encoder); in tegra_rgb_encoder_disable() 96 tegra_dc_write_regs(rgb->dc, rgb_disable, ARRAY_SIZE(rgb_disable)); in tegra_rgb_encoder_disable() 97 tegra_dc_commit(rgb->dc); in tegra_rgb_encoder_disable() 100 static void tegra_rgb_encoder_enable(struct drm_encoder *encoder) in tegra_rgb_encoder_enable() argument 102 struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; in tegra_rgb_encoder_enable() 103 struct tegra_output *output = encoder_to_output(encoder); in tegra_rgb_encoder_enable() 107 tegra_dc_write_regs(rgb->dc, rgb_enable, ARRAY_SIZE(rgb_enable)); in tegra_rgb_encoder_enable() 110 tegra_dc_writel(rgb->dc, value, DC_DISP_DATA_ENABLE_OPTIONS); in tegra_rgb_encoder_enable() [all …]
|
/linux/arch/arm/boot/dts/nvidia/ |
H A D | tegra30-asus-lvds-display.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 /* This dtsi file describes parts common for Asus T30 devices with a LVDS panel. */ 5 #include <dt-bindings/gpio/tegra-gpio.h> 15 remote-endpoint = <&bridge_input>; 16 bus-width = <24>; 23 display-panel { 24 power-supply = <&vdd_pnl>; 25 ddc-i2c-bus = <&lcd_ddc>; 30 remote-endpoint = <&bridge_output>; 35 /* Texas Instruments SN75LVDS83B LVDS Transmitter */ [all …]
|
/linux/drivers/gpu/drm/msm/disp/mdp4/ |
H A D | mdp4_lcdc_encoder.c | 1 // SPDX-License-Identifier: GPL-2.0-only 27 static struct mdp4_kms *get_kms(struct drm_encoder *encoder) in get_kms() argument 29 struct msm_drm_private *priv = encoder->dev->dev_private; in get_kms() 30 return to_mdp4_kms(to_mdp_kms(priv->kms)); in get_kms() 34 static struct drm_connector *get_connector(struct drm_encoder *encoder) in get_connector() argument 36 struct drm_device *dev = encoder->dev; in get_connector() 39 list_for_each_entry(connector, &dev->mode_config.connector_list, head) in get_connector() 40 if (connector->encoder == encoder) in get_connector() 46 static void setup_phy(struct drm_encoder *encoder) in setup_phy() argument 48 struct drm_device *dev = encoder->dev; in setup_phy() [all …]
|
H A D | mdp4_kms.c | 1 // SPDX-License-Identifier: GPL-2.0-only 19 struct drm_device *dev = mdp4_kms->dev; in mdp4_hw_init() 23 pm_runtime_get_sync(dev->dev); in mdp4_hw_init() 25 if (mdp4_kms->rev > 1) { in mdp4_hw_init() 35 clk = clk_get_rate(mdp4_kms->clk); in mdp4_hw_init() 37 if ((mdp4_kms->rev >= 1) || (clk >= 90000000)) { in mdp4_hw_init() 38 dmap_cfg = 0x47; /* 16 bytes-burst x 8 req */ in mdp4_hw_init() 39 vg_cfg = 0x47; /* 16 bytes-burs x 8 req */ in mdp4_hw_init() 41 dmap_cfg = 0x27; /* 8 bytes-burst x 8 req */ in mdp4_hw_init() 42 vg_cfg = 0x43; /* 16 bytes-burst x 4 req */ in mdp4_hw_init() [all …]
|