Unverified Commit c5b9bff3 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'newsoc/cix-p1' into soc/newsoc

Patches from Peter Chen <peter.chen@cixtech.com>:

Cixtech P1 (internal name sky1) is high performance generic Armv9 SoC.
Orion O6 is the Arm V9 Motherboard built by Radxa. You could find brief
introduction for SoC and related boards at:
https://radxa.com/products/orion/o6#overview

Currently, to run upstream kernel at Orion O6 board, you need to
use BIOS released by Radxa, and add "clk_ignore_unused=1" at bootargs.
https://docs.radxa.com/en/orion/o6/bios/install-bios



In this series, we add initial SoC and board support for Kernel building.
Since mailbox is used for SCMI clock communication, mailbox driver is added
in this series for the minimum SoC support.

Patch 1-2: add dt-binding doc for CIX and its sky1 SoC
Patch 3: add Arm64 build support
Patch 4-5: add CIX mailbox driver which needs to support SCMI clock protocol.
Patch 6: add Arm64 defconfig support
Patch 7-8: add initial dts support for SoC and Orion O6 board
Patch 9: add MAINTAINERS entry

* newsoc/cix-p1:
  MAINTAINERS: Add CIX SoC maintainer entry
  arm64: dts: cix: Add sky1 base dts initial support
  dt-bindings: clock: cix: Add CIX sky1 scmi clock id
  arm64: defconfig: Enable CIX SoC
  mailbox: add CIX mailbox driver
  dt-bindings: mailbox: add cix,sky1-mbox
  arm64: Kconfig: add ARCH_CIX for cix silicons
  dt-bindings: arm: add CIX P1 (SKY1) SoC
  dt-bindings: vendor-prefixes: Add CIX Technology Group Co., Ltd.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 63e9bb0d 46f89a0d
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/cix.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: CIX platforms

maintainers:
  - Peter Chen <peter.chen@cixtech.com>
  - Fugang Duan <fugang.duan@cixtech.com>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:

      - description: Radxa Orion O6
        items:
          - const: radxa,orion-o6
          - const: cix,sky1

additionalProperties: true

...
+77 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mailbox/cix,sky1-mbox.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cixtech mailbox controller

maintainers:
  - Guomin Chen <Guomin.Chen@cixtech.com>

description:
  The Cixtech mailbox controller, used in the Cixtech Sky1 SoC,
  is used for message transmission between multiple processors
  within the SoC, such as the AP, PM, audio DSP, SensorHub MCU,
  and others

  Each Cixtech mailbox controller is unidirectional, so they are
  typically used in pairs-one for receiving and one for transmitting.

  Each Cixtech mailbox supports 11 channels with different transmission modes
    channel 0-7 - Fast channel with 32bit transmit register and IRQ support
    channel 8   - Doorbell mode,using the mailbox as an interrupt-generating
                   mechanism.
    channel 9   - Fifo based channel with 32*32bit depth fifo and IRQ support
    channel 10  - Reg based channel with 32*32bit transmit register and
                   Doorbell+transmit acknowledgment IRQ support

  In the CIX Sky1 SoC use case, there are 4 pairs of mailbox controllers
    AP <--> PM - using Doorbell transfer mode
    AP <--> SE - using REG transfer mode
    AP <--> DSP - using FIFO transfer mode
    AP <--> SensorHub - using FIFO transfer mode

properties:
  compatible:
    const: cix,sky1-mbox

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  "#mbox-cells":
    const: 1

  cix,mbox-dir:
    $ref: /schemas/types.yaml#/definitions/string
    description: Direction of the mailbox relative to the AP
    enum: [tx, rx]

required:
  - compatible
  - reg
  - interrupts
  - "#mbox-cells"
  - cix,mbox-dir

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        mbox_ap2pm: mailbox@30000000 {
            compatible = "cix,sky1-mbox";
            reg = <0 0x30000000 0 0x10000>;
            interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
            #mbox-cells = <1>;
            cix,mbox-dir = "tx";
        };
    };
+2 −0
Original line number Diff line number Diff line
@@ -306,6 +306,8 @@ patternProperties:
    description: Cirrus Logic, Inc.
  "^cisco,.*":
    description: Cisco Systems, Inc.
  "^cix,.*":
    description: CIX Technology Group Co., Ltd.
  "^clockwork,.*":
    description: Clockwork Tech LLC
  "^cloos,.*":
+13 −0
Original line number Diff line number Diff line
@@ -2472,6 +2472,19 @@ F: arch/arm/boot/compressed/misc-ep93xx.h
F:	arch/arm/mach-ep93xx/
F:	drivers/iio/adc/ep93xx_adc.c
ARM/CIX SOC SUPPORT
M:	Peter Chen <peter.chen@cixtech.com>
M:	Fugang Duan <fugang.duan@cixtech.com>
R:	CIX Linux Kernel Upstream Group <cix-kernel-upstream@cixtech.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix.git
F:	Documentation/devicetree/bindings/arm/cix.yaml
F:	Documentation/devicetree/bindings/mailbox/cix,sky1-mbox.yaml
F:	arch/arm64/boot/dts/cix/
F:	drivers/mailbox/cix-mailbox.c
K:	\bcix\b
ARM/CLKDEV SUPPORT
M:	Russell King <linux@armlinux.org.uk>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+6 −0
Original line number Diff line number Diff line
@@ -106,6 +106,12 @@ config ARCH_BLAIZE
	help
	  This enables support for the Blaize SoC family

config ARCH_CIX
	bool "Cixtech SoC family"
	help
	  This enables support for the Cixtech SoC family,
	  like P1(sky1).

config ARCH_EXYNOS
	bool "Samsung Exynos SoC family"
	select COMMON_CLK_SAMSUNG
Loading