From: Stefan Agner <stefan@agner.ch>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 04/21] vybrid: clock: Provide enable_i2c_clk() function for Vybrid
Date: Fri, 01 Feb 2019 15:53:57 +0100 [thread overview]
Message-ID: <8381cbc3bee0a79f5313135ae0802fd5@agner.ch> (raw)
In-Reply-To: <20190201151926.0123c2a5@jawa>
On 01.02.2019 15:19, Lukasz Majewski wrote:
> Hi Stefan,
>
>> On 20.01.2019 14:34, Lukasz Majewski wrote:
>> > Provide function to enable I2C2 clock for vf610 (BK4) - in the
>> > generic code.
>>
>> Can you split this in two commits, one adding enable_i2c_clk and the
>> second removing board specific clock enable?
>
> This particular commit only adds new clock to generic driver.
No, this commit also touches board/phytec/pcm052/pcm052.c.
>
> There is a commit latter, which is removing the board file:
> [PATCH v2 15/21] pcm052: board: Remove in-board setup code (it is now
> replaced by DM setup)
>
> The approach as is is optimal - I do not see any build errors for
> separate patches.
>
>>
>> Also our module seems to use I2C0, could you add that instance to the
>> supported instances too? It should be rather trivial:
>>
>>
>> switch (i2c_num) {
>> case 0:
>> clrsetbits_le32(&ccm->ccgr4, CCM_CCGR4_I2C0_CTRL_MASK,
>> CCM_CCGR4_I2C0_CTRL_MASK);
>
> The problem is that this change is not related to BK4/PCM052 ... or
> "our module" is a PCM052?
>
> If this is some custom board / module (not pcm052) then I would prefer
> to have this change as a separate (not related to this patch set) patch.
You are touching common code. So far enable_i2c_clk was a weak function
which returned 1. If a board calls that function with i2c_num other than
2, the new platform specific enable_i2c_clk will return -EINVAL... Hence
this breaks boards which do not use instance 2...
I am not asking to update other board files. Simply making the common
code to work for all (known) cases.
--
Stefan
>
>> ...
>>
>>
>> --
>> Stefan
>>
>> >
>> > Signed-off-by: Lukasz Majewski <lukma@denx.de>
>> > ---
>> >
>> > Changes in v2: None
>> >
>> > arch/arm/cpu/armv7/vf610/generic.c | 19 +++++++++++++++++++
>> > arch/arm/include/asm/arch-vf610/clock.h | 3 +++
>> > board/phytec/pcm052/pcm052.c | 2 +-
>> > 3 files changed, 23 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/arch/arm/cpu/armv7/vf610/generic.c
>> > b/arch/arm/cpu/armv7/vf610/generic.c
>> > index cbd3391918..f1e6c7816e 100644
>> > --- a/arch/arm/cpu/armv7/vf610/generic.c
>> > +++ b/arch/arm/cpu/armv7/vf610/generic.c
>> > @@ -375,3 +375,22 @@ void enable_caches(void)
>> > mmu_set_region_dcache_behaviour(IRAM_BASE_ADDR, IRAM_SIZE,
>> > option); }
>> > #endif
>> > +
>> > +#ifdef CONFIG_SYS_I2C_MXC
>> > +/* i2c_num can be from 0 - 3 */
>> > +int enable_i2c_clk(unsigned char enable, unsigned int i2c_num)
>> > +{
>> > + struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
>> > +
>> > + switch (i2c_num) {
>> > + case 2:
>> > + clrsetbits_le32(&ccm->ccgr10,
>> > CCM_CCGR10_I2C2_CTRL_MASK,
>> > + CCM_CCGR10_I2C2_CTRL_MASK);
>> > + break;
>> > + default:
>> > + return -EINVAL;
>> > + }
>> > +
>> > + return 0;
>> > +}
>> > +#endif
>> > diff --git a/arch/arm/include/asm/arch-vf610/clock.h
>> > b/arch/arm/include/asm/arch-vf610/clock.h
>> > index 3bd73a01f3..72184fd608 100644
>> > --- a/arch/arm/include/asm/arch-vf610/clock.h
>> > +++ b/arch/arm/include/asm/arch-vf610/clock.h
>> > @@ -22,6 +22,9 @@ enum mxc_clock {
>> > void enable_ocotp_clk(unsigned char enable);
>> > unsigned int mxc_get_clock(enum mxc_clock clk);
>> > u32 get_lpuart_clk(void);
>> > +#ifdef CONFIG_SYS_I2C_MXC
>> > +int enable_i2c_clk(unsigned char enable, unsigned int i2c_num);
>> > +#endif
>> >
>> > #define imx_get_fecclk() mxc_get_clock(MXC_FEC_CLK)
>> >
>> > diff --git a/board/phytec/pcm052/pcm052.c
>> > b/board/phytec/pcm052/pcm052.c index f988af2abc..cfc8009102 100644
>> > --- a/board/phytec/pcm052/pcm052.c
>> > +++ b/board/phytec/pcm052/pcm052.c
>> > @@ -485,7 +485,7 @@ static void clock_init(void)
>> > clrsetbits_le32(&ccm->ccgr9, CCM_REG_CTRL_MASK,
>> > CCM_CCGR9_FEC0_CTRL_MASK |
>> > CCM_CCGR9_FEC1_CTRL_MASK); clrsetbits_le32(&ccm->ccgr10,
>> > CCM_REG_CTRL_MASK,
>> > - CCM_CCGR10_NFC_CTRL_MASK |
>> > CCM_CCGR10_I2C2_CTRL_MASK);
>> > + CCM_CCGR10_NFC_CTRL_MASK);
>> >
>> > clrsetbits_le32(&anadig->pll2_ctrl,
>> > ANADIG_PLL2_CTRL_POWERDOWN, ANADIG_PLL2_CTRL_ENABLE |
>> > ANADIG_PLL2_CTRL_DIV_SELECT);
>
>
>
>
> 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 prev parent reply other threads:[~2019-02-01 14:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-20 13:34 [U-Boot] [PATCH v2 00/21] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 01/21] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver Lukasz Majewski
2019-02-01 9:53 ` Stefan Agner
2019-01-20 13:34 ` [U-Boot] [PATCH v2 02/21] net: Kconfig: FEC: Add dependency on VF610 Lukasz Majewski
2019-02-01 9:54 ` Stefan Agner
2019-01-20 13:34 ` [U-Boot] [PATCH v2 03/21] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions Lukasz Majewski
2019-02-01 13:06 ` Stefan Agner
2019-01-20 13:34 ` [U-Boot] [PATCH v2 04/21] vybrid: clock: Provide enable_i2c_clk() function for Vybrid Lukasz Majewski
2019-02-01 13:19 ` Stefan Agner
2019-02-01 14:19 ` Lukasz Majewski
2019-02-01 14:53 ` Stefan Agner [this message]
2019-02-01 20:49 ` Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 05/21] vybrid: Define the imx_get_mac_from_fuse() as a __weak function Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 06/21] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 07/21] pcm052: board: vybrid: Update the board name for BK4 device Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 08/21] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware Lukasz Majewski
2019-02-01 13:15 ` Stefan Agner
2019-01-20 13:34 ` [U-Boot] [PATCH v2 09/21] pcm052: board: cosmetic: Add copyright notice to pcm052.c Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 10/21] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052) Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 11/21] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties Lukasz Majewski
2019-01-22 2:29 ` Tom Rini
2019-01-20 13:34 ` [U-Boot] [PATCH v2 12/21] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 13/21] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 14/21] config: bk4: Update include/configs/bk4r1.h file Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 15/21] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 16/21] config: bk4: Update u-boot script to support recovery via SD card Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 17/21] config: bk4: Update u-boot envs to support NOR memories initial setup Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 18/21] pcm052: bk4: sdcard: Add support for SD card booting/recovery Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 19/21] pcm052: board: Add code to setup LED default states Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 20/21] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function Lukasz Majewski
2019-01-20 13:34 ` [U-Boot] [PATCH v2 21/21] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy Lukasz Majewski
2019-01-21 8:33 ` [U-Boot] [PATCH v2 00/21] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
2019-01-21 14:22 ` Lukasz Majewski
2019-02-01 13:22 ` Stefan Agner
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=8381cbc3bee0a79f5313135ae0802fd5@agner.ch \
--to=stefan@agner.ch \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox