u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: Samuel Holland <samuel@sholland.org>
Cc: u-boot@lists.denx.de, Jagan Teki <jagan@amarulasolutions.com>,
	Sean Anderson <seanga2@gmail.com>, Simon Glass <sjg@chromium.org>,
	Heinrich Schuchardt <heinrich.schuchardt@canonical.com>,
	Heiko Schocher <hs@denx.de>,
	Joe Hershberger <joe.hershberger@ni.com>
Subject: Re: [PATCH v2 17/23] i2c: sun8i_rsb: Only do non-DM pin setup for non-DM I2C
Date: Fri, 1 Apr 2022 00:20:51 +0100	[thread overview]
Message-ID: <20220401002051.53792af3@slackpad.lan> (raw)
In-Reply-To: <20220318035420.15058-18-samuel@sholland.org>

On Thu, 17 Mar 2022 22:54:14 -0500
Samuel Holland <samuel@sholland.org> wrote:

> When the DM_I2C driver is loaded, the pin setup is done automatically
> from the device tree by the pinctrl driver.
> 
> Clean up the code in the process: remove #ifdefs and recognize that the
> pin configuration is the same for all sun8i/sun50i SoCs, not just those
> which select CONFIG_MACH_SUN8I.

Indeed, even though the F1C100s uses mux 4, but we don't use the RSB
there, and can fix that when we need it.

So this means we could enable RSB for the H616 SPL?

Regardless this looks alright:

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Cheers,
Andre

> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>
> ---
> 
> (no changes since v1)
> 
>  drivers/i2c/sun8i_rsb.c | 46 +++++++++++++++++------------------------
>  1 file changed, 19 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/i2c/sun8i_rsb.c b/drivers/i2c/sun8i_rsb.c
> index 716b245a00..0dea8f7a92 100644
> --- a/drivers/i2c/sun8i_rsb.c
> +++ b/drivers/i2c/sun8i_rsb.c
> @@ -95,27 +95,6 @@ static int sun8i_rsb_set_device_address(struct sunxi_rsb_reg *base,
>  	return sun8i_rsb_do_trans(base);
>  }
>  
> -static void sun8i_rsb_cfg_io(void)
> -{
> -#ifdef CONFIG_MACH_SUN8I
> -	sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_GPL_R_RSB);
> -	sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_GPL_R_RSB);
> -	sunxi_gpio_set_pull(SUNXI_GPL(0), 1);
> -	sunxi_gpio_set_pull(SUNXI_GPL(1), 1);
> -	sunxi_gpio_set_drv(SUNXI_GPL(0), 2);
> -	sunxi_gpio_set_drv(SUNXI_GPL(1), 2);
> -#elif defined CONFIG_MACH_SUN9I
> -	sunxi_gpio_set_cfgpin(SUNXI_GPN(0), SUN9I_GPN_R_RSB);
> -	sunxi_gpio_set_cfgpin(SUNXI_GPN(1), SUN9I_GPN_R_RSB);
> -	sunxi_gpio_set_pull(SUNXI_GPN(0), 1);
> -	sunxi_gpio_set_pull(SUNXI_GPN(1), 1);
> -	sunxi_gpio_set_drv(SUNXI_GPN(0), 2);
> -	sunxi_gpio_set_drv(SUNXI_GPN(1), 2);
> -#else
> -#error unsupported MACH_SUNXI
> -#endif
> -}
> -
>  static void sun8i_rsb_set_clk(struct sunxi_rsb_reg *base)
>  {
>  	u32 div = 0;
> @@ -147,12 +126,6 @@ static int sun8i_rsb_set_device_mode(struct sunxi_rsb_reg *base)
>  
>  static int sun8i_rsb_init(struct sunxi_rsb_reg *base)
>  {
> -	/* Enable RSB and PIO clk, and de-assert their resets */
> -	prcm_apb0_enable(PRCM_APB0_GATE_PIO | PRCM_APB0_GATE_RSB);
> -
> -	/* Setup external pins */
> -	sun8i_rsb_cfg_io();
> -
>  	writel(RSB_CTRL_SOFT_RST, &base->ctrl);
>  	sun8i_rsb_set_clk(base);
>  
> @@ -185,6 +158,25 @@ int rsb_init(void)
>  {
>  	struct sunxi_rsb_reg *base = (struct sunxi_rsb_reg *)SUNXI_RSB_BASE;
>  
> +	/* Enable RSB and PIO clk, and de-assert their resets */
> +	prcm_apb0_enable(PRCM_APB0_GATE_PIO | PRCM_APB0_GATE_RSB);
> +
> +	if (IS_ENABLED(CONFIG_MACH_SUN9I)) {
> +		sunxi_gpio_set_cfgpin(SUNXI_GPN(0), SUN9I_GPN_R_RSB);
> +		sunxi_gpio_set_cfgpin(SUNXI_GPN(1), SUN9I_GPN_R_RSB);
> +		sunxi_gpio_set_pull(SUNXI_GPN(0), 1);
> +		sunxi_gpio_set_pull(SUNXI_GPN(1), 1);
> +		sunxi_gpio_set_drv(SUNXI_GPN(0), 2);
> +		sunxi_gpio_set_drv(SUNXI_GPN(1), 2);
> +	} else {
> +		sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_GPL_R_RSB);
> +		sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_GPL_R_RSB);
> +		sunxi_gpio_set_pull(SUNXI_GPL(0), 1);
> +		sunxi_gpio_set_pull(SUNXI_GPL(1), 1);
> +		sunxi_gpio_set_drv(SUNXI_GPL(0), 2);
> +		sunxi_gpio_set_drv(SUNXI_GPL(1), 2);
> +	}
> +
>  	return sun8i_rsb_init(base);
>  }
>  #endif


  parent reply	other threads:[~2022-03-31 23:26 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-18  3:53 [PATCH v2 00/23] sunxi: Add and use a pinctrl driver Samuel Holland
2022-03-18  3:53 ` [PATCH v2 01/23] sunxi: pinctrl: Create the driver skeleton Samuel Holland
2022-03-18  3:53 ` [PATCH v2 02/23] sunxi: pinctrl: Implement pin muxing functions Samuel Holland
2022-03-31 23:34   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 03/23] sunxi: pinctrl: Implement get_pin_muxing function Samuel Holland
2022-03-31 23:36   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 04/23] sunxi: pinctrl: Implement pin configuration Samuel Holland
2022-03-18  3:54 ` [PATCH v2 05/23] pinctrl: sunxi: Add UART pinmuxes Samuel Holland
2022-03-31 23:18   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 06/23] sunxi: Skip non-DM UART pin setup when PINCTRL=y Samuel Holland
2022-03-31 23:19   ` Andre Przywara
2022-03-31 23:59     ` Samuel Holland
2022-03-18  3:54 ` [PATCH v2 07/23] pinctrl: sunxi: Add sun4i EMAC pinmuxes Samuel Holland
2022-03-31 23:19   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 08/23] net: sunxi_emac: Remove non-DM pin setup Samuel Holland
2022-03-31 23:19   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 09/23] pinctrl: sunxi: Add sunxi GMAC pinmuxes Samuel Holland
2022-03-31 23:19   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 10/23] sunxi: Remove non-DM GMAC pin setup Samuel Holland
2022-03-31 23:20   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 11/23] pinctrl: sunxi: Add sun8i EMAC pinmuxes Samuel Holland
2022-03-31 23:20   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 12/23] net: sun8i_emac: Remove non-DM pin setup Samuel Holland
2022-03-31 23:20   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 13/23] pinctrl: sunxi: Add I2C pinmuxes Samuel Holland
2022-03-27 17:22   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 14/23] sunxi: Remove options and setup code for I2C2-I2C4 Samuel Holland
2022-03-18  3:54 ` [PATCH v2 15/23] sunxi: Remove non-DM I2C clock/pin setup from U-Boot Samuel Holland
2022-03-31 23:20   ` Andre Przywara
2022-04-01  0:04     ` Samuel Holland
2022-03-18  3:54 ` [PATCH v2 16/23] i2c: sun6i_p2wi: Only do non-DM pin setup for non-DM I2C Samuel Holland
2022-03-31 23:20   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 17/23] i2c: sun8i_rsb: " Samuel Holland
2022-03-20  7:17   ` Heinrich Schuchardt
2022-03-20  7:22     ` Heinrich Schuchardt
2022-03-31 23:20   ` Andre Przywara [this message]
2022-04-01  0:10     ` Samuel Holland
2022-03-18  3:54 ` [PATCH v2 18/23] pinctrl: sunxi: Add MMC pinmuxes Samuel Holland
2022-03-31 23:20   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 19/23] sunxi: Remove non-DM MMC pin setup Samuel Holland
2022-03-31 23:21   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 20/23] pinctrl: sunxi: Add the A64 PWM pinmux Samuel Holland
2022-03-31 23:21   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 21/23] pwm: sunxi: Remove non-DM pin setup Samuel Holland
2022-03-31 23:21   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 22/23] pinctrl: sunxi: Add SPI0 pinmuxes Samuel Holland
2022-03-31 23:21   ` Andre Przywara
2022-03-18  3:54 ` [PATCH v2 23/23] spi: sun4i_spi: Remove non-DM pin setup Samuel Holland
2022-03-31 23:21   ` Andre Przywara
2022-04-04  0:54 ` [PATCH v2 00/23] sunxi: Add and use a pinctrl driver Andre Przywara
2022-04-04  1:24   ` Samuel Holland

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=20220401002051.53792af3@slackpad.lan \
    --to=andre.przywara@arm.com \
    --cc=heinrich.schuchardt@canonical.com \
    --cc=hs@denx.de \
    --cc=jagan@amarulasolutions.com \
    --cc=joe.hershberger@ni.com \
    --cc=samuel@sholland.org \
    --cc=seanga2@gmail.com \
    --cc=sjg@chromium.org \
    --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;
as well as URLs for NNTP newsgroup(s).