Message ID | 20171031122624.19026-1-lukma@denx.de |
---|---|
State | Accepted |
Commit | ec1b26973cad9398104e740f96c36ef0a11d301d |
Delegated to: | Stefano Babic |
Headers | show |
Series | [U-Boot] imx6: iomux: Add generic function to set RGMII IO voltage on IMX6 SoCs | expand |
On 31/10/2017 13:26, Lukasz Majewski wrote: > This commit provides generic function to set the RGMII/HSIC IO voltage > level on iMX6 devices. > > Signed-off-by: Lukasz Majewski <lukma@denx.de> > --- > > arch/arm/include/asm/arch-mx6/iomux.h | 13 +++++++++++++ > arch/arm/include/asm/arch-mx6/sys_proto.h | 11 +++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/arch/arm/include/asm/arch-mx6/iomux.h b/arch/arm/include/asm/arch-mx6/iomux.h > index 907cb408ff..ee3a56583b 100644 > --- a/arch/arm/include/asm/arch-mx6/iomux.h > +++ b/arch/arm/include/asm/arch-mx6/iomux.h > @@ -178,4 +178,17 @@ > |IOMUXC_GPR13_SATA_PHY_3_MASK \ > |IOMUXC_GPR13_SATA_PHY_2_MASK \ > |IOMUXC_GPR13_SATA_PHY_1_MASK) > + > +/* > + * Setup RGMII voltage levels on iMX6 SoC - the > + * > + * IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII - register > + * > + * 1P2V_IO - USB_HSIC, MIPI_HSI > + * 1P5V_IO - ENET pins > + */ > +#define IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII 0x020e0790 > +#define DDR_SEL_1P2V_IO (0x2 << 18) > +#define DDR_SEL_1P5V_IO (0x3 << 18) > + > #endif /* __ASM_ARCH_IOMUX_H__ */ > diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h > index b22a7a0f8b..72ab7d814f 100644 > --- a/arch/arm/include/asm/arch-mx6/sys_proto.h > +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h > @@ -6,6 +6,7 @@ > */ > > #include <asm/mach-imx/sys_proto.h> > +#include <asm/arch/iomux.h> > > #define USBPHY_PWD 0x00000000 > > @@ -16,3 +17,13 @@ > > int imx6_pcie_toggle_power(void); > int imx6_pcie_toggle_reset(void); > + > +/** > + * iomuxc_set_rgmii_io_voltage - set voltage level of RGMII/USB pins > + * > + * @param io_vol - the voltage IO level of pins > + */ > +static inline void iomuxc_set_rgmii_io_voltage(int io_vol) > +{ > + __raw_writel(io_vol, IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII); > +} > Applied to u-boot-imx, -master, thanke ! Best regards, Stefano Babic
On 07/11/2017 10:23, Stefano Babic wrote: > On 31/10/2017 13:26, Lukasz Majewski wrote: >> This commit provides generic function to set the RGMII/HSIC IO voltage >> level on iMX6 devices. >> >> Signed-off-by: Lukasz Majewski <lukma@denx.de> >> --- >> >> arch/arm/include/asm/arch-mx6/iomux.h | 13 +++++++++++++ >> arch/arm/include/asm/arch-mx6/sys_proto.h | 11 +++++++++++ >> 2 files changed, 24 insertions(+) >> >> diff --git a/arch/arm/include/asm/arch-mx6/iomux.h b/arch/arm/include/asm/arch-mx6/iomux.h >> index 907cb408ff..ee3a56583b 100644 >> --- a/arch/arm/include/asm/arch-mx6/iomux.h >> +++ b/arch/arm/include/asm/arch-mx6/iomux.h >> @@ -178,4 +178,17 @@ >> |IOMUXC_GPR13_SATA_PHY_3_MASK \ >> |IOMUXC_GPR13_SATA_PHY_2_MASK \ >> |IOMUXC_GPR13_SATA_PHY_1_MASK) >> + >> +/* >> + * Setup RGMII voltage levels on iMX6 SoC - the >> + * >> + * IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII - register >> + * >> + * 1P2V_IO - USB_HSIC, MIPI_HSI >> + * 1P5V_IO - ENET pins >> + */ >> +#define IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII 0x020e0790 >> +#define DDR_SEL_1P2V_IO (0x2 << 18) >> +#define DDR_SEL_1P5V_IO (0x3 << 18) >> + >> #endif /* __ASM_ARCH_IOMUX_H__ */ >> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h >> index b22a7a0f8b..72ab7d814f 100644 >> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h >> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h >> @@ -6,6 +6,7 @@ >> */ >> >> #include <asm/mach-imx/sys_proto.h> >> +#include <asm/arch/iomux.h> >> >> #define USBPHY_PWD 0x00000000 >> >> @@ -16,3 +17,13 @@ >> >> int imx6_pcie_toggle_power(void); >> int imx6_pcie_toggle_reset(void); >> + >> +/** >> + * iomuxc_set_rgmii_io_voltage - set voltage level of RGMII/USB pins >> + * >> + * @param io_vol - the voltage IO level of pins >> + */ >> +static inline void iomuxc_set_rgmii_io_voltage(int io_vol) >> +{ >> + __raw_writel(io_vol, IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII); >> +} >> > > Applied to u-boot-imx, -master, thanke ! > I was too optimistic. This breaks the "marsboard" board (same name for function). Can you review this and fix it, please ? Thanks, Stefano
Hi Stefano, > On 07/11/2017 10:23, Stefano Babic wrote: > > On 31/10/2017 13:26, Lukasz Majewski wrote: > >> This commit provides generic function to set the RGMII/HSIC IO > >> voltage level on iMX6 devices. > >> > >> Signed-off-by: Lukasz Majewski <lukma@denx.de> > >> --- > >> > >> arch/arm/include/asm/arch-mx6/iomux.h | 13 +++++++++++++ > >> arch/arm/include/asm/arch-mx6/sys_proto.h | 11 +++++++++++ > >> 2 files changed, 24 insertions(+) > >> > >> diff --git a/arch/arm/include/asm/arch-mx6/iomux.h > >> b/arch/arm/include/asm/arch-mx6/iomux.h index > >> 907cb408ff..ee3a56583b 100644 --- > >> a/arch/arm/include/asm/arch-mx6/iomux.h +++ > >> b/arch/arm/include/asm/arch-mx6/iomux.h @@ -178,4 +178,17 @@ > >> |IOMUXC_GPR13_SATA_PHY_3_MASK \ > >> |IOMUXC_GPR13_SATA_PHY_2_MASK \ > >> |IOMUXC_GPR13_SATA_PHY_1_MASK) > >> + > >> +/* > >> + * Setup RGMII voltage levels on iMX6 SoC - the > >> + * > >> + * IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII - register > >> + * > >> + * 1P2V_IO - USB_HSIC, MIPI_HSI > >> + * 1P5V_IO - ENET pins > >> + */ > >> +#define IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII 0x020e0790 > >> +#define DDR_SEL_1P2V_IO (0x2 << 18) > >> +#define DDR_SEL_1P5V_IO (0x3 << 18) > >> + > >> #endif /* __ASM_ARCH_IOMUX_H__ */ > >> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h > >> b/arch/arm/include/asm/arch-mx6/sys_proto.h index > >> b22a7a0f8b..72ab7d814f 100644 --- > >> a/arch/arm/include/asm/arch-mx6/sys_proto.h +++ > >> b/arch/arm/include/asm/arch-mx6/sys_proto.h @@ -6,6 +6,7 @@ > >> */ > >> > >> #include <asm/mach-imx/sys_proto.h> > >> +#include <asm/arch/iomux.h> > >> > >> #define USBPHY_PWD 0x00000000 > >> > >> @@ -16,3 +17,13 @@ > >> > >> int imx6_pcie_toggle_power(void); > >> int imx6_pcie_toggle_reset(void); > >> + > >> +/** > >> + * iomuxc_set_rgmii_io_voltage - set voltage level of RGMII/USB > >> pins > >> + * > >> + * @param io_vol - the voltage IO level of pins > >> + */ > >> +static inline void iomuxc_set_rgmii_io_voltage(int io_vol) > >> +{ > >> + __raw_writel(io_vol, > >> IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII); +} > >> > > > > Applied to u-boot-imx, -master, thanke ! > > > > I was too optimistic. This breaks the "marsboard" board (same name for > function). Can you review this and fix it, please ? I've just sent the fix for "marsboard" (double inclusion of sys_proto.h) > > Thanks, > Stefano > > Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
diff --git a/arch/arm/include/asm/arch-mx6/iomux.h b/arch/arm/include/asm/arch-mx6/iomux.h index 907cb408ff..ee3a56583b 100644 --- a/arch/arm/include/asm/arch-mx6/iomux.h +++ b/arch/arm/include/asm/arch-mx6/iomux.h @@ -178,4 +178,17 @@ |IOMUXC_GPR13_SATA_PHY_3_MASK \ |IOMUXC_GPR13_SATA_PHY_2_MASK \ |IOMUXC_GPR13_SATA_PHY_1_MASK) + +/* + * Setup RGMII voltage levels on iMX6 SoC - the + * + * IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII - register + * + * 1P2V_IO - USB_HSIC, MIPI_HSI + * 1P5V_IO - ENET pins + */ +#define IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII 0x020e0790 +#define DDR_SEL_1P2V_IO (0x2 << 18) +#define DDR_SEL_1P5V_IO (0x3 << 18) + #endif /* __ASM_ARCH_IOMUX_H__ */ diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h index b22a7a0f8b..72ab7d814f 100644 --- a/arch/arm/include/asm/arch-mx6/sys_proto.h +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h @@ -6,6 +6,7 @@ */ #include <asm/mach-imx/sys_proto.h> +#include <asm/arch/iomux.h> #define USBPHY_PWD 0x00000000 @@ -16,3 +17,13 @@ int imx6_pcie_toggle_power(void); int imx6_pcie_toggle_reset(void); + +/** + * iomuxc_set_rgmii_io_voltage - set voltage level of RGMII/USB pins + * + * @param io_vol - the voltage IO level of pins + */ +static inline void iomuxc_set_rgmii_io_voltage(int io_vol) +{ + __raw_writel(io_vol, IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE_RGMII); +}
This commit provides generic function to set the RGMII/HSIC IO voltage level on iMX6 devices. Signed-off-by: Lukasz Majewski <lukma@denx.de> --- arch/arm/include/asm/arch-mx6/iomux.h | 13 +++++++++++++ arch/arm/include/asm/arch-mx6/sys_proto.h | 11 +++++++++++ 2 files changed, 24 insertions(+)