| /OK3568_Linux_fs/kernel/drivers/gpu/drm/bridge/ |
| H A D | nwl-dsi.c | 3 * 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 D | cdns-dsi.c | 507 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 D | rk628_dsi.c | 243 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 D | dw-mipi-dsi.c | 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. 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 D | mtk_dsi.c | 221 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 D | dw_mipi_dsi.c | 254 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 D | drm_mipi_dsi.c | 3 * 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 D | rk618_dsi.c | 244 #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 D | dw-mipi-dsi-rockchip.c | 369 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 D | dsi.c | 29 #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 D | dsi.c | 7 #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 D | exynos_drm_dsi.c | 3 * 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 D | drm_mipi_dsi.c | 2 * 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 D | sun6i_mipi_dsi.c | 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() 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 D | panel-asus-z00t-tm5p5-n35596.c | 16 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 D | dw_mipi_dsi-stm.c | 25 /* 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 D | rk628_dsi.c | 46 /* 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 D | vc4_dsi.c | 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 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 D | rk618_dsi.c | 282 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 D | drm_mipi_dsi.h | 3 * 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 D | drm_mipi_dsi.h | 3 * 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 D | kirin_drm_dsi.c | 3 * 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 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. 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 D | dsi.txt | 1 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 D | dsi.c | 3 * 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 …]
|