Skip to content

Commit c5b9bff

Browse files
committed
Merge branch 'newsoc/cix-p1' into soc/newsoc
Patches from Peter Chen <[email protected]>: 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: Arnd Bergmann <[email protected]>
2 parents 63e9bb0 + 46f89a0 commit c5b9bff

File tree

14 files changed

+1434
-0
lines changed

14 files changed

+1434
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/arm/cix.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: CIX platforms
8+
9+
maintainers:
10+
- Peter Chen <[email protected]>
11+
- Fugang Duan <[email protected]>
12+
13+
properties:
14+
$nodename:
15+
const: '/'
16+
compatible:
17+
oneOf:
18+
19+
- description: Radxa Orion O6
20+
items:
21+
- const: radxa,orion-o6
22+
- const: cix,sky1
23+
24+
additionalProperties: true
25+
26+
...
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mailbox/cix,sky1-mbox.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Cixtech mailbox controller
8+
9+
maintainers:
10+
- Guomin Chen <[email protected]>
11+
12+
description:
13+
The Cixtech mailbox controller, used in the Cixtech Sky1 SoC,
14+
is used for message transmission between multiple processors
15+
within the SoC, such as the AP, PM, audio DSP, SensorHub MCU,
16+
and others
17+
18+
Each Cixtech mailbox controller is unidirectional, so they are
19+
typically used in pairs-one for receiving and one for transmitting.
20+
21+
Each Cixtech mailbox supports 11 channels with different transmission modes
22+
channel 0-7 - Fast channel with 32bit transmit register and IRQ support
23+
channel 8 - Doorbell mode,using the mailbox as an interrupt-generating
24+
mechanism.
25+
channel 9 - Fifo based channel with 32*32bit depth fifo and IRQ support
26+
channel 10 - Reg based channel with 32*32bit transmit register and
27+
Doorbell+transmit acknowledgment IRQ support
28+
29+
In the CIX Sky1 SoC use case, there are 4 pairs of mailbox controllers
30+
AP <--> PM - using Doorbell transfer mode
31+
AP <--> SE - using REG transfer mode
32+
AP <--> DSP - using FIFO transfer mode
33+
AP <--> SensorHub - using FIFO transfer mode
34+
35+
properties:
36+
compatible:
37+
const: cix,sky1-mbox
38+
39+
reg:
40+
maxItems: 1
41+
42+
interrupts:
43+
maxItems: 1
44+
45+
"#mbox-cells":
46+
const: 1
47+
48+
cix,mbox-dir:
49+
$ref: /schemas/types.yaml#/definitions/string
50+
description: Direction of the mailbox relative to the AP
51+
enum: [tx, rx]
52+
53+
required:
54+
- compatible
55+
- reg
56+
- interrupts
57+
- "#mbox-cells"
58+
- cix,mbox-dir
59+
60+
additionalProperties: false
61+
62+
examples:
63+
- |
64+
#include <dt-bindings/interrupt-controller/arm-gic.h>
65+
66+
soc {
67+
#address-cells = <2>;
68+
#size-cells = <2>;
69+
70+
mbox_ap2pm: mailbox@30000000 {
71+
compatible = "cix,sky1-mbox";
72+
reg = <0 0x30000000 0 0x10000>;
73+
interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
74+
#mbox-cells = <1>;
75+
cix,mbox-dir = "tx";
76+
};
77+
};

Documentation/devicetree/bindings/vendor-prefixes.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ patternProperties:
306306
description: Cirrus Logic, Inc.
307307
"^cisco,.*":
308308
description: Cisco Systems, Inc.
309+
"^cix,.*":
310+
description: CIX Technology Group Co., Ltd.
309311
"^clockwork,.*":
310312
description: Clockwork Tech LLC
311313
"^cloos,.*":

MAINTAINERS

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2472,6 +2472,19 @@ F: arch/arm/boot/compressed/misc-ep93xx.h
24722472
F: arch/arm/mach-ep93xx/
24732473
F: drivers/iio/adc/ep93xx_adc.c
24742474

2475+
ARM/CIX SOC SUPPORT
2476+
M: Peter Chen <[email protected]>
2477+
M: Fugang Duan <[email protected]>
2478+
R: CIX Linux Kernel Upstream Group <[email protected]>
2479+
L: [email protected] (moderated for non-subscribers)
2480+
S: Maintained
2481+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix.git
2482+
F: Documentation/devicetree/bindings/arm/cix.yaml
2483+
F: Documentation/devicetree/bindings/mailbox/cix,sky1-mbox.yaml
2484+
F: arch/arm64/boot/dts/cix/
2485+
F: drivers/mailbox/cix-mailbox.c
2486+
K: \bcix\b
2487+
24752488
ARM/CLKDEV SUPPORT
24762489
M: Russell King <[email protected]>
24772490
L: [email protected] (moderated for non-subscribers)

arch/arm64/Kconfig.platforms

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ config ARCH_BLAIZE
106106
help
107107
This enables support for the Blaize SoC family
108108

109+
config ARCH_CIX
110+
bool "Cixtech SoC family"
111+
help
112+
This enables support for the Cixtech SoC family,
113+
like P1(sky1).
114+
109115
config ARCH_EXYNOS
110116
bool "Samsung Exynos SoC family"
111117
select COMMON_CLK_SAMSUNG

arch/arm64/boot/dts/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ subdir-y += bitmain
1313
subdir-y += blaize
1414
subdir-y += broadcom
1515
subdir-y += cavium
16+
subdir-y += cix
1617
subdir-y += exynos
1718
subdir-y += freescale
1819
subdir-y += hisilicon

arch/arm64/boot/dts/cix/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
dtb-$(CONFIG_ARCH_CIX) += sky1-orion-o6.dtb
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// SPDX-License-Identifier: BSD-3-Clause
2+
/*
3+
* Copyright 2025 Cix Technology Group Co., Ltd.
4+
*
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include "sky1.dtsi"
10+
/ {
11+
model = "Radxa Orion O6";
12+
compatible = "radxa,orion-o6", "cix,sky1";
13+
14+
aliases {
15+
serial2 = &uart2;
16+
};
17+
18+
chosen {
19+
stdout-path = &uart2;
20+
};
21+
22+
reserved-memory {
23+
#address-cells = <2>;
24+
#size-cells = <2>;
25+
ranges;
26+
27+
linux,cma {
28+
compatible = "shared-dma-pool";
29+
reusable;
30+
size = <0x0 0x28000000>;
31+
linux,cma-default;
32+
};
33+
};
34+
35+
};
36+
37+
&uart2 {
38+
status = "okay";
39+
};

0 commit comments

Comments
 (0)