/openbmc/u-boot/arch/arm/mach-exynos/include/mach/ |
H A D | mipi_dsim.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 62 /* MIPI DSI Processor-to-Peripheral transaction types */ 111 * struct mipi_dsim_config - interface for configuring mipi-dsi controller. 121 * In VSYNC pulse and Vporch area, MIPI DSI master transfers only HSYNC 122 * start packet to MIPI DSI slave at MIPI DSI spec1.1r02. 126 * if this variable is set, DSI master ignores HFP area in VIDEO mode. 129 * if this variable is set, DSI master ignores HBP area in VIDEO mode. 132 * if this variable is set, DSI master ignores HSA area in VIDEO mode. 139 * in Non-burst mode, RGB data area is filled with RGB data and NULL 142 * @e_no_data_lane: specifies data lane count to be used by Master. [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/ |
H A D | dsi-controller.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/dsi-controller.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Common Properties for DSI Display Panels 10 - Linus Walleij <linus.walleij@linaro.org> 13 This document defines device tree properties common to DSI, Display 22 Notice: this binding concerns DSI panels connected directly to a master 23 without any intermediate port graph to the panel. Each DSI master 26 reg-property set to the virtual channel number, usually there is just [all …]
|
H A D | mipi-dsi-bus.txt | 1 MIPI DSI (Display Serial Interface) busses 6 define the syntax used to represent a DSI bus in a device tree. 8 This document describes DSI bus-specific properties only or defines existing 9 standard properties in the context of the DSI bus. 11 Each DSI host provides a DSI bus. The DSI host controller's node contains a 15 The following assumes that only a single peripheral is connected to a DSI 18 DSI host 22 a DSI host, the following properties apply to a node representing a DSI host. 25 - #address-cells: The number of cells required to represent an address on the 26 bus. DSI peripherals are addressed using a 2-bit virtual channel number, so [all …]
|
H A D | truly,nt35597.txt | 1 Truly model NT35597 DSI display driver 7 - compatible: should be "truly,nt35597-2K-display" 8 - vdda-supply: phandle of the regulator that provides the supply voltage 10 - vdispp-supply: phandle of the regulator that provides the supply voltage 12 - vdispn-supply: phandle of the regulator that provides the supply voltage 14 - reset-gpios: phandle of gpio for reset line 15 This should be 8mA, gpio can be configured using mux, pinctrl, pinctrl-names 17 - mode-gpios: phandle of the gpio for choosing the mode of the display 18 for single DSI or Dual DSI 19 This should be low for dual DSI and high for single DSI mode [all …]
|
/openbmc/linux/drivers/gpu/drm/exynos/ |
H A D | exynos_drm_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 14 #include <drm/bridge/samsung-dsim.h> 27 struct exynos_dsi *dsi = dsim->priv; in exynos_dsi_te_irq_handler() local 28 struct drm_encoder *encoder = &dsi->encoder; in exynos_dsi_te_irq_handler() 30 if (dsim->state & DSIM_STATE_VIDOUT_AVAILABLE) in exynos_dsi_te_irq_handler() 31 exynos_drm_crtc_te_handler(encoder->crtc); in exynos_dsi_te_irq_handler() 39 struct exynos_dsi *dsi = dsim->priv; in exynos_dsi_host_attach() local 40 struct drm_encoder *encoder = &dsi->encoder; in exynos_dsi_host_attach() 41 struct drm_device *drm = encoder->dev; in exynos_dsi_host_attach() 43 drm_bridge_attach(encoder, &dsim->bridge, in exynos_dsi_host_attach() [all …]
|
/openbmc/linux/drivers/gpu/drm/msm/dsi/ |
H A D | dsi_manager.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include "dsi.h" 18 * DSI_1 as master encoder 24 struct msm_dsi *dsi[DSI_MAX]; member 39 return msm_dsim_glb.dsi[id]; in dsi_mgr_get_dsi() 44 return msm_dsim_glb.dsi[(id + 1) % DSI_MAX]; in dsi_mgr_get_other_dsi() 51 /* We assume 2 dsi nodes have the same information of bonded dsi and in dsi_mgr_parse_of() 52 * sync-mode, and only one node specifies master in case of bonded mode. in dsi_mgr_parse_of() 54 if (!msm_dsim->is_bonded_dsi) in dsi_mgr_parse_of() 55 msm_dsim->is_bonded_dsi = of_property_read_bool(np, "qcom,dual-dsi-mode"); in dsi_mgr_parse_of() [all …]
|
H A D | dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 #include "dsi.h" 10 unsigned long host_flags = msm_dsi_host_get_mode_flags(msm_dsi->host); in msm_dsi_is_cmd_mode() 17 return msm_dsi_host_get_dsc_config(msm_dsi->host); in msm_dsi_get_dsc_config() 22 struct platform_device *pdev = msm_dsi->pdev; in dsi_get_phy() 26 phy_node = of_parse_phandle(pdev->dev.of_node, "phys", 0); in dsi_get_phy() 28 DRM_DEV_ERROR(&pdev->dev, "cannot find phy device\n"); in dsi_get_phy() 29 return -ENXIO; in dsi_get_phy() 34 msm_dsi->phy = platform_get_drvdata(phy_pdev); in dsi_get_phy() 35 msm_dsi->phy_dev = &phy_pdev->dev; in dsi_get_phy() [all …]
|
/openbmc/linux/drivers/gpu/drm/bridge/synopsys/ |
H A D | dw-mipi-dsi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 7 * This generic Synopsys DesignWare MIPI DSI host driver is based on the 8 * Rockchip version from rockchip/dw-mipi-dsi.c with phy & bridge APIs. 193 #define N_LANES(n) (((n) - 1) & 0x3) 226 #define VPG_DEFS(name, dsi) \ argument 227 ((void __force *)&((*dsi).vpg_defs.name)) 229 #define REGISTER(name, mask, dsi) \ argument 230 { #name, VPG_DEFS(name, dsi), mask, dsi } 236 struct dw_mipi_dsi *dsi; member 265 struct dw_mipi_dsi *master; /* dual-dsi master ptr */ member [all …]
|
/openbmc/linux/drivers/gpu/drm/tegra/ |
H A D | dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 29 #include "dsi.h" 30 #include "mipi-phy.h" 81 /* for ganged-mode support */ 82 struct tegra_dsi *master; member 102 static struct tegra_dsi_state *tegra_dsi_get_state(struct tegra_dsi *dsi) in tegra_dsi_get_state() argument 104 return to_dsi_state(dsi->output.connector.state); in tegra_dsi_get_state() 107 static inline u32 tegra_dsi_readl(struct tegra_dsi *dsi, unsigned int offset) in tegra_dsi_readl() argument 109 u32 value = readl(dsi->regs + (offset << 2)); in tegra_dsi_readl() 111 trace_dsi_readl(dsi->dev, offset, value); in tegra_dsi_readl() [all …]
|
/openbmc/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 83 * drm_of_component_match_add - Add a component helper OF node match rule 84 * @master: master device 89 void drm_of_component_match_add(struct device *master, in drm_of_component_match_add() argument 95 component_match_add_release(master, matchptr, component_release_of, in drm_of_component_match_add() 101 * drm_of_component_probe - Generic probe function for a component based master [all …]
|
/openbmc/linux/drivers/gpu/drm/rockchip/ |
H A D | dw-mipi-dsi-rockchip.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Chris Zhong <zyw@rock-chips.com> 6 * Nickey Yang <nickey.yang@rock-chips.com> 41 #define N_LANES(n) ((((n) - 1) & 0x3) << 0) 93 #define INPUT_DIVIDER(val) (((val) - 1) & 0x7f) 96 #define LOOP_DIV_LOW_SEL(val) (((val) - 1) & 0x1f) 97 #define LOOP_DIV_HIGH_SEL(val) ((((val) - 1) >> 5) & 0xf) 264 /* dual-channel */ 355 return -EINVAL; in max_mbps_to_parameter() 358 static inline void dsi_write(struct dw_mipi_dsi_rockchip *dsi, u32 reg, u32 val) in dsi_write() argument [all …]
|
/openbmc/linux/drivers/gpu/drm/msm/ |
H A D | NOTES | 5 + MDP3 - ?? seems to be what is on geeksphone peak device 6 + MDP4 - S3 (APQ8060, touchpad), S4-pro (APQ8064, nexus4 & ifc6410) 7 + MDP5 - snapdragon 800 12 Plus a handful of blocks around them for HDMI/DSI/etc output. 18 But, HDMI/DSI/etc blocks seem like they can be shared across multiple 20 with N different kms devices from xf86-video-freedreno. Plus, it 27 And one or more 'struct msm_gpu' for the various different gpu sub- 38 plane -> PIPE{RGBn,VGn} \ 39 crtc -> OVLP{n} + DMA{P,S,E} (??) |-> MDP "device" 40 encoder -> DTV/LCDC/DSI (within MDP4) / [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/msm/ |
H A D | dsi-controller-main.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/display/msm/dsi-controller-main.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm Display DSI controller 10 - Krishna Manikandan <quic_mkrishn@quicinc.com> 15 - items: 16 - enum: 17 - qcom,apq8064-dsi-ctrl 18 - qcom,msm8226-dsi-ctrl [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/sprd/ |
H A D | sprd,display-subsystem.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/sprd/sprd,display-subsystem.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Unisoc DRM master device 10 - Kevin Tang <kevin.tang@unisoc.com> 13 The Unisoc DRM master device is a virtual device needed to list all 23 dpu0 and dpu1 both binding to DSI for dual mipi-dsi display; 24 dpu0 binding to DSI for primary display, and dpu1 binding to DP for external display; 26 +-----------------------------------------+ [all …]
|
/openbmc/linux/drivers/gpu/drm/vc4/ |
H A D | vc4_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * BCM2835 contains two DSI modules, DSI0 and DSI1. DSI0 is a 10 * single-lane DSI controller, while DSI1 is a more modern 4-lane DSI 16 * This driver has been tested for DSI1 video-mode display only 21 #include <linux/clk-provider.h> 25 #include <linux/dma-mapping.h> 146 * of going to LP-STOP. 149 /* Transmit blanking packet only during vblank, instead of allowing LP-STOP. */ 151 /* Transmit blanking packet only during HFP, instead of allowing LP-STOP. */ 153 /* Transmit blanking packet only during HBP, instead of allowing LP-STOP. */ [all …]
|
/openbmc/linux/drivers/gpu/drm/msm/dsi/phy/ |
H A D | dsi_phy_14nm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/clk-provider.h> 11 #include "dsi.xml.h" 17 * DSI PLL 14nm - clock diagram (eg: DSI0): 22 * +----+ | +----+ 23 * dsi0vco_clk ---| n1 |--o--| /8 |-- dsi0pllbyte 24 * +----+ | +----+ 26 * | +----+ | 27 * o---| /2 |--o--|\ 28 * | +----+ | \ +----+ [all …]
|
/openbmc/u-boot/doc/device-tree-bindings/video/ |
H A D | exynos_mipi_dsi.txt | 1 Exynos MIPI-DSIM Controller 6 compatible: should be "samsung,exynos-mipi-dsi" 7 reg: Base address of MIPI-DSIM IP. 10 samsung,dsim-config-e-interface: interface to be used (RGB interface 12 samsung,dsim-config-e-virtual-ch: virtual channel number that main 14 samsung,dsim-config-e-pixel-format: pixel stream format for main 16 samsung,dsim-config-e-burst-mode: selects Burst mode in Video mode. 17 in Non-burst mode, RGB data area is filled with RGB data and 19 samsung,dsim-config-e-no-data-lane: data lane count used by Master. 20 samsung,dsim-config-e-byte-clk: select byte clock source. [all …]
|
/openbmc/linux/drivers/gpu/drm/hisilicon/kirin/ |
H A D | dw_drm_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * DesignWare MIPI DSI Host Controller v1.02 driver 6 * Copyright (c) 2014-2016 HiSilicon Limited. 98 struct dw_dsi dsi; member 152 phy->pll_vco_750M = dphy_range_info[i].pll_vco_750M; in dsi_calc_phy_rate() 153 phy->hstx_ckg_sel = dphy_range_info[i].hstx_ckg_sel; in dsi_calc_phy_rate() 155 if (phy->hstx_ckg_sel <= 7 && in dsi_calc_phy_rate() 156 phy->hstx_ckg_sel >= 4) in dsi_calc_phy_rate() 157 q_pll = 0x10 >> (7 - phy->hstx_ckg_sel); in dsi_calc_phy_rate() 191 phy->pll_fbd_p = 0; in dsi_calc_phy_rate() [all …]
|
/openbmc/linux/drivers/gpu/drm/mediatek/ |
H A D | mtk_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 223 static void mtk_dsi_mask(struct mtk_dsi *dsi, u32 offset, u32 mask, u32 data) in mtk_dsi_mask() argument 225 u32 temp = readl(dsi->regs + offset); in mtk_dsi_mask() 227 writel((temp & ~mask) | (data & mask), dsi->regs + offset); in mtk_dsi_mask() 230 static void mtk_dsi_phy_timconfig(struct mtk_dsi *dsi) in mtk_dsi_phy_timconfig() argument 233 u32 data_rate_mhz = DIV_ROUND_UP(dsi->data_rate, 1000000); in mtk_dsi_phy_timconfig() 234 struct mtk_phy_timing *timing = &dsi->phy_timing; in mtk_dsi_phy_timconfig() 236 timing->lpx = (60 * data_rate_mhz / (8 * 1000)) + 1; in mtk_dsi_phy_timconfig() 237 timing->da_hs_prepare = (80 * data_rate_mhz + 4 * 1000) / 8000; in mtk_dsi_phy_timconfig() 238 timing->da_hs_zero = (170 * data_rate_mhz + 10 * 1000) / 8000 + 1 - in mtk_dsi_phy_timconfig() [all …]
|
/openbmc/linux/drivers/gpu/drm/bridge/ |
H A D | tc358762.c | 1 // SPDX-License-Identifier: GPL-2.0 39 /* DSI layer registers */ 40 #define DSI_STARTDSI 0x0204 /* START control bit of DSI-TX */ 56 /* SPI Master Registers */ 66 /* Lane enable PPI and DSI register bits */ 84 int ret = ctx->error; in tc358762_clear_error() 86 ctx->error = 0; in tc358762_clear_error() 92 struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); in tc358762_write() local 96 if (ctx->error) in tc358762_write() 106 ret = mipi_dsi_generic_write(dsi, data, sizeof(data)); in tc358762_write() [all …]
|
/openbmc/linux/drivers/gpu/drm/i915/display/ |
H A D | intel_combo_phy.c | 1 // SPDX-License-Identifier: MIT 17 for ((__phy) = I915_MAX_PHYS; (__phy)-- > PHY_A;) \ 33 .name = "0.85V dot0 (low-voltage)", 85 (0xff << 16) | 0xff, procmon->dw1); in icl_set_procmon_ref_values() 87 intel_de_write(dev_priv, ICL_PORT_COMP_DW9(phy), procmon->dw9); in icl_set_procmon_ref_values() 88 intel_de_write(dev_priv, ICL_PORT_COMP_DW10(phy), procmon->dw10); in icl_set_procmon_ref_values() 98 drm_dbg(&dev_priv->drm, in check_phy_reg() 117 drm_dbg_kms(&dev_priv->drm, in icl_verify_procmon_ref_values() 119 phy_name(phy), procmon->name); in icl_verify_procmon_ref_values() 122 (0xff << 16) | 0xff, procmon->dw1); in icl_verify_procmon_ref_values() [all …]
|
/openbmc/u-boot/drivers/video/exynos/ |
H A D | exynos_mipi_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 24 #define master_to_driver(a) (a->dsim_lcd_drv) 25 #define master_to_device(a) (a->dsim_lcd_dev) 45 return -EFAULT; in exynos_mipi_dsi_register_lcd_device() 48 if (!lcd_dev->name) { in exynos_mipi_dsi_register_lcd_device() 50 return -EFAULT; in exynos_mipi_dsi_register_lcd_device() 56 return -EFAULT; in exynos_mipi_dsi_register_lcd_device() 59 dsim_ddi->dsim_lcd_dev = lcd_dev; in exynos_mipi_dsi_register_lcd_device() 61 list_add_tail(&dsim_ddi->list, &dsim_ddi_list); in exynos_mipi_dsi_register_lcd_device() 73 lcd_dev = dsim_ddi->dsim_lcd_dev; in exynos_mipi_dsi_find_lcd_device() [all …]
|
/openbmc/linux/drivers/gpu/drm/sprd/ |
H A D | sprd_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0 139 return (readl(ctx->base + offset) & mask) >> shift; in dsi_reg_rd() 148 ret = readl(ctx->base + offset); in dsi_reg_wr() 151 writel(ret, ctx->base + offset); in dsi_reg_wr() 158 u32 ret = readl(ctx->base + offset); in dsi_reg_up() 160 writel((ret & ~mask) | (val & mask), ctx->base + offset); in dsi_reg_up() 165 struct sprd_dsi *dsi = context; in regmap_tst_io_write() local 166 struct dsi_context *ctx = &dsi->ctx; in regmap_tst_io_write() 169 return -EINVAL; in regmap_tst_io_write() 171 drm_dbg(dsi->drm, "reg = 0x%02x, val = 0x%02x\n", reg, val); in regmap_tst_io_write() [all …]
|
/openbmc/linux/drivers/gpu/drm/mcde/ |
H A D | mcde_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 32 /* PRCMU DSI reset registers */ 73 d = host_to_mcde_dsi(mdsi->host); in mcde_dsi_irq() 75 dev_dbg(d->dev, "%s called\n", __func__); in mcde_dsi_irq() 77 val = readl(d->regs + DSI_DIRECT_CMD_STS_FLAG); in mcde_dsi_irq() 79 dev_dbg(d->dev, "DSI_DIRECT_CMD_STS_FLAG = %08x\n", val); in mcde_dsi_irq() 81 dev_dbg(d->dev, "direct command write completed\n"); in mcde_dsi_irq() 84 dev_dbg(d->dev, "direct command TE received\n"); in mcde_dsi_irq() 87 dev_err(d->dev, "direct command ACK ERR received\n"); in mcde_dsi_irq() 89 dev_err(d->dev, "direct command read ERR received\n"); in mcde_dsi_irq() [all …]
|
/openbmc/linux/drivers/gpu/drm/sun4i/ |
H A D | sun6i_mipi_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * Copyright (C) 2017-2018 Bootlin 11 #include <linux/crc-ccitt.h> 14 #include <linux/phy/phy-mipi-dphy.h> 291 static void sun6i_dsi_inst_abort(struct sun6i_dsi *dsi) in sun6i_dsi_inst_abort() argument 293 regmap_update_bits(dsi->regs, SUN6I_DSI_BASIC_CTL0_REG, in sun6i_dsi_inst_abort() 297 static void sun6i_dsi_inst_commit(struct sun6i_dsi *dsi) in sun6i_dsi_inst_commit() argument 299 regmap_update_bits(dsi->regs, SUN6I_DSI_BASIC_CTL0_REG, in sun6i_dsi_inst_commit() 304 static int sun6i_dsi_inst_wait_for_completion(struct sun6i_dsi *dsi) in sun6i_dsi_inst_wait_for_completion() argument 308 return regmap_read_poll_timeout(dsi->regs, SUN6I_DSI_BASIC_CTL0_REG, in sun6i_dsi_inst_wait_for_completion() [all …]
|