Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A64 v1 #285

Closed
wants to merge 13 commits into from
Closed

A64 v1 #285

wants to merge 13 commits into from

Commits on Jan 24, 2016

  1. ARM: sunxi: Introduce Allwinner for A83T support

    Allwinner A83T is octa-core cortex-a7 based SoC.
    It's clock control unit and prcm, pinmux are different from previous sun8i
    series.
    Its processor cores are arragned in two clusters 4 cores each,
    similar to A80.
    
    Signed-off-by: Vishnu Patekar <[email protected]>
    Acked-by: Rob Herring <[email protected]>
    Acked-by: Chen-Yu Tsai <[email protected]>
    Signed-off-by: Maxime Ripard <[email protected]>
    vishnupatekar authored and mripard committed Jan 24, 2016
    Configuration menu
    Copy the full SHA
    149851b View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2016

  1. Merge branches 'sunxi/clocks-for-4.6', 'sunxi/core-for-4.6', 'sunxi/d…

    …rivers-for-4.6' and 'sunxi/dt-for-4.6' into sunxi/for-next
    mripard committed Jan 29, 2016
    Configuration menu
    Copy the full SHA
    43d64d5 View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2016

  1. irqchip: sun4i: fix compilation outside of arch/arm

    The Allwinner sunxi specific interrupt controller cannot be compiled
    for any architecture except arm:
    
    drivers/irqchip/irq-sun4i.c:25:26: fatal error: asm/mach/irq.h: No such file or directory
    compilation terminated.
    
    It turns out that this header is actually not needed for the driver,
    so remove it and allow compilation for other architectures like
    arm64.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Acked-by: Arnd Bergmann <[email protected]>
    Andre-ARM committed Jan 31, 2016
    Configuration menu
    Copy the full SHA
    b5af0c0 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2016

  1. crypto: sunxi-ss: prevent compilation on 64-bit

    The driver for the sunxi-ss crypto engine is not entirely 64-bit safe,
    compilation on arm64 spits some warnings.
    The proper fix was deemed to involved [1], so since 64-bit SoCs won't
    have this IP block we just disable this driver for 64-bit.
    
    [1]: http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/399988.html
         (and the reply)
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    e379a6e View commit details
    Browse the repository at this point in the history
  2. drivers: rtc: allow compilation of sun6i RTC for all sunxi SoCs

    At the moment the "sun6i" RTC drivers depends on having two specific
    SoC families selected.
    The Allwinner A64 SoC has the same RTC, so extend the Kconfig option
    to allow inclusion of the driver for all Allwinner SoCs.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    a2a43d3 View commit details
    Browse the repository at this point in the history
  3. arm64: Introduce Allwinner SoC config option

    To prepare for the Allwinner A64 SoC support, introduce a config
    option to allow compiling Allwinner (aka. sunxi) specific drivers
    for the arm64 architecture as well.
    This patch just defines the ARCH_SUNXI symbol to allow Allwinner
    specific drivers to be selected during kernel configuration.
    Since the MMC driver is quite essential for Linux to be useful, select
    it by default.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    b7c595e View commit details
    Browse the repository at this point in the history
  4. drivers: pinctrl: add driver for Allwinner A64 SoC

    Based on the Allwinner A64 user manual and on the previous sunxi
    pinctrl drivers this introduces the pin multiplex assignments for
    the ARMv8 Allwinner A64 SoC.
    Port A is apparently used for the fixed function DRAM controller, so
    the ports start at B here (the manual mentions "n from 1 to 7", so
    not starting at 0).
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    7fe0a2c View commit details
    Browse the repository at this point in the history
  5. clk: sunxi: add generic multi-parent bus clock gates driver

    The Allwinner H3 SoC introduced bus clock gates with potentially
    different parents per clock gate. The H3 driver chose to hardcode the
    actual parent clock relation in the code.
    Add a new driver (which has the potential to drive the H3 and also
    the simple clock gates as well) which uses the power of DT to describe
    this relationship in an elegant and flexible way.
    Using one subnode for every parent clock we get away with a single
    DT compatible match, which can be used as a fallback value in the
    actual DTs without the need to add specific compatible strings to the
    code.  This avoids adding a new driver or function for every new SoC.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    fbfc4ac View commit details
    Browse the repository at this point in the history
  6. clk: sunxi: add generic allwinner,sunxi name

    The only difference between the different compatible matches at the
    end of clk-sunxi.c are the critical clocks. Two SoCs get away so far
    without any, so there is no reason to enumerate those SoCs in here
    explicitly, though we have to keep them in for compatibility reasons.
    
    Rename the init function to highlight this generic feature and add a
    new, generic DT compatible string which can be used as a fallback value
    in the future should a particular SoC don't need any special treatment.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    4cff1c1 View commit details
    Browse the repository at this point in the history
  7. clk: sunxi: improve error reporting for the mux clock

    clk_register_mux returns a pointer wrapped error value in case of
    failure, so a simple NULL check is not sufficient to catch errors.
    Fix that and elaborate on the failure reason on the way. The whole
    function does not return any error value, so silently failing may
    leave users scratching their heads because the kernel does not
    provide any clues on what's wrong.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    39535cb View commit details
    Browse the repository at this point in the history
  8. clk: sunxi: add critical-clocks property to mux clocks

    The only reason we match the different root compatible strings when
    registering the different sunxi clock types is to provide a list of
    critical clocks.
    Tell the mux clock (for a start) to get this property from the
    device tree, allowing new SoCs to refer to the generic fallback
    compatible string when the DT provides the critical clock information.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    b679360 View commit details
    Browse the repository at this point in the history
  9. arm64: dts: add Allwinner A64 SoC .dtsi

    The Allwinner A64 SoC is low-cost SoC with 4 ARM Cortex-A53 cores
    and the typical tablet / TV box peripherals.
    The Soc is based on the (32-bit) Allwinner H3 chip, sharing most of
    the peripherals and the memory map.
    Although the cores are proper 64-bit ones, the whole SoC is actually
    limited to 4GB (including all the supported DRAM), so we use 32-bit
    address and size cells. This has the nice feature of us being able to
    reuse the DT for 32-bit kernels as well.
    This .dtsi lists the hardware that we support so far.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    555bb2c View commit details
    Browse the repository at this point in the history
  10. arm64: dts: add Pine64 support

    The Pine64 is a cost-efficient development board based on the
    Allwinner A64 SoC.
    There are three models: the basic version with Fast Ethernet and
    512 MB of DRAM (Pine64) and two Pine64+ versions, which both
    feature Gigabit Ethernet and additional connectors for touchscreens
    and a camera. Or as my son put it: "Those are smaller and these are
    missing." ;-)
    The two Pine64+ models just differ in the amount of DRAM
    (1GB vs. 2GB). Since U-Boot will figure out the right size for us and
    patches the DT accordingly we just need to provide one DT for the
    Pine64+.
    
    Signed-off-by: Andre Przywara <[email protected]>
    Andre-ARM committed Feb 1, 2016
    Configuration menu
    Copy the full SHA
    0fa7578 View commit details
    Browse the repository at this point in the history