<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-dev/drivers/clk/meson/Makefile, branch master</title>
<subtitle>Linux kernel development work - see feature branches</subtitle>
<id>https://git.zx2c4.com/linux-dev/atom/drivers/clk/meson/Makefile?h=master</id>
<link rel='self' href='https://git.zx2c4.com/linux-dev/atom/drivers/clk/meson/Makefile?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/'/>
<updated>2019-12-11T13:06:29Z</updated>
<entry>
<title>clk: meson: add a driver for the Meson8/8b/8m2 DDR clock controller</title>
<updated>2019-12-11T13:06:29Z</updated>
<author>
<name>Martin Blumenstingl</name>
<email>martin.blumenstingl@googlemail.com</email>
</author>
<published>2019-11-17T14:07:31Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=64aa7008e957a0a60f1ca3227d85ad1e507252cd'/>
<id>urn:sha1:64aa7008e957a0a60f1ca3227d85ad1e507252cd</id>
<content type='text'>
The Meson8/Meson8b/Meson8m2 SoCs embed a DDR clock controller in the
MMCBUS registers. There is no public documentation, but the u-boot GPL
sources from the Amlogic BSP show that the DDR clock controller is
identical on all three SoCs:
  #define CFG_DDR_CLK 792
  #define CFG_PLL_M (((CFG_DDR_CLK/12)*12)/24)
  #define CFG_PLL_N 1
  #define CFG_PLL_OD 1

  // from set_ddr_clock:
  t_ddr_pll_cntl= (CFG_PLL_OD &lt;&lt; 16)|(CFG_PLL_N&lt;&lt;9)|(CFG_PLL_M&lt;&lt;0)
  writel(timing_reg-&gt;t_ddr_pll_cntl|(1&lt;&lt;29),AM_DDR_PLL_CNTL);
  writel(readl(AM_DDR_PLL_CNTL) &amp; (~(1&lt;&lt;29)),AM_DDR_PLL_CNTL);

  // from hx_ddr_power_down_enter: shut down DDR PLL
  writel(readl(AM_DDR_PLL_CNTL)|(1&lt;&lt;30),AM_DDR_PLL_CNTL);

  do { ... } while((readl(AM_DDR_PLL_CNTL)&amp;(1&lt;&lt;31))==0)

This translates to:
- AM_DDR_PLL_CNTL[29] is the reset bit
- AM_DDR_PLL_CNTL[30] is the enable bit
- AM_DDR_PLL_CNTL[31] is the lock bit
- AM_DDR_PLL_CNTL[8:0] is the m value (assuming the width is 9 bits
  based on the start of the n value)
- AM_DDR_PLL_CNTL[13:9] is the n value (assuming the width is 5 bits
  based on the start of the od)
- AM_DDR_PLL_CNTL[17:16] is the od (assuming the width is 2 bits based
  on other PLLs on this SoC)

Add a driver for this PLL setup because it's used as one of the inputs
of the audio clocks. There may be more clocks inside that clock
controller - those can be added in subsequent patches.

Signed-off-by: Martin Blumenstingl &lt;martin.blumenstingl@googlemail.com&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
</content>
</entry>
<entry>
<title>clk: meson: add g12a cpu dynamic divider driver</title>
<updated>2019-08-09T10:10:03Z</updated>
<author>
<name>Neil Armstrong</name>
<email>narmstrong@baylibre.com</email>
</author>
<published>2019-07-31T08:40:17Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=26d34431add04a98a60b8935c25765914fa773f7'/>
<id>urn:sha1:26d34431add04a98a60b8935c25765914fa773f7</id>
<content type='text'>
Add a clock driver for the cpu dynamic divider, this divider needs
to have a flag set before setting the divider value then removed
while writing the new value to the register.

This drivers implements this behavior and will be used essentially
on the Amlogic G12A and G12B SoCs for cpu clock trees.

Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Reviewed-by: Martin Blumenstingl &lt;martin.blumenstingl@googlemail.com&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
</content>
</entry>
<entry>
<title>clk: meson: remove clk input helper</title>
<updated>2019-07-29T10:42:49Z</updated>
<author>
<name>Alexandre Mergnat</name>
<email>amergnat@baylibre.com</email>
</author>
<published>2019-07-25T16:42:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=e96c7612315a1183e12d5b6ebd523a3a93617510'/>
<id>urn:sha1:e96c7612315a1183e12d5b6ebd523a3a93617510</id>
<content type='text'>
The clk input function which allows clock controllers to register a bypass
clock from a clock producer is no longer needed anymore since meson clock
controllers have migrated to a new parent allocation method.

Signed-off-by: Alexandre Mergnat &lt;amergnat@baylibre.com&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
</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>
<entry>
<title>clk: meson: Add G12A AO Clock + Reset Controller</title>
<updated>2019-02-13T08:49:32Z</updated>
<author>
<name>Neil Armstrong</name>
<email>narmstrong@baylibre.com</email>
</author>
<published>2019-02-12T16:28:59Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=042f01bb7f80012e19369b7f8a52fc5b74f4856b'/>
<id>urn:sha1:042f01bb7f80012e19369b7f8a52fc5b74f4856b</id>
<content type='text'>
Add the Amlogic G12A AO Clock and Reset controller driver handling
generation of Always-On clocks :
- AO Clocks and Reset for Always-On modules
- 32K Generation for USB and CEC
- SAR ADC controller clock

Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Acked-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Link: https://lkml.kernel.org/r/20190212162859.20743-3-narmstrong@baylibre.com
</content>
</entry>
<entry>
<title>clk: meson: factorise meson64 peripheral clock controller drivers</title>
<updated>2019-02-04T08:52:11Z</updated>
<author>
<name>Jerome Brunet</name>
<email>jbrunet@baylibre.com</email>
</author>
<published>2019-02-01T14:53:45Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=6682bd4d443fad802e11a0a39332025cdfbf5108'/>
<id>urn:sha1:6682bd4d443fad802e11a0a39332025cdfbf5108</id>
<content type='text'>
The function used to probe the peripheral clock controller of the arm64
amlogic SoCs is mostly the same. We now have 3 of those controllers so
it is time to factorize things a bit.

Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Reviewed-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Link: https://lkml.kernel.org/r/20190201145345.6795-5-jbrunet@baylibre.com
</content>
</entry>
<entry>
<title>clk: meson: g12a: add peripheral clock controller</title>
<updated>2019-02-04T08:52:11Z</updated>
<author>
<name>Jian Hu</name>
<email>jian.hu@amlogic.com</email>
</author>
<published>2019-02-01T14:53:44Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=085a4ea93d5491b9e5274272b528a1fccf9b2546'/>
<id>urn:sha1:085a4ea93d5491b9e5274272b528a1fccf9b2546</id>
<content type='text'>
Add the peripheral clock controller found in the g12a SoC family

Signed-off-by: Jian Hu &lt;jian.hu@amlogic.com&gt;
Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Reviewed-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Link: https://lkml.kernel.org/r/20190201145345.6795-4-jbrunet@baylibre.com
</content>
</entry>
<entry>
<title>clk: meson: rework and clean drivers dependencies</title>
<updated>2019-02-02T16:43:32Z</updated>
<author>
<name>Jerome Brunet</name>
<email>jbrunet@baylibre.com</email>
</author>
<published>2019-02-01T12:58:41Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=889c2b7ec42b8d14d421541f0a3ae1238e34891e'/>
<id>urn:sha1:889c2b7ec42b8d14d421541f0a3ae1238e34891e</id>
<content type='text'>
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.

Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.

The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.

Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
</content>
</entry>
<entry>
<title>clk: meson: gxbb-ao: replace cec-32k with the dual divider</title>
<updated>2019-01-07T14:21:22Z</updated>
<author>
<name>Jerome Brunet</name>
<email>jbrunet@baylibre.com</email>
</author>
<published>2018-12-21T16:02:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=b249623fd1472225232e8784864af55aec1fd81b'/>
<id>urn:sha1:b249623fd1472225232e8784864af55aec1fd81b</id>
<content type='text'>
Replace the cec-32k clock of gxbb-ao with the simpler dual divider
driver. The dual divider implements only the dividing part. All the
other bits are now exposed using simple elements, such as gates and
muxes

Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Acked-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Link: https://lkml.kernel.org/r/20181221160239.26265-5-jbrunet@baylibre.com
</content>
</entry>
<entry>
<title>clk: meson: add dual divider clock driver</title>
<updated>2019-01-07T14:21:01Z</updated>
<author>
<name>Jerome Brunet</name>
<email>jbrunet@baylibre.com</email>
</author>
<published>2018-12-21T16:02:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=a8d552a63857c73c6f0ea28dc8a70df10764b820'/>
<id>urn:sha1:a8d552a63857c73c6f0ea28dc8a70df10764b820</id>
<content type='text'>
Add the dual divider driver. This special divider make a weighted
average between 2 dividers to reach fractional divider values.

Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Acked-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Signed-off-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;
Link: https://lkml.kernel.org/r/20181221160239.26265-4-jbrunet@baylibre.com
</content>
</entry>
</feed>
