dt-bindings: soc: cix: add sky1 audss cru controller

The Cix Sky1 Audio Subsystem (AUDSS) Clock and Reset Unit (CRU)
groups clock muxing, gating and block-level software reset control
in a single register block.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Joakim Zhang <joakim.zhang@cixtech.com>
Signed-off-by: Brian Masney <bmasney@redhat.com>
This commit is contained in:
Joakim Zhang
2026-07-23 17:08:05 +08:00
committed by Brian Masney
parent 3948a36be4
commit 48ceae43be
3 changed files with 177 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/cix/cix,sky1-audss-cru.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cix Sky1 audio subsystem clock and reset unit
maintainers:
- Joakim Zhang <joakim.zhang@cixtech.com>
description: |
The Cix Sky1 Audio Subsystem (AUDSS) Clock and Reset Unit (CRU) groups
audio-related clock muxing, gating and block-level software reset control
in a single register block.
A single device node exposes both the clock controller and software reset
lines. The clock driver registers as a platform driver; the reset controller
is registered by an auxiliary driver bound from the clock driver.
Four SoC-level reference clocks listed in clocks/clock-names feed the AUDSS
clock tree. Internal AUDSS clocks are exposed via #clock-cells; indices are
defined in include/dt-bindings/clock/cix,sky1-audss-cru.h.
Block-level software reset indices are exposed via #reset-cells; indices
are defined in include/dt-bindings/reset/cix,sky1-audss-cru.h.
The SoC syscon NoC (or bus) reset is described via resets. The audio
subsystem power domain is described via power-domains.
properties:
compatible:
const: cix,sky1-audss-cru
reg:
maxItems: 1
'#clock-cells':
const: 1
description:
Clock indices are defined in include/dt-bindings/clock/cix,sky1-audss-cru.h.
'#reset-cells':
const: 1
description:
Reset indices are defined in include/dt-bindings/reset/cix,sky1-audss-cru.h.
clocks:
items:
- description: I2S parent clock for sampling rates multiple of 8kHz.
- description: I2S parent clock for sampling rates multiple of 11.025kHz.
- description: Clock feeding most devices in AUDSS (NOC, DSP, SRAM, HDA, DMAC, I2S, and mailbox).
- description: Clock feeding HDA, timer and watchdog, which is a dedicated 48 MHz clock.
clock-names:
items:
- const: x8k
- const: x11k
- const: sys
- const: 48m
power-domains:
maxItems: 1
resets:
maxItems: 1
required:
- compatible
- reg
- '#clock-cells'
- '#reset-cells'
- clocks
- clock-names
- power-domains
- resets
additionalProperties: false
examples:
- |
audss_cru: clock-controller@7110000 {
compatible = "cix,sky1-audss-cru";
reg = <0x7110000 0x10000>;
#clock-cells = <1>;
#reset-cells = <1>;
clocks = <&scmi_clk 76>, <&scmi_clk 78>,
<&scmi_clk 70>, <&scmi_clk 71>;
clock-names = "x8k", "x11k", "sys", "48m";
power-domains = <&smc_devpd 0>;
resets = <&s5_syscon 31>;
};

View File

@@ -0,0 +1,60 @@
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
/*
* Copyright 2026 Cix Technology Group Co., Ltd.
*/
#ifndef _DT_BINDINGS_CLOCK_CIX_SKY1_AUDSS_CRU_H
#define _DT_BINDINGS_CLOCK_CIX_SKY1_AUDSS_CRU_H
#define CLK_AUD_CLK4_DIV2 0
#define CLK_AUD_CLK4_DIV4 1
#define CLK_AUD_CLK5_DIV2 2
#define CLK_DSP_CLK 3
#define CLK_DSP_BCLK 4
#define CLK_DSP_PBCLK 5
#define CLK_SRAM_AXI 6
#define CLK_HDA_SYS 7
#define CLK_HDA_HDA 8
#define CLK_DMAC_AXI 9
#define CLK_WDG_APB 10
#define CLK_WDG_WDG 11
#define CLK_TIMER_APB 12
#define CLK_TIMER_TIMER 13
#define CLK_MB_0_APB 14 /* MB0: ap->dsp */
#define CLK_MB_1_APB 15 /* MB1: dsp->ap */
#define CLK_I2S0_APB 16
#define CLK_I2S1_APB 17
#define CLK_I2S2_APB 18
#define CLK_I2S3_APB 19
#define CLK_I2S4_APB 20
#define CLK_I2S5_APB 21
#define CLK_I2S6_APB 22
#define CLK_I2S7_APB 23
#define CLK_I2S8_APB 24
#define CLK_I2S9_APB 25
#define CLK_I2S0 26
#define CLK_I2S1 27
#define CLK_I2S2 28
#define CLK_I2S3 29
#define CLK_I2S4 30
#define CLK_I2S5 31
#define CLK_I2S6 32
#define CLK_I2S7 33
#define CLK_I2S8 34
#define CLK_I2S9 35
#define CLK_MCLK0 36
#define CLK_MCLK1 37
#define CLK_MCLK2 38
#define CLK_MCLK3 39
#define CLK_MCLK4 40
#endif

View File

@@ -0,0 +1,25 @@
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
/*
* Copyright 2026 Cix Technology Group Co., Ltd.
*/
#ifndef DT_BINDINGS_RESET_CIX_SKY1_AUDSS_CRU_H
#define DT_BINDINGS_RESET_CIX_SKY1_AUDSS_CRU_H
#define AUDSS_I2S0_SW_RST 0
#define AUDSS_I2S1_SW_RST 1
#define AUDSS_I2S2_SW_RST 2
#define AUDSS_I2S3_SW_RST 3
#define AUDSS_I2S4_SW_RST 4
#define AUDSS_I2S5_SW_RST 5
#define AUDSS_I2S6_SW_RST 6
#define AUDSS_I2S7_SW_RST 7
#define AUDSS_I2S8_SW_RST 8
#define AUDSS_I2S9_SW_RST 9
#define AUDSS_WDT_SW_RST 10
#define AUDSS_TIMER_SW_RST 11
#define AUDSS_MB0_SW_RST 12
#define AUDSS_MB1_SW_RST 13
#define AUDSS_HDA_SW_RST 14
#define AUDSS_DMAC_SW_RST 15
#endif