From: Greg KH <greg@kroah.com>
To: Kukjin Kim <kgene.kim@samsung.com>
Cc: Thomas Abraham <thomas.abraham@linaro.org>,
Greg KH <gregkh@suse.de>,
linux-serial@vger.kernel.org,
devicetree-discuss@lists.ozlabs.org, grant.likely@secretlab.ca,
linux-samsung-soc@vger.kernel.org, ben-linux@fluff.org,
linux-arm-kernel@lists.infradead.org, alan@linux.intel.com
Subject: Re: [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
WARNING: multiple messages have this Message-ID (diff)
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
next prev parent reply other threads:[~2011-10-24 9:05 UTC|newest]
Thread overview: 28+ 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 ` 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 ` Thomas Abraham
[not found] ` <1318241285-23568-1-git-send-email-thomas.abraham-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
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 ` 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:07 ` 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-10 10:08 ` Thomas Abraham
2011-10-24 11:37 ` Grant Likely
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 ` 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 ` 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 ` 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 ` Thomas Abraham
2011-10-10 10:08 ` [PATCH v2 9/9] serial: samsung: add device tree support Thomas Abraham
2011-10-10 10:08 ` Thomas Abraham
2011-10-24 11:38 ` Grant Likely
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 8:27 ` Kukjin Kim
2011-10-24 9:05 ` Greg KH [this message]
2011-10-24 9:05 ` Greg KH
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.com \
--cc=alan@linux.intel.com \
--cc=ben-linux@fluff.org \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=gregkh@suse.de \
--cc=kgene.kim@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=thomas.abraham@linaro.org \
/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.