All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chanho Park" <chanho61.park@samsung.com>
To: "'Sam Protsenko'" <semen.protsenko@linaro.org>,
	"'Minkyu Kang'" <mk7.kang@samsung.com>,
	"'Tom Rini'" <trini@konsulko.com>,
	"'Lukasz Majewski'" <lukma@denx.de>,
	"'Sean Anderson'" <seanga2@gmail.com>
Cc: "'Simon Glass'" <sjg@chromium.org>,
	"'Heinrich Schuchardt'" <xypron.glpk@gmx.de>,
	<u-boot@lists.denx.de>
Subject: RE: [PATCH 04/13] soc: samsung: Add Exynos USI driver
Date: Tue, 19 Dec 2023 20:40:39 +0900	[thread overview]
Message-ID: <007001da3270$30acfc20$9206f460$@samsung.com> (raw)
In-Reply-To: <20231213031646.28828-5-semen.protsenko@linaro.org>

> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Sam Protsenko
> Sent: Wednesday, December 13, 2023 12:17 PM
> To: Minkyu Kang <mk7.kang@samsung.com>; Tom Rini <trini@konsulko.com>;
> Lukasz Majewski <lukma@denx.de>; Sean Anderson <seanga2@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>; Heinrich Schuchardt
> <xypron.glpk@gmx.de>; u-boot@lists.denx.de
> Subject: [PATCH 04/13] soc: samsung: Add Exynos USI driver
> 
> USIv2 IP-core is found on modern ARM64 Exynos SoCs (like Exynos850) and
> provides selectable serial protocol (one of: UART, SPI, I2C). USIv2
> registers usually reside in the same register map as a particular
> underlying protocol it implements, but have some particular offset. E.g.
> on Exynos850 the USI_UART has 0x13820000 base address, where UART
> registers have 0x00..0x40 offsets, and USI registers have 0xc0..0xdc
> offsets. Desired protocol can be chosen via SW_CONF register from System
> Register block of the same domain as USI.
> 
> Before starting to use a particular protocol, USIv2 must be configured
> properly:
>   1. Select protocol to be used via System Register
>   2. Clear "reset" flag in USI_CON
>   3. Configure HWACG behavior (e.g. for UART Rx the HWACG must be
>      disabled, so that the IP clock is not gated automatically); this is
>      done using USI_OPTION register
>   4. Keep both USI clocks (PCLK and IPCLK) running during USI registers
>      modification
> 
> This driver implements the above behavior. Of course, USIv2 driver
> should be probed before UART/I2C/SPI drivers. It can be achieved by
> embedding UART/I2C/SPI nodes inside of the USI node (in Device Tree);
> driver then walks underlying nodes and instantiates those. Driver also
> handles USI configuration on PM resume, as register contents can be lost
> during CPU suspend.
> 
> This driver is designed with different USI versions in mind. So it
> should be relatively easy to add new USI revisions to it later.
> 
> Driver's code was copied over from Linux kernel [1] and adapted
> correspondingly for U-Boot API. UCLASS_MISC is used, and although no
> misc operations are implemented, it makes it easier to probe the driver
> this way (as compared to UCLASS_NOP) and keep the code compact.
> 
> [1] drivers/soc/samsung/exynos-usi.c
> 
> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>

Reviewed-by: Chanho Park <chanho61.park@samsung.com>


  reply	other threads:[~2023-12-19 11:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-13  3:16 [PATCH 00/13] arm: exynos: Add E850-96 board Sam Protsenko
2023-12-13  3:16 ` [PATCH 01/13] dt-bindings: soc: samsung: Add Exynos USI Sam Protsenko
2023-12-13  3:16 ` [PATCH 02/13] dt-bindings: soc: samsung: Add Exynos PMU Sam Protsenko
2023-12-13  3:16 ` [PATCH 03/13] dt-bindings: clock: Add Exynos850 clock controller Sam Protsenko
2023-12-13  3:16 ` [PATCH 04/13] soc: samsung: Add Exynos USI driver Sam Protsenko
2023-12-19 11:40   ` Chanho Park [this message]
2023-12-27  9:11   ` Minkyu Kang
2024-01-11  1:25     ` Sam Protsenko
2023-12-27 17:48   ` Simon Glass
2024-01-11  2:20     ` Sam Protsenko
2023-12-13  3:16 ` [PATCH 05/13] soc: samsung: Add Exynos PMU driver Sam Protsenko
2023-12-19 11:39   ` Chanho Park
2023-12-13  3:16 ` [PATCH 06/13] clk: exynos: Move pll code into clk-exynos7420 Sam Protsenko
2023-12-19 11:41   ` Chanho Park
2023-12-13  3:16 ` [PATCH 07/13] clk: exynos: Add Samsung clock framework Sam Protsenko
2023-12-19 11:38   ` Chanho Park
2024-01-11  2:40     ` Sam Protsenko
2023-12-27  9:11   ` Minkyu Kang
2024-01-11  1:15     ` Sam Protsenko
2023-12-13  3:16 ` [PATCH 08/13] clk: exynos: Add Exynos850 clock driver Sam Protsenko
2023-12-19 11:33   ` Chanho Park
2023-12-13  3:16 ` [PATCH 09/13] pinctrl: exynos: Add pinctrl support for Exynos850 Sam Protsenko
2023-12-19 11:32   ` Chanho Park
2024-01-10 23:48     ` Sam Protsenko
2023-12-13  3:16 ` [PATCH 10/13] serial: s5p: Add Exynos850 compatible Sam Protsenko
2023-12-13  3:16 ` [PATCH 11/13] arm: exynos: Add Exynos850 SoC support Sam Protsenko
2023-12-13  3:16 ` [PATCH 12/13] board: samsung: Add support for E850-96 board Sam Protsenko
2023-12-13  3:16 ` [PATCH 13/13] MAINTAINERS: Add new Samsung subsystems Sam Protsenko
2023-12-18 15:31 ` [PATCH 00/13] arm: exynos: Add E850-96 board Sam Protsenko
2023-12-22  7:34   ` Minkyu Kang

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='007001da3270$30acfc20$9206f460$@samsung.com' \
    --to=chanho61.park@samsung.com \
    --cc=lukma@denx.de \
    --cc=mk7.kang@samsung.com \
    --cc=seanga2@gmail.com \
    --cc=semen.protsenko@linaro.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.