From: Jani Nikula <jani.nikula@linux.intel.com>
To: Matt Roper <matthew.d.roper@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v2 7/7] drm/i915: Move SNPS PHY registers to their own header
Date: Mon, 10 Jan 2022 13:02:41 +0200 [thread overview]
Message-ID: <87v8yram5q.fsf@intel.com> (raw)
In-Reply-To: <20220108044055.3123418-8-matthew.d.roper@intel.com>
On Fri, 07 Jan 2022, Matt Roper <matthew.d.roper@intel.com> wrote:
> These registers are only needed in a couple files and on specific
> platforms; let's keep them separate from the general register pool.
>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_snps_phy.c | 1 +
> .../drm/i915/display/intel_snps_phy_regs.h | 73 +++++++++++++++++++
> drivers/gpu/drm/i915/i915_reg.h | 67 -----------------
> 3 files changed, 74 insertions(+), 67 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/display/intel_snps_phy_regs.h
>
> diff --git a/drivers/gpu/drm/i915/display/intel_snps_phy.c b/drivers/gpu/drm/i915/display/intel_snps_phy.c
> index 09f405e4d363..718bfdbae9c8 100644
> --- a/drivers/gpu/drm/i915/display/intel_snps_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_snps_phy.c
> @@ -10,6 +10,7 @@
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_snps_phy.h"
> +#include "intel_snps_phy_regs.h"
>
> /**
> * DOC: Synopsis PHY support
> diff --git a/drivers/gpu/drm/i915/display/intel_snps_phy_regs.h b/drivers/gpu/drm/i915/display/intel_snps_phy_regs.h
> new file mode 100644
> index 000000000000..484d3d204012
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/display/intel_snps_phy_regs.h
> @@ -0,0 +1,73 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2022 Intel Corporation
> + */
> +
> +#ifndef __INTEL_SNPS_REGS__
> +#define __INTEL_SNPS_REGS__
#include "i915_reg_defs.h"
Other than that,
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> +
> +#define _SNPS_PHY_A_BASE 0x168000
> +#define _SNPS_PHY_B_BASE 0x169000
> +#define _SNPS_PHY(phy) _PHY(phy, \
> + _SNPS_PHY_A_BASE, \
> + _SNPS_PHY_B_BASE)
> +#define _SNPS2(phy, reg) (_SNPS_PHY(phy) - \
> + _SNPS_PHY_A_BASE + (reg))
> +#define _MMIO_SNPS(phy, reg) _MMIO(_SNPS2(phy, reg))
> +#define _MMIO_SNPS_LN(ln, phy, reg) _MMIO(_SNPS2(phy, \
> + (reg) + (ln) * 0x10))
> +
> +#define SNPS_PHY_MPLLB_CP(phy) _MMIO_SNPS(phy, 0x168000)
> +#define SNPS_PHY_MPLLB_CP_INT REG_GENMASK(31, 25)
> +#define SNPS_PHY_MPLLB_CP_INT_GS REG_GENMASK(23, 17)
> +#define SNPS_PHY_MPLLB_CP_PROP REG_GENMASK(15, 9)
> +#define SNPS_PHY_MPLLB_CP_PROP_GS REG_GENMASK(7, 1)
> +
> +#define SNPS_PHY_MPLLB_DIV(phy) _MMIO_SNPS(phy, 0x168004)
> +#define SNPS_PHY_MPLLB_FORCE_EN REG_BIT(31)
> +#define SNPS_PHY_MPLLB_DIV_CLK_EN REG_BIT(30)
> +#define SNPS_PHY_MPLLB_DIV5_CLK_EN REG_BIT(29)
> +#define SNPS_PHY_MPLLB_V2I REG_GENMASK(27, 26)
> +#define SNPS_PHY_MPLLB_FREQ_VCO REG_GENMASK(25, 24)
> +#define SNPS_PHY_MPLLB_DIV_MULTIPLIER REG_GENMASK(23, 16)
> +#define SNPS_PHY_MPLLB_PMIX_EN REG_BIT(10)
> +#define SNPS_PHY_MPLLB_DP2_MODE REG_BIT(9)
> +#define SNPS_PHY_MPLLB_WORD_DIV2_EN REG_BIT(8)
> +#define SNPS_PHY_MPLLB_TX_CLK_DIV REG_GENMASK(7, 5)
> +#define SNPS_PHY_MPLLB_SHIM_DIV32_CLK_SEL REG_BIT(0)
> +
> +#define SNPS_PHY_MPLLB_FRACN1(phy) _MMIO_SNPS(phy, 0x168008)
> +#define SNPS_PHY_MPLLB_FRACN_EN REG_BIT(31)
> +#define SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN REG_BIT(30)
> +#define SNPS_PHY_MPLLB_FRACN_DEN REG_GENMASK(15, 0)
> +
> +#define SNPS_PHY_MPLLB_FRACN2(phy) _MMIO_SNPS(phy, 0x16800C)
> +#define SNPS_PHY_MPLLB_FRACN_REM REG_GENMASK(31, 16)
> +#define SNPS_PHY_MPLLB_FRACN_QUOT REG_GENMASK(15, 0)
> +
> +#define SNPS_PHY_MPLLB_SSCEN(phy) _MMIO_SNPS(phy, 0x168014)
> +#define SNPS_PHY_MPLLB_SSC_EN REG_BIT(31)
> +#define SNPS_PHY_MPLLB_SSC_UP_SPREAD REG_BIT(30)
> +#define SNPS_PHY_MPLLB_SSC_PEAK REG_GENMASK(29, 10)
> +
> +#define SNPS_PHY_MPLLB_SSCSTEP(phy) _MMIO_SNPS(phy, 0x168018)
> +#define SNPS_PHY_MPLLB_SSC_STEPSIZE REG_GENMASK(31, 11)
> +
> +#define SNPS_PHY_MPLLB_DIV2(phy) _MMIO_SNPS(phy, 0x16801C)
> +#define SNPS_PHY_MPLLB_HDMI_PIXEL_CLK_DIV REG_GENMASK(19, 18)
> +#define SNPS_PHY_MPLLB_HDMI_DIV REG_GENMASK(17, 15)
> +#define SNPS_PHY_MPLLB_REF_CLK_DIV REG_GENMASK(14, 12)
> +#define SNPS_PHY_MPLLB_MULTIPLIER REG_GENMASK(11, 0)
> +
> +#define SNPS_PHY_REF_CONTROL(phy) _MMIO_SNPS(phy, 0x168188)
> +#define SNPS_PHY_REF_CONTROL_REF_RANGE REG_GENMASK(31, 27)
> +
> +#define SNPS_PHY_TX_REQ(phy) _MMIO_SNPS(phy, 0x168200)
> +#define SNPS_PHY_TX_REQ_LN_DIS_PWR_STATE_PSR REG_GENMASK(31, 30)
> +
> +#define SNPS_PHY_TX_EQ(ln, phy) _MMIO_SNPS_LN(ln, phy, 0x168300)
> +#define SNPS_PHY_TX_EQ_MAIN REG_GENMASK(23, 18)
> +#define SNPS_PHY_TX_EQ_POST REG_GENMASK(15, 10)
> +#define SNPS_PHY_TX_EQ_PRE REG_GENMASK(7, 2)
> +
> +#endif /* __INTEL_SNPS_REGS__ */
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 8ead30b47c69..5be5d0c28445 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2132,73 +2132,6 @@
> #define MG_DP_MODE_CFG_DP_X2_MODE (1 << 7)
> #define MG_DP_MODE_CFG_DP_X1_MODE (1 << 6)
>
> -/*
> - * DG2 SNPS PHY registers (TC1 = PHY_E)
> - */
> -#define _SNPS_PHY_A_BASE 0x168000
> -#define _SNPS_PHY_B_BASE 0x169000
> -#define _SNPS_PHY(phy) _PHY(phy, \
> - _SNPS_PHY_A_BASE, \
> - _SNPS_PHY_B_BASE)
> -#define _SNPS2(phy, reg) (_SNPS_PHY(phy) - \
> - _SNPS_PHY_A_BASE + (reg))
> -#define _MMIO_SNPS(phy, reg) _MMIO(_SNPS2(phy, reg))
> -#define _MMIO_SNPS_LN(ln, phy, reg) _MMIO(_SNPS2(phy, \
> - (reg) + (ln) * 0x10))
> -
> -#define SNPS_PHY_MPLLB_CP(phy) _MMIO_SNPS(phy, 0x168000)
> -#define SNPS_PHY_MPLLB_CP_INT REG_GENMASK(31, 25)
> -#define SNPS_PHY_MPLLB_CP_INT_GS REG_GENMASK(23, 17)
> -#define SNPS_PHY_MPLLB_CP_PROP REG_GENMASK(15, 9)
> -#define SNPS_PHY_MPLLB_CP_PROP_GS REG_GENMASK(7, 1)
> -
> -#define SNPS_PHY_MPLLB_DIV(phy) _MMIO_SNPS(phy, 0x168004)
> -#define SNPS_PHY_MPLLB_FORCE_EN REG_BIT(31)
> -#define SNPS_PHY_MPLLB_DIV_CLK_EN REG_BIT(30)
> -#define SNPS_PHY_MPLLB_DIV5_CLK_EN REG_BIT(29)
> -#define SNPS_PHY_MPLLB_V2I REG_GENMASK(27, 26)
> -#define SNPS_PHY_MPLLB_FREQ_VCO REG_GENMASK(25, 24)
> -#define SNPS_PHY_MPLLB_DIV_MULTIPLIER REG_GENMASK(23, 16)
> -#define SNPS_PHY_MPLLB_PMIX_EN REG_BIT(10)
> -#define SNPS_PHY_MPLLB_DP2_MODE REG_BIT(9)
> -#define SNPS_PHY_MPLLB_WORD_DIV2_EN REG_BIT(8)
> -#define SNPS_PHY_MPLLB_TX_CLK_DIV REG_GENMASK(7, 5)
> -#define SNPS_PHY_MPLLB_SHIM_DIV32_CLK_SEL REG_BIT(0)
> -
> -#define SNPS_PHY_MPLLB_FRACN1(phy) _MMIO_SNPS(phy, 0x168008)
> -#define SNPS_PHY_MPLLB_FRACN_EN REG_BIT(31)
> -#define SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN REG_BIT(30)
> -#define SNPS_PHY_MPLLB_FRACN_DEN REG_GENMASK(15, 0)
> -
> -#define SNPS_PHY_MPLLB_FRACN2(phy) _MMIO_SNPS(phy, 0x16800C)
> -#define SNPS_PHY_MPLLB_FRACN_REM REG_GENMASK(31, 16)
> -#define SNPS_PHY_MPLLB_FRACN_QUOT REG_GENMASK(15, 0)
> -
> -#define SNPS_PHY_MPLLB_SSCEN(phy) _MMIO_SNPS(phy, 0x168014)
> -#define SNPS_PHY_MPLLB_SSC_EN REG_BIT(31)
> -#define SNPS_PHY_MPLLB_SSC_UP_SPREAD REG_BIT(30)
> -#define SNPS_PHY_MPLLB_SSC_PEAK REG_GENMASK(29, 10)
> -
> -#define SNPS_PHY_MPLLB_SSCSTEP(phy) _MMIO_SNPS(phy, 0x168018)
> -#define SNPS_PHY_MPLLB_SSC_STEPSIZE REG_GENMASK(31, 11)
> -
> -#define SNPS_PHY_MPLLB_DIV2(phy) _MMIO_SNPS(phy, 0x16801C)
> -#define SNPS_PHY_MPLLB_HDMI_PIXEL_CLK_DIV REG_GENMASK(19, 18)
> -#define SNPS_PHY_MPLLB_HDMI_DIV REG_GENMASK(17, 15)
> -#define SNPS_PHY_MPLLB_REF_CLK_DIV REG_GENMASK(14, 12)
> -#define SNPS_PHY_MPLLB_MULTIPLIER REG_GENMASK(11, 0)
> -
> -#define SNPS_PHY_REF_CONTROL(phy) _MMIO_SNPS(phy, 0x168188)
> -#define SNPS_PHY_REF_CONTROL_REF_RANGE REG_GENMASK(31, 27)
> -
> -#define SNPS_PHY_TX_REQ(phy) _MMIO_SNPS(phy, 0x168200)
> -#define SNPS_PHY_TX_REQ_LN_DIS_PWR_STATE_PSR REG_GENMASK(31, 30)
> -
> -#define SNPS_PHY_TX_EQ(ln, phy) _MMIO_SNPS_LN(ln, phy, 0x168300)
> -#define SNPS_PHY_TX_EQ_MAIN REG_GENMASK(23, 18)
> -#define SNPS_PHY_TX_EQ_POST REG_GENMASK(15, 10)
> -#define SNPS_PHY_TX_EQ_PRE REG_GENMASK(7, 2)
> -
> /* The spec defines this only for BXT PHY0, but lets assume that this
> * would exist for PHY1 too if it had a second channel.
> */
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2022-01-10 11:02 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-08 4:40 [Intel-gfx] [PATCH v2 0/7] Start cleaning up register definitions Matt Roper
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 1/7] drm/i915: Use parameterized GPR register definitions everywhere Matt Roper
2022-01-10 11:20 ` Jani Nikula
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 2/7] drm/i915: Parameterize PWRCTX_MAXCNT Matt Roper
2022-01-10 11:06 ` Jani Nikula
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 3/7] drm/i915: Parameterize ECOSKPD Matt Roper
2022-01-10 11:10 ` Jani Nikula
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 4/7] drm/i915: Use RING_PSMI_CTL rather than per-engine macros Matt Roper
2022-01-10 11:14 ` Jani Nikula
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 5/7] drm/i915: Replace GFX_MODE_GEN7 with RING_MODE_GEN7 Matt Roper
2022-01-10 11:15 ` Jani Nikula
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 6/7] drm/i915/gt: Move engine registers to their own header Matt Roper
2022-01-10 10:59 ` Jani Nikula
2022-01-08 4:40 ` [Intel-gfx] [PATCH v2 7/7] drm/i915: Move SNPS PHY " Matt Roper
2022-01-10 11:02 ` Jani Nikula [this message]
2022-01-10 11:03 ` Jani Nikula
2022-01-08 5:12 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Start cleaning up register definitions (rev2) Patchwork
2022-01-08 5:13 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-01-08 5:40 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-01-08 7:00 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v8yram5q.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=matthew.d.roper@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.