/Linux-v5.15/drivers/gpu/drm/tegra/ |
D | mipi-phy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include "mipi-phy.h" 12 * Default D-PHY timings based on MIPI D-PHY specification. Derived from the 13 * valid ranges specified in Section 6.9, Table 14, Page 40 of the D-PHY 16 int mipi_dphy_timing_get_default(struct mipi_dphy_timing *timing, in mipi_dphy_timing_get_default() argument 19 timing->clkmiss = 0; in mipi_dphy_timing_get_default() 20 timing->clkpost = 70 + 52 * period; in mipi_dphy_timing_get_default() 21 timing->clkpre = 8; in mipi_dphy_timing_get_default() 22 timing->clkprepare = 65; in mipi_dphy_timing_get_default() 23 timing->clksettle = 95; in mipi_dphy_timing_get_default() [all …]
|
/Linux-v5.15/drivers/gpu/drm/msm/dsi/phy/ |
D | dsi_phy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 #include <linux/clk-provider.h> 8 #include <dt-bindings/phy/phy.h> 13 (((n) >= 0) ? (((n) + (d) - 1) / (d)) : (((n) - (d) + 1) / (d))) 20 v = (tmax - tmin) * percent; in linear_inter() 23 return max_t(s32, min_result, v - 1); in linear_inter() 28 static void dsi_dphy_timing_calc_clk_zero(struct msm_dsi_dphy_timing *timing, in dsi_dphy_timing_calc_clk_zero() argument 35 temp = 300 * coeff - ((timing->clk_prepare >> 1) + 1) * 2 * ui; in dsi_dphy_timing_calc_clk_zero() 36 tmin = S_DIV_ROUND_UP(temp, ui) - 2; in dsi_dphy_timing_calc_clk_zero() 46 temp = (timing->hs_rqst + timing->clk_prepare + clk_z) & 0x7; in dsi_dphy_timing_calc_clk_zero() [all …]
|
D | dsi_phy_20nm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 struct msm_dsi_dphy_timing *timing) in dsi_20nm_dphy_set_timing() argument 13 void __iomem *base = phy->base; in dsi_20nm_dphy_set_timing() 16 DSI_20nm_PHY_TIMING_CTRL_0_CLK_ZERO(timing->clk_zero)); in dsi_20nm_dphy_set_timing() 18 DSI_20nm_PHY_TIMING_CTRL_1_CLK_TRAIL(timing->clk_trail)); in dsi_20nm_dphy_set_timing() 20 DSI_20nm_PHY_TIMING_CTRL_2_CLK_PREPARE(timing->clk_prepare)); in dsi_20nm_dphy_set_timing() 21 if (timing->clk_zero & BIT(8)) in dsi_20nm_dphy_set_timing() 25 DSI_20nm_PHY_TIMING_CTRL_4_HS_EXIT(timing->hs_exit)); in dsi_20nm_dphy_set_timing() 27 DSI_20nm_PHY_TIMING_CTRL_5_HS_ZERO(timing->hs_zero)); in dsi_20nm_dphy_set_timing() 29 DSI_20nm_PHY_TIMING_CTRL_6_HS_PREPARE(timing->hs_prepare)); in dsi_20nm_dphy_set_timing() [all …]
|
/Linux-v5.15/drivers/clk/tegra/ |
D | clk-tegra124-emc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * drivers/clk/tegra/clk-emc.c 11 #include <linux/clk-provider.h> 48 * When we change the timing to a timing with a parent that has the same 50 * timing that has a different clock source. 105 val = readl(tegra->clk_regs + CLK_SOURCE_EMC); in emc_recalc_rate() 120 struct emc_timing *timing = NULL; in emc_determine_rate() local 125 for (k = 0; k < tegra->num_timings; k++) { in emc_determine_rate() 126 if (tegra->timings[k].ram_code == ram_code) in emc_determine_rate() 130 for (t = k; t < tegra->num_timings; t++) { in emc_determine_rate() [all …]
|
/Linux-v5.15/drivers/gpu/drm/nouveau/nvkm/subdev/bios/ |
D | timing.c | 26 #include <subdev/bios/timing.h> 33 u32 timing = 0; in nvbios_timingTe() local 37 timing = nvbios_rd32(bios, bit_P.offset + 4); in nvbios_timingTe() 40 timing = nvbios_rd32(bios, bit_P.offset + 8); in nvbios_timingTe() 42 if (timing) { in nvbios_timingTe() 43 *ver = nvbios_rd08(bios, timing + 0); in nvbios_timingTe() 46 *hdr = nvbios_rd08(bios, timing + 1); in nvbios_timingTe() 47 *cnt = nvbios_rd08(bios, timing + 2); in nvbios_timingTe() 48 *len = nvbios_rd08(bios, timing + 3); in nvbios_timingTe() 51 return timing; in nvbios_timingTe() [all …]
|
/Linux-v5.15/drivers/devfreq/ |
D | rk3399_dmc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Author: Lin Huang <hl@rock-chips.com> 7 #include <linux/arm-smccc.h> 11 #include <linux/devfreq-event.h> 65 struct dram_timing timing; member 79 unsigned long old_clk_rate = dmcfreq->rate; in rk3399_dmcfreq_target() 93 if (dmcfreq->rate == target_rate) in rk3399_dmcfreq_target() 96 mutex_lock(&dmcfreq->lock); in rk3399_dmcfreq_target() 98 if (dmcfreq->regmap_pmu) { in rk3399_dmcfreq_target() 99 if (target_rate >= dmcfreq->odt_dis_freq) in rk3399_dmcfreq_target() [all …]
|
/Linux-v5.15/drivers/video/fbdev/ |
D | gbefb.c | 4 * Copyright (C) 1999 Silicon Graphics, Inc. - Jeffrey Newquist 5 * Copyright (C) 2002 Vivien Chappelier <vivien.chappelier@linux-mips.org> 14 #include <linux/dma-mapping.h> 37 struct gbe_timing_info timing; member 44 /* macro for fastest write-though access to the framebuffer */ 63 #define TILE_MASK (TILE_SIZE - 1) 87 /* 640x480, 60 Hz, Non-Interlaced (25.175 MHz dotclock) */ 102 .height = -1, 103 .width = -1, 133 .height = -1, [all …]
|
/Linux-v5.15/drivers/gpu/drm/msm/disp/dpu1/ |
D | dpu_encoder_phys_vid.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* Copyright (c) 2015-2018, 2020-2021 The Linux Foundation. All rights reserved. 15 (e) && (e)->parent ? \ 16 (e)->parent->base.id : -1, \ 17 (e) && (e)->hw_intf ? \ 18 (e)->hw_intf->idx - INTF_0 : -1, ##__VA_ARGS__) 21 (e) && (e)->parent ? \ 22 (e)->parent->base.id : -1, \ 23 (e) && (e)->hw_intf ? \ 24 (e)->hw_intf->idx - INTF_0 : -1, ##__VA_ARGS__) [all …]
|
/Linux-v5.15/drivers/video/fbdev/via/ |
D | via_modesetting.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved. 4 * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved. 12 #include <linux/via-core.h> 18 void via_set_primary_timing(const struct via_display_timing *timing) in via_set_primary_timing() argument 22 raw.hor_total = timing->hor_total / 8 - 5; in via_set_primary_timing() 23 raw.hor_addr = timing->hor_addr / 8 - 1; in via_set_primary_timing() 24 raw.hor_blank_start = timing->hor_blank_start / 8 - 1; in via_set_primary_timing() 25 raw.hor_blank_end = timing->hor_blank_end / 8 - 1; in via_set_primary_timing() 26 raw.hor_sync_start = timing->hor_sync_start / 8; in via_set_primary_timing() [all …]
|
/Linux-v5.15/drivers/memory/tegra/ |
D | tegra124-emc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include <linux/clk-provider.h> 15 #include <linux/interconnect-provider.h> 512 /* protect shared rate-change code path */ 516 /* Timing change sequence functions */ 521 writel(value, emc->regs + EMC_CCFIFO_DATA); in emc_ccfifo_writel() 522 writel(offset, emc->regs + EMC_CCFIFO_ADDR); in emc_ccfifo_writel() 530 writel(1, emc->regs + EMC_TIMING_CONTROL); in emc_seq_update_timing() 533 value = readl(emc->regs + EMC_STATUS); in emc_seq_update_timing() 539 dev_err(emc->dev, "timing update timed out\n"); in emc_seq_update_timing() [all …]
|
D | tegra30-emc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Based on downstream driver from NVIDIA and tegra124-emc.c 6 * Copyright (C) 2011-2014 NVIDIA Corporation 9 * Copyright (C) 2019 GRATE-DRIVER project 17 #include <linux/interconnect-provider.h> 379 /* protect shared rate-change code path */ 388 writel_relaxed(EMC_TIMING_UPDATE, emc->regs + EMC_TIMING_CONTROL); in emc_seq_update_timing() 390 err = readl_relaxed_poll_timeout_atomic(emc->regs + EMC_STATUS, val, in emc_seq_update_timing() 394 dev_err(emc->dev, "failed to update timing: %d\n", err); in emc_seq_update_timing() 407 status = readl_relaxed(emc->regs + EMC_INTSTATUS) & intmask; in tegra_emc_isr() [all …]
|
/Linux-v5.15/drivers/gpu/drm/sti/ |
D | sti_awg_utils.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #define AWG_DELAY (-5) 48 if (fwparams->instruction_offset >= AWG_MAX_INST) { in awg_generate_instr() 50 return -EINVAL; in awg_generate_instr() 57 arg--; /* pixel adjustment */ in awg_generate_instr() 58 arg_tmp--; in awg_generate_instr() 105 return -EINVAL; in awg_generate_instr() 108 arg_tmp = arg_tmp - arg; in awg_generate_instr() 113 fwparams->ram_code[fwparams->instruction_offset] = in awg_generate_instr() 115 fwparams->instruction_offset++; in awg_generate_instr() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dce110/ |
D | dce110_timing_generator_v.c | 42 tg->ctx->logger 45 * DCE11 Timing Generator Implementation 64 dm_write_reg(tg->ctx, in dce110_timing_generator_v_enable_crtc() 69 dm_write_reg(tg->ctx, mmCRTCV_MASTER_UPDATE_MODE, value); in dce110_timing_generator_v_enable_crtc() 74 dm_write_reg(tg->ctx, in dce110_timing_generator_v_enable_crtc() 84 value = dm_read_reg(tg->ctx, in dce110_timing_generator_v_disable_crtc() 90 dm_write_reg(tg->ctx, in dce110_timing_generator_v_disable_crtc() 94 * tg->funcs->disable_stereo(tg); in dce110_timing_generator_v_disable_crtc() 102 uint32_t value = dm_read_reg(tg->ctx, addr); in dce110_timing_generator_v_blank_crtc() 116 dm_write_reg(tg->ctx, addr, value); in dce110_timing_generator_v_blank_crtc() [all …]
|
D | dce110_timing_generator.c | 2 * Copyright 2012-15 Advanced Micro Devices, Inc. 48 #define CRTC_REG(reg) (reg + tg110->offsets.crtc) 49 #define DCP_REG(reg) (reg + tg110->offsets.dcp) 55 * So we can create dce110 timing generator to use it. 67 struct dc_crtc_timing *timing) in dce110_timing_generator_apply_front_porch_workaround() argument 69 if (timing->flags.INTERLACE == 1) { in dce110_timing_generator_apply_front_porch_workaround() 70 if (timing->v_front_porch < 2) in dce110_timing_generator_apply_front_porch_workaround() 71 timing->v_front_porch = 2; in dce110_timing_generator_apply_front_porch_workaround() 73 if (timing->v_front_porch < 1) in dce110_timing_generator_apply_front_porch_workaround() 74 timing->v_front_porch = 1; in dce110_timing_generator_apply_front_porch_workaround() [all …]
|
/Linux-v5.15/drivers/media/rc/img-ir/ |
D | img-ir-hw.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 5 * Copyright 2010-2014 Imagination Technologies Ltd. 12 #include <media/rc-core.h> 18 #define IMG_IR_CODETYPE_BIPHASE 0x2 /* RC-5/6 */ 19 #define IMG_IR_CODETYPE_2BITPULSEPOS 0x3 /* RC-MM */ 22 /* Timing information */ 25 * struct img_ir_control - Decoder control settings 53 * struct img_ir_timing_range - range of timing values 54 * @min: Minimum timing value 55 * @max: Maximum timing value (if < @min, this will be set to @min during [all …]
|
/Linux-v5.15/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
D | ramnv50.c | 34 #include <subdev/bios/timing.h> 71 #define T(t) cfg->timing_10_##t 73 nv50_ram_timing_calc(struct nv50_ram *ram, u32 *timing) in nv50_ram_timing_calc() argument 75 struct nvbios_ramcfg *cfg = &ram->base.target.bios; in nv50_ram_timing_calc() 76 struct nvkm_subdev *subdev = &ram->base.fb->subdev; in nv50_ram_timing_calc() 77 struct nvkm_device *device = subdev->device; in nv50_ram_timing_calc() 86 switch ((!T(CWL)) * ram->base.type) { in nv50_ram_timing_calc() 88 T(CWL) = T(CL) - 1; in nv50_ram_timing_calc() 96 if (device->chipset == 0xa0) { in nv50_ram_timing_calc() 97 unkt3b = 0x19 + ram->base.next->bios.rammap_00_16_40; in nv50_ram_timing_calc() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dsc/ |
D | dc_dsc.c | 49 const struct dc_crtc_timing *timing, 54 const struct dc_crtc_timing *timing, 74 const struct dc_crtc_timing *timing, 80 const struct dc_crtc_timing *timing, 208 dm_error("%s: DPCD DSC bits-per-pixel increment not recognized.\n", __func__); in dsc_bpp_increment_div_from_dpcd() 226 dsc_sink_caps->is_dsc_supported = in dc_dsc_parse_dsc_dpcd() 227 (dpcd_dsc_basic_data[DP_DSC_SUPPORT - DP_DSC_SUPPORT] & DP_DSC_DECOMPRESSION_IS_SUPPORTED) != 0; in dc_dsc_parse_dsc_dpcd() 228 if (!dsc_sink_caps->is_dsc_supported) in dc_dsc_parse_dsc_dpcd() 231 dsc_sink_caps->dsc_version = dpcd_dsc_basic_data[DP_DSC_REV - DP_DSC_SUPPORT]; in dc_dsc_parse_dsc_dpcd() 237 if (!dsc_buff_block_size_from_dpcd(dpcd_dsc_basic_data[DP_DSC_RC_BUF_BLK_SIZE - DP_DSC_SUPPORT], in dc_dsc_parse_dsc_dpcd() [all …]
|
/Linux-v5.15/Documentation/devicetree/bindings/mmc/ |
D | sdhci-am654.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 # Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/ 4 --- 5 $id: "http://devicetree.org/schemas/mmc/sdhci-am654.yaml#" 6 $schema: "http://devicetree.org/meta-schemas/core.yaml#" 11 - Ulf Hansson <ulf.hansson@linaro.org> 14 - $ref: mmc-controller.yaml# 19 - const: ti,am654-sdhci-5.1 20 - const: ti,j721e-sdhci-8bit 21 - const: ti,j721e-sdhci-4bit [all …]
|
D | sdhci-sprd.txt | 1 * Spreadtrum SDHCI controller (sdhci-sprd) 7 and the properties used by the sdhci-sprd driver. 10 - compatible: Should contain "sprd,sdhci-r11". 11 - reg: physical base address of the controller and length. 12 - interrupts: Interrupts used by the SDHCI controller. 13 - clocks: Should contain phandle for the clock feeding the SDHCI controller 14 - clock-names: Should contain the following: 15 "sdio" - SDIO source clock (required) 16 "enable" - gate clock which used for enabling/disabling the device (required) 17 "2x_enable" - gate clock controlling the device for some special platforms (optional) [all …]
|
/Linux-v5.15/drivers/ata/ |
D | pata_triflex.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * pata_triflex.c - Compaq PATA for new ATA layer 15 * Copyright (C) 2002 Hewlett-Packard Development Group, L.P. 36 * triflex_prereset - probe begin 50 struct ata_port *ap = link->ap; in triflex_prereset() 51 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in triflex_prereset() 53 if (!pci_test_config_bits(pdev, &triflex_enable_bits[ap->port_no])) in triflex_prereset() 54 return -ENOENT; in triflex_prereset() 62 * triflex_load_timing - timing configuration 75 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in triflex_load_timing() [all …]
|
/Linux-v5.15/Documentation/driver-api/memory-devices/ |
D | ti-gpmc.rst | 1 .. SPDX-License-Identifier: GPL-2.0 14 * Pseudo-SRAM devices 20 GPMC generic timing calculation: 29 generic timing routine was developed to achieve above requirements. 37 happen that timing as specified by peripheral datasheet is not present 38 in timing structure, in this scenario, try to correlate peripheral 39 timing to the one available. If that doesn't work, try to add a new 40 field as required by peripheral, educate generic timing routine to 45 Generic timing routine has been verified to work properly on 48 A word of caution: generic timing routine has been developed based [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dce120/ |
D | dce120_timing_generator.c | 2 * Copyright 2012-15 Advanced Micro Devices, Inc. 43 generic_reg_update_soc15(tg110->base.ctx, tg110->offsets.crtc, reg_name, n, __VA_ARGS__) 46 generic_reg_set_soc15(tg110->base.ctx, tg110->offsets.crtc, reg_name, n, __VA_ARGS__) 91 tg->ctx, in dce120_timing_generator_is_in_vertical_blank() 93 tg110->offsets.crtc); in dce120_timing_generator_is_in_vertical_blank() 100 /* determine if given timing can be supported by TG */ 103 const struct dc_crtc_timing *timing, in dce120_timing_generator_validate_timing() argument 106 uint32_t interlace_factor = timing->flags.INTERLACE ? 2 : 1; in dce120_timing_generator_validate_timing() 108 (timing->v_total - timing->v_addressable - in dce120_timing_generator_validate_timing() 109 timing->v_border_top - timing->v_border_bottom) * in dce120_timing_generator_validate_timing() [all …]
|
/Linux-v5.15/drivers/media/i2c/ |
D | bt819.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * bt819 - BT819A VideoStream Decoder (Rockwell Part) 12 * - moved over to linux>=2.4.x i2c protocol (9/9/2002) 25 #include <media/v4l2-device.h> 26 #include <media/v4l2-ctrls.h> 29 MODULE_DESCRIPTION("Brooktree-819 video decoder driver"); 35 MODULE_PARM_DESC(debug, "Debug level (0-1)"); 38 /* ----------------------------------------------------------------------- */ 57 return &container_of(ctrl->handler, struct bt819, hdl)->sd; in to_sd() 60 struct timing { struct [all …]
|
/Linux-v5.15/drivers/gpu/drm/mediatek/ |
D | mtk_dsi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 222 u32 temp = readl(dsi->regs + offset); in mtk_dsi_mask() 224 writel((temp & ~mask) | (data & mask), dsi->regs + offset); in mtk_dsi_mask() 230 u32 data_rate_mhz = DIV_ROUND_UP(dsi->data_rate, 1000000); in mtk_dsi_phy_timconfig() 231 struct mtk_phy_timing *timing = &dsi->phy_timing; in mtk_dsi_phy_timconfig() local 233 timing->lpx = (60 * data_rate_mhz / (8 * 1000)) + 1; in mtk_dsi_phy_timconfig() 234 timing->da_hs_prepare = (80 * data_rate_mhz + 4 * 1000) / 8000; in mtk_dsi_phy_timconfig() 235 timing->da_hs_zero = (170 * data_rate_mhz + 10 * 1000) / 8000 + 1 - in mtk_dsi_phy_timconfig() 236 timing->da_hs_prepare; in mtk_dsi_phy_timconfig() 237 timing->da_hs_trail = timing->da_hs_prepare + 1; in mtk_dsi_phy_timconfig() [all …]
|
/Linux-v5.15/drivers/mmc/host/ |
D | dw_mmc-exynos.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 19 #include "dw_mmc-pltfm.h" 20 #include "dw_mmc-exynos.h" 22 /* Variations in Exynos specific dw-mshc controller */ 52 .compatible = "samsung,exynos4210-dw-mshc", 55 .compatible = "samsung,exynos4412-dw-mshc", 58 .compatible = "samsung,exynos5250-dw-mshc", 61 .compatible = "samsung,exynos5420-dw-mshc", 64 .compatible = "samsung,exynos5420-dw-mshc-smu", 67 .compatible = "samsung,exynos7-dw-mshc", [all …]
|