linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] clk: sunxi-ng: Add support for A80 CCUs
@ 2017-01-24  2:32 Chen-Yu Tsai
  2017-01-24  2:32 ` [PATCH 01/11] clk: sunxi-ng: mux: Fix determine_rate for mux clocks with pre-dividers Chen-Yu Tsai
                   ` (11 more replies)
  0 siblings, 12 replies; 32+ messages in thread
From: Chen-Yu Tsai @ 2017-01-24  2:32 UTC (permalink / raw)
  To: Maxime Ripard, Rob Herring, Mark Rutland, Michael Turquette,
	Stephen Boyd
  Cc: Chen-Yu Tsai, linux-clk, linux-arm-kernel, devicetree,
	linux-kernel, linux-sunxi

Hi everyone,

This series adds new "sunxi-ng" style drivers for the CCUs found in the
Allwinner A80 SoC. The A80 contains 1 main clock control unit, and some
subsystem specific clock control units at separate addresses. These
include the USB, display engine, and MMC.

  - The MMC clocks can be supported by the old clock drivers,
    hence here we do not add a new driver for it.

  - The old USB clock driver is intertwined with other SoCs,
    requires old style bindings with clock-output-names and
    CLK_OF_DECLARE for its parents. It is easier to switch
    to a new binding and driver.

  - The display engine (DE) CCU was not supported in the past.

The A80 CCU also has some quirks about its design. It has

  - Separate registers for PLL lock status

  - P1, P2 dividers, which are power-of-2 and only 1 bit wide

The first 3 patches fix and extend the behavior of sunxi-ng's
mux clock type, based on the behavior of the clk subsystem's
basic mux clock.

The fourth patch adds support for checking PLL lock status
bits in separate registers, as opposed to within the PLL's
config register.

Patches 5 through 7 add drivers for the CCU blocks.

Patches 8 through 10 do some cleanup of the sunxi/allwinner dts
files prior to switching sun9i dts to the new sunxi-ng clock
bindings. These are independent of the clk stuff, but touch the
same lines for sun9i. Including them should make it easier to
apply and test patches.

Patch 11 has sun9i switch over to the new clock bindings.

Please take a look and let me know what you think.

I also have a series adding support for the first display pipeline
of the A80 with RGB LCD panel output which I will send out later
on.


Regards
ChenYu

Chen-Yu Tsai (11):
  clk: sunxi-ng: mux: Fix determine_rate for mux clocks with
    pre-dividers
  clk: sunxi-ng: mux: honor CLK_SET_RATE_NO_REPARENT flag
  clk: sunxi-ng: mux: Get closest parent rate possible with
    CLK_SET_RATE_PARENT
  clk: sunxi-ng: Support separately grouped PLL lock status register
  clk: sunxi-ng: Add A80 CCU
  clk: sunxi-ng: Add A80 USB CCU
  clk: sunxi-ng: Add A80 Display Engine CCU
  ARM: dts: sun8i-a23-q8-tablet: Drop pinmux setting for codec PA gpio
  ARM: dts: sunxi: Remove no longer used pinctrl/sun4i-a10.h header
  arm64: dts: allwinner: Remove no longer used pinctrl/sun4i-a10.h
    header
  ARM: dts: sun9i: Switch to new clock bindings

 .../devicetree/bindings/clock/sun9i-de.txt         |   28 +
 .../devicetree/bindings/clock/sun9i-usb.txt        |   24 +
 .../devicetree/bindings/clock/sunxi-ccu.txt        |    1 +
 arch/arm/boot/dts/sun4i-a10-a1000.dts              |    1 -
 arch/arm/boot/dts/sun4i-a10-cubieboard.dts         |    1 -
 arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts   |    1 -
 arch/arm/boot/dts/sun4i-a10-hackberry.dts          |    1 -
 arch/arm/boot/dts/sun4i-a10-inet1.dts              |    1 -
 arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts       |    1 -
 arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts         |    1 -
 arch/arm/boot/dts/sun4i-a10-marsboard.dts          |    1 -
 arch/arm/boot/dts/sun4i-a10-mini-xplus.dts         |    1 -
 arch/arm/boot/dts/sun4i-a10-mk802.dts              |    1 -
 arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts     |    1 -
 arch/arm/boot/dts/sun4i-a10-pcduino.dts            |    1 -
 arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts   |    1 -
 arch/arm/boot/dts/sun4i-a10.dtsi                   |    1 -
 arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts       |    1 -
 arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts       |    1 -
 arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts   |    1 -
 arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts      |    1 -
 arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts           |    1 -
 arch/arm/boot/dts/sun5i-a10s.dtsi                  |    1 -
 .../boot/dts/sun5i-a13-empire-electronix-d709.dts  |    1 -
 arch/arm/boot/dts/sun5i-a13-hsg-h702.dts           |    1 -
 arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts    |    1 -
 arch/arm/boot/dts/sun5i-a13-olinuxino.dts          |    1 -
 arch/arm/boot/dts/sun5i-a13.dtsi                   |    1 -
 arch/arm/boot/dts/sun5i-gr8.dtsi                   |    1 -
 arch/arm/boot/dts/sun5i.dtsi                       |    1 -
 arch/arm/boot/dts/sun6i-a31-app4-evb1.dts          |    1 -
 arch/arm/boot/dts/sun6i-a31-colombus.dts           |    1 -
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts        |    1 -
 arch/arm/boot/dts/sun6i-a31-i7.dts                 |    1 -
 arch/arm/boot/dts/sun6i-a31-m9.dts                 |    1 -
 arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts   |    1 -
 arch/arm/boot/dts/sun6i-a31.dtsi                   |    1 -
 arch/arm/boot/dts/sun6i-a31s-cs908.dts             |    2 -
 arch/arm/boot/dts/sun6i-a31s-primo81.dts           |    1 -
 arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi     |    1 -
 .../dts/sun6i-a31s-yones-toptech-bs1078-v2.dts     |    1 -
 .../boot/dts/sun6i-reference-design-tablet.dtsi    |    1 -
 arch/arm/boot/dts/sun7i-a20-bananapi.dts           |    1 -
 arch/arm/boot/dts/sun7i-a20-cubieboard2.dts        |    1 -
 arch/arm/boot/dts/sun7i-a20-cubietruck.dts         |    1 -
 arch/arm/boot/dts/sun7i-a20-hummingbird.dts        |    1 -
 arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts          |    1 -
 arch/arm/boot/dts/sun7i-a20-icnova-swac.dts        |    1 -
 arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts          |    1 -
 arch/arm/boot/dts/sun7i-a20-m3.dts                 |    1 -
 arch/arm/boot/dts/sun7i-a20-mk808c.dts             |    1 -
 arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts     |    1 -
 arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts     |    1 -
 arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts    |    1 -
 arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts    |    1 -
 arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts      |    1 -
 arch/arm/boot/dts/sun7i-a20-orangepi.dts           |    1 -
 arch/arm/boot/dts/sun7i-a20-pcduino3.dts           |    1 -
 arch/arm/boot/dts/sun7i-a20.dtsi                   |    1 -
 arch/arm/boot/dts/sun8i-a23-a33.dtsi               |    1 -
 arch/arm/boot/dts/sun8i-a23-evb.dts                |    1 -
 arch/arm/boot/dts/sun8i-a23-q8-tablet.dts          |   10 -
 arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts     |    1 -
 arch/arm/boot/dts/sun8i-a83t.dtsi                  |    2 -
 arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts    |    1 -
 arch/arm/boot/dts/sun8i-h3-nanopi.dtsi             |    1 -
 arch/arm/boot/dts/sun8i-h3-orangepi-2.dts          |    1 -
 arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts       |    1 -
 arch/arm/boot/dts/sun8i-h3-orangepi-one.dts        |    1 -
 arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts         |    1 -
 arch/arm/boot/dts/sun8i-h3.dtsi                    |    1 -
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts        |    1 -
 arch/arm/boot/dts/sun9i-a80-optimus.dts            |    1 -
 arch/arm/boot/dts/sun9i-a80.dtsi                   |  404 ++-----
 arch/arm/boot/dts/sunxi-common-regulators.dtsi     |    1 -
 .../boot/dts/sunxi-reference-design-tablet.dtsi    |    1 -
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi      |    1 -
 drivers/clk/sunxi-ng/Kconfig                       |   10 +
 drivers/clk/sunxi-ng/Makefile                      |    3 +
 drivers/clk/sunxi-ng/ccu-sun9i-a80-de.c            |  283 +++++
 drivers/clk/sunxi-ng/ccu-sun9i-a80-de.h            |   33 +
 drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c           |  144 +++
 drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.h           |   25 +
 drivers/clk/sunxi-ng/ccu-sun9i-a80.c               | 1223 ++++++++++++++++++++
 drivers/clk/sunxi-ng/ccu-sun9i-a80.h               |   57 +
 drivers/clk/sunxi-ng/ccu_common.c                  |    8 +-
 drivers/clk/sunxi-ng/ccu_common.h                  |    2 +
 drivers/clk/sunxi-ng/ccu_mux.c                     |   35 +-
 include/dt-bindings/clock/sun9i-a80-ccu.h          |  162 +++
 .../dt-bindings/clock/sun9i-a80-de.h               |   73 +-
 .../dt-bindings/clock/sun9i-a80-usb.h              |   44 +-
 .../dt-bindings/reset/sun9i-a80-ccu.h              |   91 +-
 .../dt-bindings/reset/sun9i-a80-de.h               |   45 +-
 .../dt-bindings/reset/sun9i-a80-usb.h              |   41 +-
 94 files changed, 2270 insertions(+), 550 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/sun9i-de.txt
 create mode 100644 Documentation/devicetree/bindings/clock/sun9i-usb.txt
 create mode 100644 drivers/clk/sunxi-ng/ccu-sun9i-a80-de.c
 create mode 100644 drivers/clk/sunxi-ng/ccu-sun9i-a80-de.h
 create mode 100644 drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c
 create mode 100644 drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.h
 create mode 100644 drivers/clk/sunxi-ng/ccu-sun9i-a80.c
 create mode 100644 drivers/clk/sunxi-ng/ccu-sun9i-a80.h
 create mode 100644 include/dt-bindings/clock/sun9i-a80-ccu.h
 copy arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi => include/dt-bindings/clock/sun9i-a80-de.h (67%)
 copy arch/arm/boot/dts/sun8i-a23-q8-tablet.dts => include/dt-bindings/clock/sun9i-a80-usb.h (73%)
 copy arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi => include/dt-bindings/reset/sun9i-a80-ccu.h (56%)
 copy arch/arm/boot/dts/sun8i-a23-q8-tablet.dts => include/dt-bindings/reset/sun9i-a80-de.h (73%)
 copy arch/arm/boot/dts/sun8i-a23-q8-tablet.dts => include/dt-bindings/reset/sun9i-a80-usb.h (73%)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2017-01-27 21:49 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-24  2:32 [PATCH 00/11] clk: sunxi-ng: Add support for A80 CCUs Chen-Yu Tsai
2017-01-24  2:32 ` [PATCH 01/11] clk: sunxi-ng: mux: Fix determine_rate for mux clocks with pre-dividers Chen-Yu Tsai
2017-01-26  9:55   ` Maxime Ripard
2017-01-26 11:22     ` Chen-Yu Tsai
2017-01-24  2:32 ` [PATCH 02/11] clk: sunxi-ng: mux: honor CLK_SET_RATE_NO_REPARENT flag Chen-Yu Tsai
2017-01-24  2:32 ` [PATCH 03/11] clk: sunxi-ng: mux: Get closest parent rate possible with CLK_SET_RATE_PARENT Chen-Yu Tsai
2017-01-24  2:32 ` [PATCH 04/11] clk: sunxi-ng: Support separately grouped PLL lock status register Chen-Yu Tsai
2017-01-26  9:57   ` Maxime Ripard
2017-01-24  2:32 ` [PATCH 05/11] clk: sunxi-ng: Add A80 CCU Chen-Yu Tsai
2017-01-27 21:13   ` Rob Herring
2017-01-24  2:32 ` [PATCH 06/11] clk: sunxi-ng: Add A80 USB CCU Chen-Yu Tsai
2017-01-26 10:14   ` Maxime Ripard
2017-01-26 11:12     ` [linux-sunxi] " Chen-Yu Tsai
2017-01-27  8:45       ` Maxime Ripard
2017-01-27 21:15   ` Rob Herring
2017-01-24  2:32 ` [PATCH 07/11] clk: sunxi-ng: Add A80 Display Engine CCU Chen-Yu Tsai
2017-01-26 10:39   ` Maxime Ripard
2017-01-26 11:20     ` Chen-Yu Tsai
2017-01-27  8:58       ` Maxime Ripard
2017-01-27  9:26         ` Chen-Yu Tsai
2017-01-27  9:42           ` Maxime Ripard
2017-01-24  2:32 ` [PATCH 08/11] ARM: dts: sun8i-a23-q8-tablet: Drop pinmux setting for codec PA gpio Chen-Yu Tsai
2017-01-26 10:38   ` Maxime Ripard
2017-01-26 11:15     ` Chen-Yu Tsai
2017-01-24  2:32 ` [PATCH 09/11] ARM: dts: sunxi: Remove no longer used pinctrl/sun4i-a10.h header Chen-Yu Tsai
2017-01-26 10:21   ` Maxime Ripard
2017-01-24  2:32 ` [PATCH 10/11] arm64: dts: allwinner: " Chen-Yu Tsai
2017-01-26 10:15   ` Maxime Ripard
2017-01-26 11:23     ` Chen-Yu Tsai
2017-01-27  8:46       ` Maxime Ripard
2017-01-24  2:32 ` [PATCH 11/11] ARM: dts: sun9i: Switch to new clock bindings Chen-Yu Tsai
2017-01-24  6:03 ` [linux-sunxi] [PATCH 00/11] clk: sunxi-ng: Add support for A80 CCUs Priit Laes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).