[PATCH v2 7/8] PCI: brcmstb: Make two changes in MDIO register fields
Manivannan Sadhasivam
manivannan.sadhasivam at linaro.org
Tue Mar 4 07:09:24 PST 2025
On Fri, Feb 14, 2025 at 12:39:35PM -0500, Jim Quinlan wrote:
> The HW team has decided to "tighten" some field definitions in the MDIO
> packet format. Fortunately these two changes may be made in a backwards
> compatible manner.
>
> The CMD field used to be 12 bits and now is one. This change is backwards
> compatible because the field's starting bit position is unchanged and the
> only commands we've used have values 0 and 1.
>
> The PORT field's width has been changed from four to five bits. When
> written, the new bit is not contiguous with the other four. Fortunately,
> this change is backwards compatible because we have never used anything
> other than 0 for the port field's value.
>
> Signed-off-by: Jim Quinlan <james.quinlan at broadcom.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam at linaro.org>
- Mani
> ---
> drivers/pci/controller/pcie-brcmstb.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
> index 923ac1a03f85..cb897d4b2579 100644
> --- a/drivers/pci/controller/pcie-brcmstb.c
> +++ b/drivers/pci/controller/pcie-brcmstb.c
> @@ -175,8 +175,9 @@
> #define MDIO_PORT0 0x0
> #define MDIO_DATA_MASK 0x7fffffff
> #define MDIO_PORT_MASK 0xf0000
> +#define MDIO_PORT_EXT_MASK 0x200000
> #define MDIO_REGAD_MASK 0xffff
> -#define MDIO_CMD_MASK 0xfff00000
> +#define MDIO_CMD_MASK 0x00100000
> #define MDIO_CMD_READ 0x1
> #define MDIO_CMD_WRITE 0x0
> #define MDIO_DATA_DONE_MASK 0x80000000
> @@ -327,6 +328,7 @@ static u32 brcm_pcie_mdio_form_pkt(int port, int regad, int cmd)
> {
> u32 pkt = 0;
>
> + pkt |= FIELD_PREP(MDIO_PORT_EXT_MASK, port >> 4);
> pkt |= FIELD_PREP(MDIO_PORT_MASK, port);
> pkt |= FIELD_PREP(MDIO_REGAD_MASK, regad);
> pkt |= FIELD_PREP(MDIO_CMD_MASK, cmd);
> --
> 2.43.0
>
--
மணிவண்ணன் சதாசிவம்
More information about the linux-arm-kernel
mailing list