mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-10 17:00:41 -04:00
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:
committed by
Brian Masney
parent
3948a36be4
commit
48ceae43be
@@ -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>;
|
||||
};
|
||||
60
include/dt-bindings/clock/cix,sky1-audss-cru.h
Normal file
60
include/dt-bindings/clock/cix,sky1-audss-cru.h
Normal 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
|
||||
25
include/dt-bindings/reset/cix,sky1-audss-cru.h
Normal file
25
include/dt-bindings/reset/cix,sky1-audss-cru.h
Normal 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
|
||||
Reference in New Issue
Block a user