[PATCH v8 0/5] Add platform clock for BayTrail platforms

From: Pierre-Louis Bossart
Date: Mon Jan 23 2017 - 13:08:07 EST


These patches specifically enable the audio MCLK required by Baytrail
CR devices. It is the remaining part of a bigger set of patches
(already merged in Mark Brown's tree) that enable sound for Baytrail CR
devices (especially Asus T100TAF) [1]. They include the clock driver
and clock enabling in the pmc_atom code (along with moving of the
non-architectural pmc_atom driver code into drivers/platform/x86 as
suggested by Thomas Gleixner [2]). This move includes a new header in
include/linux/platform_data/x86/. While there is an agreement that the
definitions for PMC clocks are not really platform data this location
is seen as a good-enough compromise with an agreement between Darren
Hart and Andy Shevchenko [3]

[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2016-August/111704.html
[2] http://mailman.alsa-project.org/pipermail/alsa-devel/2016-October/113936.html
[3] http://mailman.alsa-project.org/pipermail/alsa-devel/2016-December/115892.html

Changes from v7:
- Replaced clk-readl/writel by regular readl/writel
- Fixed two nitpick comments (newline and driver name string)
- Fixed [5:0] to [0..5] in comment (missed in v6)

Changes from v6:
- Addressed comments from Stephen Boyd, Andy Shevchenko and Vinod Koul
- Renamed clk-byt-plt to clk-pmc-atom
- Rebase to 4.10-rc3 (broonie/for-next)
- Added helper functions to make error handling more compact
- Removed module-related code since it's not possible/supported
- Removed useless tests on remove
- PMC_CLK_OFFSET move to clk-pcm-atom (more logical)
- Split typo correction and makefile fix in separate patches
- small fixes (spaces, defaults in switches, alphabetical order, use of
clk_writel/readl and no test on write, simpler error handling, use of
while(i--), unsigned loop variables, kernel doc fields, format-patch -M
-C -D, use of PLATFORM_DEVID_NONE)

Changes from v5:
- fix build error reported by kbuild test robot
- split the clk driver code from x86 platform changes

Changes from v4:
- move the pmc_atom driver from arch/x86/platform/atom to
drivers/platform/x86

Changes from v3:
- replace devm_kzalloc with devm_kcalloc
- add x86 architecture maintainers

Changes from v2:
- move clk platform data structures to a separate include file
- store clk_hw pointer for the fixed rate clocks

Changes from v1:
- register the clk device as child of pmc device
- pass iomem pointer from pmc driver to clk driver to avoid using
pmc_atom_read()/write() and use readl/writel API instead
- use devm_clk_hw_register/clkdev_hw_create instead of
clk_register/clkdev_create

Irina Tirdea (3):
clk: x86: Add Atom PMC platform clocks
arch/x86/platform/atom: Move pmc_atom to drivers/platform/x86
platform/x86: Enable Atom PMC platform clocks

Pierre-Louis Bossart (2):
clk: Make x86/ conditional on CONFIG_COMMON_CLK
platform/x86: fix typo in comment

arch/x86/Kconfig | 4 -
arch/x86/platform/atom/Makefile | 1 -
drivers/acpi/acpi_lpss.c | 2 +-
drivers/clk/Makefile | 2 +
drivers/clk/x86/Makefile | 1 +
drivers/clk/x86/clk-pmc-atom.c | 371 +++++++++++++++++++++
drivers/platform/x86/Kconfig | 5 +
drivers/platform/x86/Makefile | 1 +
.../atom => drivers/platform/x86}/pmc_atom.c | 88 ++++-
include/linux/platform_data/x86/clk-pmc-atom.h | 44 +++
.../linux/platform_data/x86}/pmc_atom.h | 2 +-
11 files changed, 506 insertions(+), 15 deletions(-)
create mode 100644 drivers/clk/x86/clk-pmc-atom.c
rename {arch/x86/platform/atom => drivers/platform/x86}/pmc_atom.c (87%)
create mode 100644 include/linux/platform_data/x86/clk-pmc-atom.h
rename {arch/x86/include/asm => include/linux/platform_data/x86}/pmc_atom.h (98%)

--
2.7.4