From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Wed, 2 Jan 2019 10:00:18 +0100 Subject: [U-Boot] [PATCH v1 10/14] imx: clock: Introduce set_fec_clock() to configure ETH clock (imx6) In-Reply-To: <9570acbe-f6c7-d900-fc05-a0337d42f2bb@denx.de> References: <20190101233745.16433-1-lukma@denx.de> <20190101233745.16433-11-lukma@denx.de> <9570acbe-f6c7-d900-fc05-a0337d42f2bb@denx.de> Message-ID: <20190102100007.47918c0f@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Marek, > On 1/2/19 12:37 AM, Lukasz Majewski wrote: > > This patch provides a generic way to setup ENET (ETH) clocks for > > imx6(q) based boards. Previously this was performed per board in the > > board_eth_init() function. > > > > Signed-off-by: Lukasz Majewski > > --- > > > > arch/arm/include/asm/arch-mx6/clock.h | 1 + > > arch/arm/mach-imx/mx6/clock.c | 17 +++++++++++++++++ > > 2 files changed, 18 insertions(+) > > > > diff --git a/arch/arm/include/asm/arch-mx6/clock.h > > b/arch/arm/include/asm/arch-mx6/clock.h index > > a9481a5fea..9a217349f5 100644 --- > > a/arch/arm/include/asm/arch-mx6/clock.h +++ > > b/arch/arm/include/asm/arch-mx6/clock.h @@ -72,6 +72,7 @@ int > > enable_i2c_clk(unsigned char enable, unsigned i2c_num); int > > enable_spi_clk(unsigned char enable, unsigned spi_num); void > > enable_ipu_clock(void); int enable_fec_anatop_clock(int fec_id, > > enum enet_freq freq); +int set_fec_clock(int fec_id, enum enet_freq > > freq); void enable_enet_clk(unsigned char enable); > > int enable_lcdif_clock(u32 base_addr, bool enable); > > void enable_qspi_clk(int qspi_num); > > diff --git a/arch/arm/mach-imx/mx6/clock.c > > b/arch/arm/mach-imx/mx6/clock.c index 366a4e3c6b..8a4fb23090 100644 > > --- a/arch/arm/mach-imx/mx6/clock.c > > +++ b/arch/arm/mach-imx/mx6/clock.c > > @@ -902,6 +902,17 @@ void enable_qspi_clk(int qspi_num) > > #endif > > > > #ifdef CONFIG_FEC_MXC > > +static void select_fec_clock_source(int fec_id) > > How is the fec_id() used in here ? I guess that you refer to "int fec_id." > Shouldn't this be part of > enable_fec_anatop_clock() ? The enable_fec_anatop_clock() function is used on several board files - for example: http://git.denx.de/?p=u-boot.git;a=blob;f=board/dhelectronics/dh_imx6/dh_imx6.c;h=f9ac5c10e1dc954b64605a1c4f84a6c819d183a7;hb=HEAD#l154 And changing it could break some boards. The select_fec_clock_source() shall be used to replace several: clrsetbits_le32(&iomuxc_regs->gpr[1], 0x1 << 21, 0x1 << 21); clauses for imx6 variants. Moreover, I'd pass 'fec_id' parameter anyway - it may be needed by other imx6 variants. > > > +{ > > + struct iomuxc *iomuxc_regs = (struct iomuxc > > *)IOMUXC_BASE_ADDR; + > > + if (is_mx6dq()) { > > + /* set gpr1[21] to select anatop clock */ > > + setbits_le32(&iomuxc_regs->gpr[1], > > + IOMUXC_GPR1_ENET_CLK_SEL_MASK); > > + } > > +} > > + > > int enable_fec_anatop_clock(int fec_id, enum enet_freq freq) > > { > > u32 reg = 0; > > @@ -976,6 +987,12 @@ int enable_fec_anatop_clock(int fec_id, enum > > enet_freq freq) #endif > > return 0; > > } > > + > > +int set_fec_clock(int fec_id, enum enet_freq freq) > > +{ > > + select_fec_clock_source(fec_id); > > + return enable_fec_anatop_clock(fec_id, freq); > > +} > > #endif > > > > static u32 get_usdhc_clk(u32 port) > > > > 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-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: