[PATCH v4 0/6] ARM: sun8i: Support A23 PRCM clock and reset controllers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi everyone,

This is PRCM subset v4 of the sun8i A23 bring-up series. This subset
includes clock and reset controller support for the PRCM (power,
reset and clock module) on the A23 SoC. It is based on my previous
series for basic sun8i A23 clocks [1].

Patch 1 modifies tha sun6i-a31-apb0-gates driver to use a bitmap
to denote valid gate indices, instead of just counting "clock-names"
from the DT possibly with "clock-indicies". This makes the driver
consistent with the other sunxi clock gate drivers.

Patch 2 adds the A23 variant of apb0-gates, with A23 specific
compatible and bitmap.

Patch 3 adds support for A23's PRCM to the sun6i-prcm driver.
The difference between the A23 and the A31 regarding the PRCM block
is 2 clock muxes were removed, a divider clock has slightly difference
dividers, and some clock gates are gone. The resources used are
unchanged. Drivers for the 2 clock muxes are replaced with fixed-factor
clocks in the DT. So the A23 variant is supported with the sun6i-prcm
driver with a slightly different sub-device list.

Patch 4 adds optional reset control support to the 8250_dw, which
is used by sun6i and sun8i platforms. Till now, this wasn't needed
from a working standpoint, as the bootloader de-asserts the reset
control on the console UART for us. However, during the development
of the sun8i patches, I noticed other UARTs wouldn't work. Also the
new sun6i A31 Hummingbird has multiple UARTs available, which would
require this patch.

Patch 5 adds deferred probing to 8250_dw. In my case, even though
the clocks and reset controller "devices" were registered before
the UART, the 8250_dw driver binded with the UART devices before
the clocks and resets were available. This resulted in the 8250_dw
driver failing. I only tested the R_UART device.

Strictly speaking it won't be needed once pinctrl support is added,
as the driver core handles deferred probing for pinctrl phandles,
and the pinctrl device for the R_UART is probed after it. However
it may be required for the A31 Hummingbird development board.

Patch 6 adds the PRCM nodes, and the associated clock/reset phandles,
to the sun8i DTSI.

These patches can go through their separate trees. There are no
compile time dependencies between them.

Related changes since v3:

  - Dropped patches already merged by Maxime
  - Used bitmaps to denote possible gate indicies in sun6i-a31-apb0-gates,
    and added A23 variant
  - Added Maxime's Acked-by for
    'mfd: sun6i-prcm: Add support for Allwinner A23 PRCM'

Related changes since v2:

  - Add separate driver for sun8i-a23-apb0-clk
  - Use sun6i-a31-clock-reset for ahb1_rst

Related changes since v1:

  - Add sun8i-a23-apb0-gates-clk compatible to sun6i-a31-apb0-gates-clk


Cheers
ChenYu


  [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/266990.html

Chen-Yu Tsai (6):
  clk: sunxi: sun6i-apb0-gates: use bitmaps for valid gate indicies
  clk: sunxi: sun6i-a31-apb0-gates: Add A23 APB0 support
  mfd: sun6i-prcm: Add support for Allwinner A23 PRCM
  serial: 8250_dw: Add optional reset control support
  serial: 8250_dw: Add support for deferred probing
  ARM: sun8i: Add PRCM clock and reset controller nodes to the DTSI

 Documentation/devicetree/bindings/clock/sunxi.txt  |  1 +
 .../devicetree/bindings/mfd/sun6i-prcm.txt         |  2 +-
 .../bindings/serial/snps-dw-apb-uart.txt           |  1 +
 arch/arm/boot/dts/sun8i-a23.dtsi                   | 47 ++++++++++++-
 drivers/clk/sunxi/clk-sun6i-apb0-gates.c           | 80 ++++++++++++----------
 drivers/mfd/sun6i-prcm.c                           | 30 ++++++++
 drivers/tty/serial/8250/8250_dw.c                  | 13 ++++
 7 files changed, 136 insertions(+), 38 deletions(-)

-- 
2.0.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux