Home
last modified time | relevance | path

Searched full:dsi (Results 1 – 25 of 676) sorted by relevance

12345678910>>...28

/OK3568_Linux_fs/kernel/drivers/gpu/drm/bridge/
H A Dnwl-dsi.c3 * i.MX8 NWL MIPI DSI host driver
33 #include "nwl-dsi.h"
35 #define DRV_NAME "nwl-dsi"
83 * The DSI host controller needs this reset sequence according to NWL:
84 * 1. Deassert pclk reset to get access to DSI regs
85 * 2. Configure DSI Host and DPHY and enable DPHY
87 * 4. Send DSI cmds to configure peripheral (handled by panel drv)
89 * DSI data
91 * TODO: Since panel_bridges do their DSI setup in enable we
100 /* DSI clocks */
[all …]
H A Dcdns-dsi.c507 static int cdns_dsi_mode2cfg(struct cdns_dsi *dsi, in cdns_dsi_mode2cfg() argument
512 struct cdns_dsi_output *output = &dsi->output; in cdns_dsi_mode2cfg()
553 static int cdns_dsi_adjust_phy_config(struct cdns_dsi *dsi, in cdns_dsi_adjust_phy_config() argument
559 struct cdns_dsi_output *output = &dsi->output; in cdns_dsi_adjust_phy_config()
576 * Make sure DSI htotal is aligned on a lane boundary when calculating in cdns_dsi_adjust_phy_config()
602 static int cdns_dsi_check_conf(struct cdns_dsi *dsi, in cdns_dsi_check_conf() argument
607 struct cdns_dsi_output *output = &dsi->output; in cdns_dsi_check_conf()
613 ret = cdns_dsi_mode2cfg(dsi, mode, dsi_cfg, mode_valid_check); in cdns_dsi_check_conf()
621 ret = cdns_dsi_adjust_phy_config(dsi, dsi_cfg, phy_cfg, mode, mode_valid_check); in cdns_dsi_check_conf()
625 ret = phy_validate(dsi->dphy, PHY_MODE_MIPI_DPHY, 0, &output->phy_opts); in cdns_dsi_check_conf()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/rk628/
H A Drk628_dsi.c243 static inline void dsi_write(struct rk628_dsi *dsi, u32 reg, u32 val) in dsi_write() argument
245 regmap_write(dsi->regmap, dsi->reg_base + reg, val); in dsi_write()
248 static inline u32 dsi_read(struct rk628_dsi *dsi, u32 reg) in dsi_read() argument
252 regmap_read(dsi->regmap, dsi->reg_base + reg, &val); in dsi_read()
257 static inline void dsi_update_bits(struct rk628_dsi *dsi, u32 reg, u32 mask, in dsi_update_bits() argument
262 orig = dsi_read(dsi, reg); in dsi_update_bits()
265 dsi_write(dsi, reg, tmp); in dsi_update_bits()
268 static inline void dpishutdn_assert(struct rk628_dsi *dsi) in dpishutdn_assert() argument
270 regmap_update_bits(dsi->grf, dsi->id ? in dpishutdn_assert()
275 static inline void dpishutdn_deassert(struct rk628_dsi *dsi) in dpishutdn_deassert() argument
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/bridge/synopsys/
H A Ddw-mipi-dsi.c7 * 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.
232 #define VPG_DEFS(name, dsi) \ argument
233 ((void __force *)&((*dsi).vpg_defs.name))
235 #define REGISTER(name, mask, dsi) \ argument
236 { #name, VPG_DEFS(name, dsi), mask, dsi }
242 struct dw_mipi_dsi *dsi; member
275 struct dw_mipi_dsi *master; /* dual-dsi master ptr */
276 struct dw_mipi_dsi *slave; /* dual-dsi slave ptr */
284 static inline bool dw_mipi_is_dual_mode(struct dw_mipi_dsi *dsi) in dw_mipi_is_dual_mode() argument
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/mediatek/
H A Dmtk_dsi.c221 static void mtk_dsi_mask(struct mtk_dsi *dsi, u32 offset, u32 mask, u32 data) in mtk_dsi_mask() argument
223 u32 temp = readl(dsi->regs + offset); in mtk_dsi_mask()
225 writel((temp & ~mask) | (data & mask), dsi->regs + offset); in mtk_dsi_mask()
228 static void mtk_dsi_phy_timconfig(struct mtk_dsi *dsi) in mtk_dsi_phy_timconfig() argument
231 u32 data_rate_mhz = DIV_ROUND_UP(dsi->data_rate, 1000000); in mtk_dsi_phy_timconfig()
232 struct mtk_phy_timing *timing = &dsi->phy_timing; in mtk_dsi_phy_timconfig()
260 writel(timcon0, dsi->regs + DSI_PHY_TIMECON0); in mtk_dsi_phy_timconfig()
261 writel(timcon1, dsi->regs + DSI_PHY_TIMECON1); in mtk_dsi_phy_timconfig()
262 writel(timcon2, dsi->regs + DSI_PHY_TIMECON2); in mtk_dsi_phy_timconfig()
263 writel(timcon3, dsi->regs + DSI_PHY_TIMECON3); in mtk_dsi_phy_timconfig()
[all …]
/OK3568_Linux_fs/u-boot/drivers/video/drm/
H A Ddw_mipi_dsi.c254 static inline void dsi_write(struct dw_mipi_dsi *dsi, u32 reg, u32 val) in dsi_write() argument
256 writel(val, dsi->base + reg); in dsi_write()
259 static inline u32 dsi_read(struct dw_mipi_dsi *dsi, u32 reg) in dsi_read() argument
261 return readl(dsi->base + reg); in dsi_read()
264 static inline void dsi_update_bits(struct dw_mipi_dsi *dsi, in dsi_update_bits() argument
269 orig = dsi_read(dsi, reg); in dsi_update_bits()
272 dsi_write(dsi, reg, tmp); in dsi_update_bits()
275 static void grf_field_write(struct dw_mipi_dsi *dsi, enum grf_reg_fields index, in grf_field_write() argument
278 const u32 field = dsi->id ? dsi->pdata->dsi1_grf_reg_fields[index] : in grf_field_write()
279 dsi->pdata->dsi0_grf_reg_fields[index]; in grf_field_write()
[all …]
H A Ddrm_mipi_dsi.c3 * MIPI DSI Bus
17 * mipi_dsi_attach - attach a DSI device to its DSI host
18 * @dsi: DSI peripheral
20 int mipi_dsi_attach(struct mipi_dsi_device *dsi) in mipi_dsi_attach() argument
22 const struct mipi_dsi_host_ops *ops = dsi->host->ops; in mipi_dsi_attach()
27 return ops->attach(dsi->host, dsi); in mipi_dsi_attach()
31 * mipi_dsi_detach - detach a DSI device from its DSI host
32 * @dsi: DSI peripheral
34 int mipi_dsi_detach(struct mipi_dsi_device *dsi) in mipi_dsi_detach() argument
36 const struct mipi_dsi_host_ops *ops = dsi->host->ops; in mipi_dsi_detach()
[all …]
H A Drk618_dsi.c244 #define dsi_read_poll_timeout(dsi, addr, val, cond, sleep_us, timeout_us) \ argument
248 (val) = dsi_read(dsi, addr); \
252 (val) = dsi_read(dsi, addr); \
261 static inline int dsi_write(struct rk618_dsi *dsi, u32 reg, u32 val) in dsi_write() argument
263 return rk618_i2c_write(dsi->parent, reg, val); in dsi_write()
266 static inline u32 dsi_read(struct rk618_dsi *dsi, u32 reg) in dsi_read() argument
270 rk618_i2c_read(dsi->parent, reg, &val); in dsi_read()
275 static inline void dsi_update_bits(struct rk618_dsi *dsi, in dsi_update_bits() argument
280 orig = dsi_read(dsi, reg); in dsi_update_bits()
283 dsi_write(dsi, reg, tmp); in dsi_update_bits()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/
H A Ddw-mipi-dsi-rockchip.c369 static inline void dsi_write(struct dw_mipi_dsi_rockchip *dsi, u32 reg, u32 val) in dsi_write() argument
371 writel(val, dsi->base + reg); in dsi_write()
374 static inline u32 dsi_read(struct dw_mipi_dsi_rockchip *dsi, u32 reg) in dsi_read() argument
376 return readl(dsi->base + reg); in dsi_read()
379 static inline void dsi_set(struct dw_mipi_dsi_rockchip *dsi, u32 reg, u32 mask) in dsi_set() argument
381 dsi_write(dsi, reg, dsi_read(dsi, reg) | mask); in dsi_set()
384 static inline void dsi_update_bits(struct dw_mipi_dsi_rockchip *dsi, u32 reg, in dsi_update_bits() argument
387 dsi_write(dsi, reg, (dsi_read(dsi, reg) & ~mask) | val); in dsi_update_bits()
390 static void dw_mipi_dsi_phy_write(struct dw_mipi_dsi_rockchip *dsi, in dw_mipi_dsi_phy_write() argument
399 dsi_write(dsi, DSI_PHY_TST_CTRL0, PHY_TESTCLK | PHY_UNTESTCLR); in dw_mipi_dsi_phy_write()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/tegra/
H A Ddsi.c29 #include "dsi.h"
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()
116 static inline void tegra_dsi_writel(struct tegra_dsi *dsi, u32 value, in tegra_dsi_writel() argument
119 trace_dsi_writel(dsi->dev, offset, value); in tegra_dsi_writel()
120 writel(value, dsi->regs + (offset << 2)); in tegra_dsi_writel()
202 struct tegra_dsi *dsi = node->info_ent->data; in tegra_dsi_show_regs() local
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/omapdrm/dss/
H A Ddsi.c7 #define DSS_SUBSYS_NAME "DSI"
47 /* DSI Protocol Engine */
111 #define REG_GET(dsi, idx, start, end) \ argument
112 FLD_GET(dsi_read_reg(dsi, idx), start, end)
114 #define REG_FLD_MOD(dsi, idx, val, start, end) \ argument
115 dsi_write_reg(dsi, idx, FLD_MOD(dsi_read_reg(dsi, idx), val, start, end))
207 static int dsi_display_init_dispc(struct dsi_data *dsi);
208 static void dsi_display_uninit_dispc(struct dsi_data *dsi);
210 static int dsi_vc_send_null(struct dsi_data *dsi, int channel);
212 /* DSI PLL HSDIV indices */
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/exynos/
H A Dexynos_drm_dsi.c3 * Samsung SoC MIPI DSI Master driver.
321 static inline void exynos_dsi_write(struct exynos_dsi *dsi, enum reg_idx idx, in exynos_dsi_write() argument
325 writel(val, dsi->reg_base + dsi->driver_data->reg_ofs[idx]); in exynos_dsi_write()
328 static inline u32 exynos_dsi_read(struct exynos_dsi *dsi, enum reg_idx idx) in exynos_dsi_read() argument
330 return readl(dsi->reg_base + dsi->driver_data->reg_ofs[idx]); in exynos_dsi_read()
510 { .compatible = "samsung,exynos3250-mipi-dsi",
512 { .compatible = "samsung,exynos4210-mipi-dsi",
514 { .compatible = "samsung,exynos5410-mipi-dsi",
516 { .compatible = "samsung,exynos5422-mipi-dsi",
518 { .compatible = "samsung,exynos5433-mipi-dsi",
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/
H A Ddrm_mipi_dsi.c2 * MIPI DSI Bus
41 * DOC: dsi helpers
43 * These functions contain some common logic and helpers to deal with MIPI DSI
46 * Helpers are provided for a number of standard MIPI DSI command as well as a
52 struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); in mipi_dsi_device_match() local
58 /* compare DSI device and driver names */ in mipi_dsi_device_match()
59 if (!strcmp(dsi->name, drv->name)) in mipi_dsi_device_match()
67 struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); in mipi_dsi_uevent() local
75 dsi->name); in mipi_dsi_uevent()
92 .name = "mipi-dsi",
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/sun4i/
H A Dsun6i_mipi_dsi.c291 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()
314 static void sun6i_dsi_inst_setup(struct sun6i_dsi *dsi, in sun6i_dsi_inst_setup() argument
321 regmap_write(dsi->regs, SUN6I_DSI_INST_FUNC_REG(id), in sun6i_dsi_inst_setup()
329 static void sun6i_dsi_inst_init(struct sun6i_dsi *dsi, in sun6i_dsi_inst_init() argument
334 sun6i_dsi_inst_setup(dsi, DSI_INST_ID_LP11, DSI_INST_MODE_STOP, in sun6i_dsi_inst_init()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/panel/
H A Dpanel-asus-z00t-tm5p5-n35596.c16 struct mipi_dsi_device *dsi; member
27 #define dsi_generic_write_seq(dsi, seq...) do { \ argument
30 ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d)); \
35 #define dsi_dcs_write_seq(dsi, seq...) do { \ argument
38 ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \
55 struct mipi_dsi_device *dsi = ctx->dsi; in tm5p5_nt35596_on() local
57 dsi_generic_write_seq(dsi, 0xff, 0x05); in tm5p5_nt35596_on()
58 dsi_generic_write_seq(dsi, 0xfb, 0x01); in tm5p5_nt35596_on()
59 dsi_generic_write_seq(dsi, 0xc5, 0x31); in tm5p5_nt35596_on()
60 dsi_generic_write_seq(dsi, 0xff, 0x04); in tm5p5_nt35596_on()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/stm/
H A Ddw_mipi_dsi-stm.c25 /* DSI digital registers & bit definitions */
29 /* DSI wrapper registers & bit definitions */
32 #define WCFGR_DSIM BIT(0) /* DSI Mode */
36 #define WCR_DSIEN BIT(3) /* DSI ENable */
60 /* dsi color format coding according to the datasheet */
80 struct dw_mipi_dsi *dsi; member
87 static inline void dsi_write(struct dw_mipi_dsi_stm *dsi, u32 reg, u32 val) in dsi_write() argument
89 writel(val, dsi->base + reg); in dsi_write()
92 static inline u32 dsi_read(struct dw_mipi_dsi_stm *dsi, u32 reg) in dsi_read() argument
94 return readl(dsi->base + reg); in dsi_read()
[all …]
/OK3568_Linux_fs/kernel/drivers/misc/rk628/
H A Drk628_dsi.c46 /* MIPI DSI Processor-to-Peripheral transaction types */
97 /* MIPI DSI Peripheral-to-Processor transaction types */
164 * struct mipi_dsi_msg - read/write DSI buffer
186 * struct mipi_dsi_packet - represents a MIPI DSI packet in protocol format
200 static inline int dsi_write(struct rk628 *rk628, const struct rk628_dsi *dsi, in dsi_write() argument
205 dsi_base = dsi->id ? DSI1_BASE : DSI0_BASE; in dsi_write()
210 static inline int dsi_read(struct rk628 *rk628, const struct rk628_dsi *dsi, in dsi_read() argument
215 dsi_base = dsi->id ? DSI1_BASE : DSI0_BASE; in dsi_read()
221 const struct rk628_dsi *dsi, in dsi_update_bits() argument
226 dsi_base = dsi->id ? DSI1_BASE : DSI0_BASE; in dsi_update_bits()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/vc4/
H A Dvc4_dsi.c9 * 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
550 /* General DSI hardware state. */
568 /* DSI channel for the panel we're connected to. */
575 /* Input clock from CPRMAN to the digital PHY, for the DSI
580 /* Input clock to the analog PHY, used to generate the DSI bit
585 /* HS Clocks generated within the DSI analog PHY. */
604 dsi_dma_workaround_write(struct vc4_dsi *dsi, u32 offset, u32 val) in dsi_dma_workaround_write() argument
606 struct dma_chan *chan = dsi->reg_dma_chan; in dsi_dma_workaround_write()
613 writel(val, dsi->regs + offset); in dsi_dma_workaround_write()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/rk618/
H A Drk618_dsi.c282 static void rk618_dsi_set_hs_clk(struct rk618_dsi *dsi) in rk618_dsi_set_hs_clk() argument
284 const struct drm_display_mode *mode = &dsi->mode; in rk618_dsi_set_hs_clk()
285 struct mipi_dphy *phy = &dsi->phy; in rk618_dsi_set_hs_clk()
286 struct device *dev = dsi->dev; in rk618_dsi_set_hs_clk()
294 int bpp = mipi_dsi_pixel_format_to_bpp(dsi->format); in rk618_dsi_set_hs_clk()
295 unsigned int lanes = dsi->lanes; in rk618_dsi_set_hs_clk()
309 fref = clk_get_rate(dsi->parent->clkin); in rk618_dsi_set_hs_clk()
346 static void rk618_dsi_phy_power_off(struct rk618_dsi *dsi) in rk618_dsi_phy_power_off() argument
348 struct mipi_dphy *phy = &dsi->phy; in rk618_dsi_phy_power_off()
356 static void rk618_dsi_phy_power_on(struct rk618_dsi *dsi, u32 txclkesc) in rk618_dsi_phy_power_on() argument
[all …]
/OK3568_Linux_fs/kernel/include/drm/
H A Ddrm_mipi_dsi.h3 * MIPI DSI Bus
28 * struct mipi_dsi_msg - read/write DSI buffer
57 * struct mipi_dsi_packet - represents a MIPI DSI packet in protocol format
75 * struct mipi_dsi_host_ops - DSI bus operations
76 * @attach: attach DSI device to DSI host
77 * @detach: detach DSI device from DSI host
78 * @transfer: transmit a DSI packet
80 * DSI packets transmitted by .transfer() are passed in as mipi_dsi_msg
88 * Note that typically DSI packet transmission is atomic, so the .transfer()
94 struct mipi_dsi_device *dsi);
[all …]
/OK3568_Linux_fs/u-boot/include/drm/
H A Ddrm_mipi_dsi.h3 * MIPI DSI Bus
25 * struct mipi_dsi_msg - read/write DSI buffer
50 * struct mipi_dsi_packet - represents a MIPI DSI packet in protocol format
68 * struct mipi_dsi_host_ops - DSI bus operations
69 * @attach: attach DSI device to DSI host
70 * @detach: detach DSI device from DSI host
71 * @transfer: transmit a DSI packet
73 * DSI packets transmitted by .transfer() are passed in as mipi_dsi_msg
81 * Note that typically DSI packet transmission is atomic, so the .transfer()
87 struct mipi_dsi_device *dsi);
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/hisilicon/kirin/
H A Dkirin_drm_dsi.c3 * DesignWare MIPI DSI Host Controller v1.02 driver
39 struct dw_dsi *dsi; in dsi_set_output_client() local
43 /* find dsi encoder */ in dsi_set_output_client()
47 dsi = encoder_to_dsi(encoder); in dsi_set_output_client()
57 * set the proper dsi output client in dsi_set_output_client()
61 if (client != dsi->cur_client) { in dsi_set_output_client()
66 gpiod_set_value_cansleep(dsi->gpio_mux, client); in dsi_set_output_client()
68 dsi->cur_client = client; in dsi_set_output_client()
78 /************************for the panel attach to dsi*****************************/
81 struct dw_dsi *dsi = connector_to_dsi(connector); in dsi_connector_get_modes() local
[all …]
/OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/
H A Dmipi-dsi-bus.txt1 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.
26 bus. DSI peripherals are addressed using a 2-bit virtual channel number, so
34 conjunction with another DSI host to drive the same peripheral. Hardware
[all …]
/OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/msm/
H A Ddsi.txt1 Qualcomm Technologies Inc. adreno/snapdragon DSI output
3 DSI Controller:
6 * "qcom,mdss-dsi-ctrl"
10 - interrupts: The interrupt signal from the DSI block.
27 by a DSI PHY block. See [1] for details on clock bindings.
31 - phys: phandle to DSI PHY device node
34 - ports: Contains 2 DSI controller ports as child nodes. Each port contains
38 - panel@0: Node of panel connected to this DSI controller.
40 - qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is
41 driving a panel which needs 2 DSI links.
[all …]
/OK3568_Linux_fs/kernel/drivers/video/fbdev/omap2/omapfb/dss/
H A Ddsi.c3 * linux/drivers/video/omap2/dss/dsi.c
9 #define DSS_SUBSYS_NAME "DSI"
46 /* DSI Protocol Engine */
212 /* DSI PLL HSDIV indices */
434 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev); in dsi_write_reg() local
438 case DSI_PROTO: base = dsi->proto_base; break; in dsi_write_reg()
439 case DSI_PHY: base = dsi->phy_base; break; in dsi_write_reg()
440 case DSI_PLL: base = dsi->pll_base; break; in dsi_write_reg()
450 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev); in dsi_read_reg() local
454 case DSI_PROTO: base = dsi->proto_base; break; in dsi_read_reg()
[all …]

12345678910>>...28