<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-dev/drivers/clk/sunxi-ng/Kconfig, branch master</title>
<subtitle>Linux kernel development work - see feature branches</subtitle>
<id>https://git.zx2c4.com/linux-dev/atom/drivers/clk/sunxi-ng/Kconfig?h=master</id>
<link rel='self' href='https://git.zx2c4.com/linux-dev/atom/drivers/clk/sunxi-ng/Kconfig?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/'/>
<updated>2022-03-23T18:58:38Z</updated>
<entry>
<title>clk: sunxi-ng: Add support for the sun6i RTC clocks</title>
<updated>2022-03-23T18:58:38Z</updated>
<author>
<name>Samuel Holland</name>
<email>samuel@sholland.org</email>
</author>
<published>2022-02-03T02:17:35Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=d91612d7f01aca454469976d25db761c5085ae4d'/>
<id>urn:sha1:d91612d7f01aca454469976d25db761c5085ae4d</id>
<content type='text'>
The RTC power domain in sun6i and newer SoCs manages the 16 MHz RC
oscillator (called "IOSC" or "osc16M") and the optional 32 kHz crystal
oscillator (called "LOSC" or "osc32k"). Starting with the H6, this power
domain also handles the 24 MHz DCXO (called variously "HOSC", "dcxo24M",
or "osc24M") as well. The H6 also adds a calibration circuit for IOSC.

Later SoCs introduce further variations on the design:
 - H616 adds an additional mux for the 32 kHz fanout source.
 - R329 adds an additional mux for the RTC timekeeping clock, a clock
   for the SPI bus between power domains inside the RTC, and removes the
   IOSC calibration functionality.

Take advantage of the CCU framework to handle this increased complexity.
This driver is intended to be a drop-in replacement for the existing RTC
clock provider. So some runtime adjustment of the clock parents is
needed, both to handle hardware differences, and to support the old
binding which omitted some of the input clocks.

Signed-off-by: Samuel Holland &lt;samuel@sholland.org&gt;
Acked-by: Stephen Boyd &lt;sboyd@kernel.org&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Link: https://lore.kernel.org/r/20220203021736.13434-6-samuel@sholland.org
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Add support for the D1 SoC clocks</title>
<updated>2021-11-23T09:29:05Z</updated>
<author>
<name>Samuel Holland</name>
<email>samuel@sholland.org</email>
</author>
<published>2021-11-19T04:35:44Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=35b97bb941110a20fea1f3125837a98fdf8de054'/>
<id>urn:sha1:35b97bb941110a20fea1f3125837a98fdf8de054</id>
<content type='text'>
The D1 SoC contains a CCU and a R_CCU (PRCM CCU). Add support for them.

Signed-off-by: Samuel Holland &lt;samuel@sholland.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20211119043545.4010-7-samuel@sholland.org
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Allow the CCU core to be built as a module</title>
<updated>2021-11-23T09:29:05Z</updated>
<author>
<name>Samuel Holland</name>
<email>samuel@sholland.org</email>
</author>
<published>2021-11-19T03:33:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=91389c390521a02ecfb91270f5b9d7fae4312ae5'/>
<id>urn:sha1:91389c390521a02ecfb91270f5b9d7fae4312ae5</id>
<content type='text'>
Like the individual CCU drivers, it can be beneficial for memory
consumption of cross-platform configurations to only load the CCU core
on the relevant platform. For example, a generic arm64 kernel sees the
following improvement when building the CCU core and drivers as modules:

  before:
    text      data     bss     dec       hex      filename
    13882360  5251670  360800  19494830  12977ae  vmlinux

  after:
    text      data     bss     dec       hex      filename
    13734787  5086442  360800  19182029  124b1cd  vmlinux

So the result is a 390KB total reduction in kernel image size.

The one early clock provider (sun5i) requires the core to be built in.

Now that loading the MMC driver will trigger loading the CCU core, the
MMC timing mode functions do not need a compile-time fallback.

Signed-off-by: Samuel Holland &lt;samuel@sholland.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20211119033338.25486-5-samuel@sholland.org
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Convert early providers to platform drivers</title>
<updated>2021-11-23T09:29:05Z</updated>
<author>
<name>Samuel Holland</name>
<email>samuel@sholland.org</email>
</author>
<published>2021-11-19T03:33:36Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=7ec03b588d2214d11bea91d5f9ffa444094d3cbd'/>
<id>urn:sha1:7ec03b588d2214d11bea91d5f9ffa444094d3cbd</id>
<content type='text'>
The PRCM CCU drivers depend on clocks provided by other CCU drivers. For
example, the sun8i-r-ccu driver uses the "pll-periph" clock provided by
the SoC's main CCU.

However, sun8i-r-ccu is an early OF clock provider, and many of the
main CCUs (e.g. sun50i-a64-ccu) use platform drivers. This means that
the consumer clocks will be orphaned until the supplier driver is bound.
This can be avoided by converting the remaining CCUs to use platform
drivers. Then fw_devlink will ensure the drivers are bound in the
optimal order.

The sun5i CCU is the only one which actually needs to be an early clock
provider, because it provides the clock for the system timer. That one
is left alone.

Signed-off-by: Samuel Holland &lt;samuel@sholland.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20211119033338.25486-4-samuel@sholland.org
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Allow drivers to be built as modules</title>
<updated>2021-11-22T09:02:21Z</updated>
<author>
<name>Samuel Holland</name>
<email>samuel@sholland.org</email>
</author>
<published>2021-11-19T03:33:35Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=c8c525b06f532923d21d99811a7b80bf18ffd2be'/>
<id>urn:sha1:c8c525b06f532923d21d99811a7b80bf18ffd2be</id>
<content type='text'>
While it is useful to build all of the CCU drivers at once, only 1-3 of
them will be loaded at a time, or possibly none of them if the kernel is
booted on a non-sunxi platform. These CCU drivers are relatively large;
32-bit drivers have 30-50k of data each, while the 64-bit ones are
50-75k due to the increased pointer overhead. About half of that data
comes from relocations. Let's allow the user to build these drivers as
modules so only the necessary data is loaded.

As a first step, convert the CCUs that are already platform drivers.

When the drivers are built as modules, normally the file name becomes
the module name. However, the current file names are inconsistent with
the &lt;platform&gt;-&lt;peripheral&gt; name used everywhere else: the devicetree
bindings, the platform driver names, and the Kconfig symbols. Use
Makfile logic to rename the modules so they follow the usual pattern.

Signed-off-by: Samuel Holland &lt;samuel@sholland.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20211119033338.25486-3-samuel@sholland.org
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Add machine dependency to A83T CCU</title>
<updated>2021-09-13T07:03:20Z</updated>
<author>
<name>Samuel Holland</name>
<email>samuel@sholland.org</email>
</author>
<published>2021-09-02T23:02:00Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=4abfc297b6276310fcb28b14e2255265925cd581'/>
<id>urn:sha1:4abfc297b6276310fcb28b14e2255265925cd581</id>
<content type='text'>
The CCUs for all other 32-bit SoCs have a dependency on a specific
MACH_SUNxI symbol. This effectively hides these drivers when building
an ARCH=arm64 kernel. However, the A83T CCU still shows up because it
is missing this dependency. Let's add it for consistency.

Signed-off-by: Samuel Holland &lt;samuel@sholland.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20210902230200.29574-1-samuel@sholland.org
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Add support for the Allwinner H616 CCU</title>
<updated>2021-01-28T10:14:35Z</updated>
<author>
<name>Andre Przywara</name>
<email>andre.przywara@arm.com</email>
</author>
<published>2021-01-27T17:24:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=88dde5e23da1a16fe9a417171e6c941736b8d3a6'/>
<id>urn:sha1:88dde5e23da1a16fe9a417171e6c941736b8d3a6</id>
<content type='text'>
While the clocks are fairly similar to the H6, many differ in tiny
details, so a separate clock driver seems indicated.

Derived from the H6 clock driver, and adjusted according to the manual.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Acked-by: Maxime Ripard &lt;mripard@kernel.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20210127172500.13356-4-andre.przywara@arm.com
</content>
</entry>
<entry>
<title>clk: sunxi-ng: Add support for the Allwinner H616 R-CCU</title>
<updated>2021-01-28T10:14:30Z</updated>
<author>
<name>Andre Przywara</name>
<email>andre.przywara@arm.com</email>
</author>
<published>2021-01-27T17:24:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=394a36dd9dec7fd48b75dab23432632a30f241ea'/>
<id>urn:sha1:394a36dd9dec7fd48b75dab23432632a30f241ea</id>
<content type='text'>
The clocks itself are identical to the H6 R-CCU, it's just that the H616
has not all of them implemented (or connected).

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Acked-by: Maxime Ripard &lt;mripard@kernel.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/r/20210127172500.13356-3-andre.przywara@arm.com
</content>
</entry>
<entry>
<title>clk: sunxi-ng: add support for the Allwinner A100 CCU</title>
<updated>2020-08-25T08:52:18Z</updated>
<author>
<name>Yangtao Li</name>
<email>frank@allwinnertech.com</email>
</author>
<published>2020-07-24T06:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=fb038ce4db55cf2c911b6b221d10f06afe5f25af'/>
<id>urn:sha1:fb038ce4db55cf2c911b6b221d10f06afe5f25af</id>
<content type='text'>
Add support for a100 in the sunxi-ng CCU framework.

Signed-off-by: Yangtao Li &lt;frank@allwinnertech.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Acked-by: Rob Herring &lt;robh@kernel.org&gt;
Link: https://lore.kernel.org/r/1eb41bf6c966a0e54820200650d27a5d4f2ac160.1595572867.git.frank@allwinnertech.com
</content>
</entry>
<entry>
<title>treewide: Add SPDX license identifier - Makefile/Kconfig</title>
<updated>2019-05-21T08:50:46Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2019-05-19T12:07:45Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1'/>
<id>urn:sha1:ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1</id>
<content type='text'>
Add SPDX license identifiers to all Make/Kconfig files which:

 - Have no license information of any form

These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:

  GPL-2.0-only

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
