Skip to content
Permalink
Andre-Przywara…
Switch branches/tags

Commits on Jun 16, 2021

  1. arm64: dts: allwinner: h616: Add X96 Mate TV box support

    The X96 Mate is an Allwinner H616 based TV box, featuring:
      - Four ARM Cortex-A53 cores, Mali-G31 MP2 GPU
      - 2GiB/4GiB RAM (fully usable!)
      - 16/32/64GiB eMMC
      - 100Mbps Ethernet (via embedded AC200 EPHY, not yet supported)
      - Unsupported Allwinner WiFi chip
      - 2 x USB 2.0 host ports
      - HDMI port
      - IR receiver
      - 5V/2A DC power supply via barrel plug
    
    For more information see: https://linux-sunxi.org/X96_Mate
    
    Add a basic devicetree for it, with SD card, eMMC and USB working, as
    well as serial and the essential peripherals, like the AXP PMIC.
    
    This DT is somewhat minimal, and should work on many other similar TV
    boxes with the Allwinner H616 chip.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  2. arm64: dts: allwinner: h616: Add OrangePi Zero 2 board support

    The OrangePi Zero 2 is a development board with the new H616 SoC. It
    comes with the following features:
      - Four ARM Cortex-A53 cores, Mali-G31 MP2 GPU
      - 512MiB/1GiB DDR3 DRAM
      - AXP305 PMIC
      - Raspberry-Pi-1 compatible GPIO header
      - extra 13 pin expansion header, exposing pins for 2x USB 2.0 ports
      - 1 USB 2.0 host port
      - 1 USB 2.0 type C port (power supply + OTG)
      - MicroSD slot
      - on-board 2MiB bootable SPI NOR flash
      - 1Gbps Ethernet port (via RTL8211F PHY)
      - micro-HDMI port
      - unsupported Allwinner WiFi/BT chip
    
    For more details see: https://linux-sunxi.org/Orange_Pi_Zero_2
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  3. dt-bindings: arm: sunxi: Add two H616 board compatible strings

    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  4. arm64: dts: allwinner: Add Allwinner H616 .dtsi file

    This (relatively) new SoC is similar to the H6, but drops the (broken)
    PCIe support and the USB 3.0 controller. It also gets the management
    controller removed, which in turn removes *some*, but not all of the
    devices formerly dedicated to the ARISC (CPUS).
    And while there is still the extra sunxi interrupt controller, the
    package lacks the corresponding NMI pin, so no interrupts for the PMIC.
    
    The reserved memory node is actually handled by Trusted Firmware now,
    but U-Boot fails to propagate this to a separately loaded DTB, so we
    keep it in here for now, until U-Boot learns to do this properly.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  5. phy: sun4i-usb: Add support for the H616 USB PHY

    The USB PHY used in the Allwinner H616 SoC inherits some traits from its
    various predecessors: it has four full PHYs like the H3, needs some
    extra bits to be set like the H6, and puts SIDDQ on a different bit like
    the A100. Plus it needs this weird PHY2 quirk.
    
    Name all those properties in a new config struct and assign a new
    compatible name to it.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  6. phy: sun4i-usb: Introduce port2 SIDDQ quirk

    At least the Allwinner H616 SoC requires a weird quirk to make most
    USB PHYs work: Only port2 works out of the box, but all other ports
    need some help from this port2 to work correctly: The CLK_BUS_PHY2 and
    RST_USB_PHY2 clock and reset need to be enabled, and the SIDDQ bit in
    the PMU PHY control register needs to be cleared. For this register to
    be accessible, CLK_BUS_ECHI2 needs to be ungated. Don't ask ....
    
    Instead of disguising this as some generic feature, do exactly that
    in our PHY init:
    If the quirk bit is set, and we initialise a PHY other than PHY2, ungate
    this one special clock, and clear the SIDDQ bit. We can pull in the
    other required clocks via the DT.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  7. phy: sun4i-usb: Allow reset line to be shared

    The USB HCIs (and PHYs?) in Allwinner's newer generation SoCs (H616)
    rely on the reset line of USB PHY 2 to be de-asserted, even when only
    one of the other PHYs is actually in use.
    
    To make those ports work, we include this reset line in the HCIs' resets
    property, which requires this line to be shareable.
    
    Change the call to allocate the reset line to mark it as shared, to
    enable the other ports on those SoCs.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  8. phy: sun4i-usb: Rework HCI PHY (aka. "pmu_unk1") handling

    As Icenowy pointed out, newer manuals (starting with H6) actually
    document the register block at offset 0x800 as "HCI controller and PHY
    interface", also describe the bits in our "PMU_UNK1" register.
    Let's put proper names to those "unknown" variables and symbols.
    
    While we are at it, generalise the existing code by allowing a bitmap
    of bits to clear and set, to cover newer SoCs: The A100 and H616 use a
    different bit for the SIDDQ control.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  9. dt-bindings: usb: sunxi-musb: Add H616 compatible string

    The H616 MUSB peripheral is compatible to the H3 one (8 endpoints).
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Acked-by: Maxime Ripard <mripard@kernel.org>
    Acked-by: Rob Herring <robh@kernel.org>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  10. dt-bindings: usb: Add H616 compatible string

    The H616 has four PHYs as the H3, along with their respective clock
    gates and resets, so the property description is identical.
    
    However the PHYs itself need some special bits, so we need a new
    compatible string for it.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  11. net: stmmac: dwmac-sun8i: Prepare for second EMAC clock register

    The Allwinner H616 SoC has two EMAC controllers, with the second one
    being tied to the internal PHY, but also using a separate EMAC clock
    register.
    
    To tell the driver about which clock register to use, we add a parameter
    to our syscon phandle. The driver will use this value as an index into
    the regmap, so that we can address more than the first register, if
    needed.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  12. dt-bindings: net: sun8i-emac: Add H616 compatible string

    Add the obvious compatible name to the existing EMAC binding, and pair
    it with the existing A64 fallback compatible string, as the devices are
    compatible.
    
    On the way use enums to group the compatible devices together.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  13. rtc: sun6i: Add Allwinner H616 support

    The H616 RTC changes its day storage to the newly introduced linear day
    scheme, so pair the new compatible string with this feature flag.
    The clock part is missing an external 32768 Hz oscillator input pin,
    for future expansion we must thus ignore any provided clock for now.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  14. rtc: sun6i: Add support for RTCs without external LOSCs

    Some newer Allwinner RTCs (for instance the one in the H616 SoC) lack
    a pin for an external 32768 Hz oscillator. As a consequence, this LOSC
    can't be selected as the RTC clock source, and we must rely on the
    internal RC oscillator.
    To allow additions of clocks to the RTC node, add a feature bit to ignore
    any provided clocks for now (the current code would think this is the
    external LOSC). Later DTs and code can then for instance add the PLL
    based clock input, and older kernel won't get confused.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  15. rtc: sun6i: Add support for broken-down alarm registers

    Newer versions of the Allwinner RTC, for instance as found in the H616
    SoC, not only store the current day as a linear number, but also change
    the way the alarm is handled: There are now two registers, that
    explicitly store the wakeup time, in the same format as the current
    time.
    
    Add support for that variant by writing the requested wakeup time
    directly into the registers, instead of programming the seconds left, as
    the old SoCs required.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  16. rtc: sun6i: Add support for linear day storage

    Newer versions of the Allwinner RTC, as for instance found in the H616
    SoC, no longer store a broken-down day/month/year representation in the
    RTC_DAY_REG, but just a linear day number.
    The user manual does not give any indication about the expected epoch
    time of this day count, but the BSP kernel uses the UNIX epoch, which
    allows easy support due to existing conversion functions in the kernel.
    
    Allow tagging a compatible string with a flag, and use that to mark
    those new RTCs. Then convert between a UNIX day number (converted into
    seconds) and the broken-down day representation using mktime64() and
    time64_to_tm() in the set_time/get_time functions.
    
    That enables support for the RTC in those new chips.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  17. dt-bindings: rtc: sun6i: Add H616 compatible string

    Add the obvious compatible name to the existing RTC binding.
    The actual RTC part of the device uses a different day/month/year
    storage scheme, so it's not compatible with the previous devices.
    Also the clock part is quite different, as there is no external 32K LOSC
    oscillator input.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  18. mfd: axp20x: Allow AXP 806 chips without interrupt lines

    Currently the AXP chip requires to have its IRQ line connected to some
    interrupt controller, and will fail probing when this is not the case.
    
    On a new Allwinner SoC (H616) there is no NMI pin anymore, and at
    least one board does not connect the AXP's IRQ pin to anything else,
    so the interrupt functionality of the AXP chip is simply not available.
    
    Check whether the interrupt line number returned by the platform code is
    valid, before trying to register the irqchip. If not, we skip this
    registration, to avoid the driver to bail out completely.
    Also we need to skip the power key functionality, as this relies on
    a valid IRQ as well.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021
  19. dt-bindings: mfd: axp20x: Add AXP305 compatible (plus optional IRQ)

    The AXP305 PMIC used on many boards with the H616 SoC seems to be fully
    compatible to the AXP805 PMIC, so add the proper chain of compatible
    strings.
    
    Also at least on one board (Orangepi Zero2) there is no interrupt line
    connected to the CPU, so make the "interrupts" property optional.
    
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Andre-ARM authored and intel-lab-lkp committed Jun 16, 2021

Commits on Jun 10, 2021

  1. arm64: dts: allwinner: a64-sopine-baseboard: change RGMII mode to TXID

    Although the schematics of Pine A64-LTS and SoPine Baseboard shows both
    the RX and TX internal delay are enabled, they're using the same broken
    RTL8211E chip batch with Pine A64+, so they should use TXID instead, not
    ID.
    
    In addition, by checking the real components soldered on both a SoPine
    Baseboard and a Pine A64-LTS, RX delay is not enabled (GR69 soldered and
    GR70 NC) despite the schematics says it's enabled. It's a common
    situation for Pine64 boards that the NC information on schematics is not
    the same with the board.
    
    So the RGMII delay mode should be TXID on these boards.
    
    Fixes: c2b111e ("arm64: dts: allwinner: A64 Sopine: phy-mode rgmii-id")
    Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210609083843.463750-1-icenowy@aosc.io
    Icenowy authored and mripard committed Jun 10, 2021

Commits on May 31, 2021

  1. ARM: dts: sun8i: v3s: enable emac for zero Dock

    dwmac-sun8i supports v3s and
    Licheepi-zero Dock provides an ethernet port
    furthermore, align nodes in alphabetical order
    
    Signed-off-by: Andreas Rehn <rehn.andreas86@gmail.com>
    Reviewed-by: Andre Przywara <andre.przywara@arm.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210525173159.183415-1-rehn.andreas86@gmail.com
    DAMEK86 authored and mripard committed May 31, 2021

Commits on May 24, 2021

  1. Merge branches 'sunxi/clk-fixes-for-5.13', 'sunxi/dt-for-5.14' and 's…

    …unxi/fixes-for-5.13' into sunxi/for-next
    mripard committed May 24, 2021
  2. ARM: dts: sun8i: h3: orangepi-plus: Fix ethernet phy-mode

    Commit bbc4d71 ("net: phy: realtek: fix rtl8211e rx/tx delay
    config") sets the RX/TX delay according to the phy-mode property in the
    device tree. For the Orange Pi Plus board this is "rgmii", which is the
    wrong setting.
    
    Following the example of a900cac ("ARM: dts: sun7i: a20: bananapro:
    Fix ethernet phy-mode") the phy-mode is changed to "rgmii-id" which gets
    the Ethernet working again on this board.
    
    Fixes: bbc4d71 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
    Reported-by: "B.R. Oake" <broake@mailfence.com>
    Reported-by: Vagrant Cascadian <vagrant@reproducible-builds.org>
    Link: https://bugs.debian.org/988574
    Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210524122111.416885-1-carnil@debian.org
    carnil authored and mripard committed May 24, 2021
  3. arm64: dts: allwinner: pinephone: Set audio card name

    Add the "PinePhone" name to the sound card: this will make
    upstreaming an ALSA UCM config easier as we can use a unique name.
    
    It also avoids an issue where the default card name is truncated.
    
    Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
    [Samuel: Split out change, updated commit message]
    Signed-off-by: Samuel Holland <samuel@sholland.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210430035859.3487-8-samuel@sholland.org
    a-wai authored and mripard committed May 24, 2021
  4. clk: sunxi-ng: v3s: fix incorrect postdivider on pll-audio

    Commit 46060be ("clk: sunxi-ng: v3s: use sigma-delta modulation for audio-pll")
    changed the audio pll on the Allwinner V3s and V3 SoCs to use
    sigma-delta modulation. In the process the declaration of fixed postdivider
    providing "pll-audio" was adjusted to provide the desired clock rates from
    the now sigma-delta modulated pll.
    However, while the divider used for calculations by the clock framework
    was adjusted the actual divider programmed into the hardware in
    sun8i_v3_v3s_ccu_init was left at "divide by four". This broke the
    "pll-audio" clock, now only providing quater the expected clock rate.
    It would in general be desirable to program the postdivider for
    "pll-audio" to four, such that a broader range of frequencies were
    available on the pll outputs. But the clock for the integrated codec
    "ac-dig" does not feature a mux that allows to select from all pll outputs
    as it is just a simple clock gate connected to "pll-audio". Thus we need
    to set the postdivider to one to be able to provide the 22.5792MHz and
    24.576MHz rates required by the internal sun4i codec.
    
    This patches fixes the incorrect clock rate by forcing the postdivider to
    one in sun8i_v3_v3s_ccu_init.
    
    Fixes: 46060be ("clk: sunxi-ng: v3s: use sigma-delta modulation for audio-pll")
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210513131315.2059451-1-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 24, 2021

Commits on May 18, 2021

  1. ARM: dts: sun8i: r40: Add timer node

    Allwinner R40 has a timer.
    
    Add a node for it.
    
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210510163647.2731675-1-jernej.skrabec@gmail.com
    jernejsk authored and mripard committed May 18, 2021
  2. ARM: dts: sun8i: V3: add I2S interface to V3 dts

    The Allwinner V3 SoC features an I2S interface. The I2S peripheral is
    identical to that in the Allwinner H3 SoC.
    This commit adds it to the Allwinner V3 dts.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-8-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  3. dt-bindings: sound: sun4i-i2s: add Allwinner V3 I2S compatible

    The I2S peripheral of the Allwinner V3 SoC is compatible with the one
    found in the Allwinner H3 SoC.
    This patch adds a compatible string for it.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-7-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  4. ARM: dts: sun8i: V3: add codec analog frontend to V3 dts

    The Allwinner V3 SoC has a different analog codec frontend than the V3s
    SoC. The frontend used on the V3 SoC is compatible with the on used in
    the Allwinner H3 SoC.
    This patch adds the corresponding node to the Allwinner V3 dtsi.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-6-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  5. ASoC: dt-bindings: sun8i-a23-codec-analog: add compatible for Allwinn…

    …er V3
    
    The analog codec frontend of the Allwinner V3 is compatible with the
    analog codec frontend used on the Allwinner H3.
    This patch adds a compatible string for the analog codec frontend on the
    Allwinner V3 SoC.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-5-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  6. ARM: dts: sun8i: v3s: add analog codec and frontend to v3s dts

    The Allwinner V3s and V3 SoCs feature an integrated analog audio codec.
    Additionally both have an analog frontend with mixers and amplifiers for
    the codec.
    This commit adds both, the analog codec and its frontend to the V3s dtsi.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-4-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  7. ARM: dts: sun8i: v3s: add DMA properties to peripherals supporting DMA

    This commit adds DMA properties to all peripherals supporting DMA on the
    Allwinner V3s, enabling accelerated data transfer to them.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-3-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  8. ARM: dts: sun8i: v3s: add DMA controller to v3s dts

    The Allwinner V3s and V3 feature a DMA controller.
    This commit adds it to the V3s dtsi.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210514134405.2097464-2-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
  9. ARM: dts: sun8i: v3s: add pwm controller to v3s dts

    The Allwinner V3s and V3 SoCs feature a pwm controller identical to the
    one used in the Allwinner A20.
    This commit adds it to the V3s dtsi.
    
    Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
    Reviewed-by: Andre Przywara <andre.przywara@arm.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20210513203527.2072090-3-t.schramm@manjaro.org
    TobleMiner authored and mripard committed May 18, 2021
Older