public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: greg@kroah•com (Greg KH)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v2 0/9] serial: samsung: rework clock lookup and add device tree support
Date: Mon, 24 Oct 2011 11:05:11 +0200	[thread overview]
Message-ID: <20111024090511.GB5406@kroah.com> (raw)
In-Reply-To: <4EA52183.3040206@samsung.com>

On Mon, Oct 24, 2011 at 10:27:47AM +0200, Kukjin Kim wrote:
> On 10/10/11 12:07, Thomas Abraham wrote:
> >Changes since v1:
> >- Included the missing dt bindings documentation in the last patch.
> >- Rebased and tested with linux 3.1-rc9 on linux-samsung-soc tree.
> >- Commit messages are modified to be elaborate.
> >- No changes in code.
> >
> >
> >This patchset reworks the lookup of parent clocks for baud rate generator in
> >the uart controller and adds support for device tree based discovery for the
> >uart controller.
> >
> >The Samsung uart driver was dependent on the clock names supplied in the
> >platform data. This dependency had to be first removed to add device tree based
> >discovery support for Samsung uart driver. In the process of reworking the clock
> >lookup logic, several changes had to be made which in turn made parts of the
> >driver redundant and such portions of the driver have been removed in this
> >patchset. As a result, all the SoC specific extensions have been deleted.
> >
> >Patch 1 modifies the driver to keep a copy of the location of the platform data
> >in the driver's private data. This makes device tree support addition
> >non-intrusive.
> >
> >Patch 2 moves the complicated clock divider handling for fclk source clock for
> >s3c2440 SoC into platform code. The fclk clock can be easily managed by
> >representing it as a clock in the platform code. fclk clock handling was
> >specific to s3c2440 and moving this out of the driver makes the rest of the
> >clock handling in the driver almost identical for all SoC's supported by the
> >driver.
> >
> >Patch 3 modifies the driver to lookup source clocks for baud rate generator
> >by using generic clock names. The generic clock name used by the driver is
> >'clk_uart_baud' appended with the parent number of the clock. For instance,
> >the second parent clock source option for baud rate generator is named as
> >'clk_uart_baud2'.
> >
> >The driver stops depending on the set_clock and get_clock callbacks in the
> >SoC specific extensions. Instead, the driver is modified to lookup parent
> >clock rates and decide/calculate the best parent clock source for the baud
> >rate generator (best clock would have the least delta when compared to buad
> >rate requested).
> >
> >In this process, four new members are added in the driver's private data
> >structure. The 'def_clk_sel' member is a platform set bit-value that specifies
> >the possible parents that the driver is allowed to use for baud rate clock.
> >A bit set at a particular bit position selects that parent clock source.
> >Example: If bit number 2 is set in 'def_clk_sel', then parent clock source '2'
> >can be a possible parent clock for baud rate generator. The 'num_clks'
> >is the number of possible parent clocks that the SoC supports. The
> >'clksel_mask' and 'clksel_shift' members are used to operate on the parent clock
> >selection bit field int the uart controller's contol register.
> >
> >Patch 4 removes all uses and instances of 'struct s3c24xx_uart_clksrc'. This
> >structure was used to pass source clock 'names' between platform code, driver
> >and SoC specific extensions. By moving away from using platform specified clock
> >names in the driver, all uses and instances of 'struct s3c24xx_uart_clksrc'
> >is removed.
> >
> >Patch 5 removes all the SoC specific get_clksrc and set_clksrc callbacks. These
> >callbacks were using SoC specific clock names to communicate the clock to be
> >set or retrieved. These callbacks are removed as they are no longer required.
> >
> >Patch 6 reworks the uart clocks in platform code of all Samsung SoC's. The
> >driver would use generic clock names and this patch creates aliases to uart
> >clocks with generic clock names as the alias name.
> >
> >Patch 7 merges all the SoC specific port reset functions into one common port
> >reset function and moves the common function into the common Samsung uart
> >driver. All the SoC specific port reset functions perform the same operation
> >allowing all of them to be converged.
> >
> >Patch 8 collapses all the SoC specific probe functions and associated driver
> >private data into the Samsung common uart driver. With get_clksrc, set_clksrc
> >and reset_port functions removed from SoC specific extensions, all the remains
> >in those extensions is the probe function along with SoC specific driver data.
> >These are merged into the common Samsung uart driver and all the SoC specific
> >extensions are deleted.
> >
> >Patch 9 adds device tree based discovery support for the uart driver.
> >
> >
> >This patchset is based on the following tree
> >https://github.com/kgene/linux-samsung.git  branch: for-next
> >
> >with the following two patches applied
> >[PATCH] serial: samsung: Add unified interrupt handler for s3c64xx and later SoC's
> >[PATCH] ARM: SAMSUNG: Remove uart irq handling from plaform code
> >
> >and tested on the following boards.
> >SMDK2440, SMDK2416, SMDK6410, SMDK6440, SMDK6450, SMDKC100, SMDKV210, SMDKV310.
> >
> >This patchset has dependency on the following patchset:
> >[PATCH V2 0/2] Add a common macro for creating struct clk_lookup entries
> >
> >
> >Thomas Abraham (9):
> >   serial: samsung: Keep a copy of the location of platform data in driver's private data
> >   serial: samsung: move handling of fclk/n clock to platform code
> >   serial: samsung: switch to clkdev based clock lookup
> >   serial: samsung: remove struct 's3c24xx_uart_clksrc' and all uses of it
> >   serial: samsung: remove all uses of get_clksrc and set_clksrc
> >   arm: samsung: register uart clocks to clock lookup list
> >   serial: samsung: merge all SoC specific port reset functions
> >   serial: samsung: merge probe() function from all SoC specific extensions
> >   serial: samsung: add device tree support
> >
> >  .../devicetree/bindings/serial/samsung_uart.txt    |   14 +
> >  arch/arm/mach-exynos4/clock.c                      |  106 ++--
> >  arch/arm/mach-exynos4/init.c                       |   21 +-
> >  arch/arm/mach-s3c2410/mach-bast.c                  |   22 -
> >  arch/arm/mach-s3c2410/mach-vr1000.c                |   24 -
> >  arch/arm/mach-s3c2410/s3c2410.c                    |    6 +
> >  arch/arm/mach-s3c2412/clock.c                      |    7 +
> >  arch/arm/mach-s3c2440/clock.c                      |   44 ++
> >  arch/arm/mach-s3c2440/mach-anubis.c                |   22 +-
> >  arch/arm/mach-s3c2440/mach-at2440evb.c             |   22 +-
> >  arch/arm/mach-s3c2440/mach-osiris.c                |   24 +-
> >  arch/arm/mach-s3c2440/mach-rx1950.c                |   18 +-
> >  arch/arm/mach-s3c2440/mach-rx3715.c                |   19 +-
> >  arch/arm/mach-s3c64xx/clock.c                      |   37 +-
> >  arch/arm/mach-s5p64x0/clock-s5p6440.c              |   32 +-
> >  arch/arm/mach-s5p64x0/clock-s5p6450.c              |   32 +-
> >  arch/arm/mach-s5p64x0/init.c                       |   31 -
> >  arch/arm/mach-s5pc100/clock.c                      |   33 +-
> >  arch/arm/mach-s5pv210/clock.c                      |  107 ++--
> >  arch/arm/mach-s5pv210/init.c                       |   19 -
> >  arch/arm/plat-s3c24xx/s3c2443-clock.c              |   23 +-
> >  arch/arm/plat-samsung/include/plat/regs-serial.h   |   45 +-
> >  drivers/tty/serial/Kconfig                         |   45 +--
> >  drivers/tty/serial/Makefile                        |    5 -
> >  drivers/tty/serial/s3c2410.c                       |  115 ----
> >  drivers/tty/serial/s3c2412.c                       |  149 -----
> >  drivers/tty/serial/s3c2440.c                       |  178 ------
> >  drivers/tty/serial/s3c6400.c                       |  149 -----
> >  drivers/tty/serial/s5pv210.c                       |  158 -----
> >  drivers/tty/serial/samsung.c                       |  639 ++++++++++++--------
> >  drivers/tty/serial/samsung.h                       |   32 +-
> >  31 files changed, 752 insertions(+), 1426 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/serial/samsung_uart.txt
> >  delete mode 100644 drivers/tty/serial/s3c2410.c
> >  delete mode 100644 drivers/tty/serial/s3c2412.c
> >  delete mode 100644 drivers/tty/serial/s3c2440.c
> >  delete mode 100644 drivers/tty/serial/s3c6400.c
> >  delete mode 100644 drivers/tty/serial/s5pv210.c
> 
> (Cc'ed Greg KH)
> 
> Looks good for me, and I need to get the ack from Greg before applying.
> 
> Greg, if you're ok, I'd like to send this series to upstream via
> Samsung tree for supporting device tree because this touches a lot
> of arch/arm/ Samsung stuff. If any problems, please let me know.

No objection from me, feel free to take this through your tree.

greg k-h

      reply	other threads:[~2011-10-24  9:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-10 10:07 [PATCH v2 0/9] serial: samsung: rework clock lookup and add device tree support Thomas Abraham
2011-10-10 10:07 ` [PATCH v2 1/9] serial: samsung: Keep a copy of the location of platform data in driver's private data Thomas Abraham
2011-10-10 10:07 ` [PATCH v2 2/9] serial: samsung: move handling of fclk/n clock to platform code Thomas Abraham
2011-10-10 10:07 ` [PATCH v2 3/9] serial: samsung: switch to clkdev based clock lookup Thomas Abraham
2011-10-10 10:08 ` [PATCH v2 4/9] serial: samsung: remove struct 's3c24xx_uart_clksrc' and all uses of it Thomas Abraham
2011-10-24 11:37   ` Grant Likely
2011-10-10 10:08 ` [PATCH v2 5/9] serial: samsung: remove all uses of get_clksrc and set_clksrc Thomas Abraham
2011-10-10 10:08 ` [PATCH v2 6/9] arm: samsung: register uart clocks to clock lookup list Thomas Abraham
2011-10-10 10:08 ` [PATCH v2 7/9] serial: samsung: merge all SoC specific port reset functions Thomas Abraham
2011-10-10 10:08 ` [PATCH v2 8/9] serial: samsung: merge probe() function from all SoC specific extensions Thomas Abraham
2011-10-10 10:08 ` [PATCH v2 9/9] serial: samsung: add device tree support Thomas Abraham
2011-10-24 11:38   ` Grant Likely
2011-10-24  8:27 ` [PATCH v2 0/9] serial: samsung: rework clock lookup and " Kukjin Kim
2011-10-24  9:05   ` Greg KH [this message]

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=20111024090511.GB5406@kroah.com \
    --to=greg@kroah$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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