dt-bindings: clock: add Anlogic DR1V90 CRU

Add the Clock and Reset Unit (CRU) support for the Anlogic DR1V90 SoC,
which is responsible for clock and reset management.

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Junhui Liu <junhui.liu@pigmoral.tech>
Signed-off-by: Brian Masney <bmasney@redhat.com>
This commit is contained in:
Junhui Liu 2026-05-14 17:27:18 +08:00 committed by Brian Masney
parent f036decc44
commit 155d900e4c
3 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,60 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/anlogic,dr1v90-cru.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Anlogic DR1V90 Clock and Reset Unit (CRU)
maintainers:
- Junhui Liu <junhui.liu@pigmoral.tech>
properties:
compatible:
const: anlogic,dr1v90-cru
reg:
maxItems: 1
clocks:
items:
- description: Main oscillator
- description: External CAN clock
- description: External WDT clock
clock-names:
items:
- const: osc
- const: can_ext
- const: wdt_ext
"#clock-cells":
const: 1
description:
Refer <dt-bindings/clock/anlogic,dr1v90-cru.h> for valid indices.
"#reset-cells":
const: 1
description:
Refer <dt-bindings/reset/anlogic,dr1v90-cru.h> for valid indices.
required:
- compatible
- reg
- clocks
- clock-names
- "#clock-cells"
- "#reset-cells"
additionalProperties: false
examples:
- |
clock-controller@f8801000 {
compatible = "anlogic,dr1v90-cru";
reg = <0xf8801000 0x400>;
clocks = <&osc>, <&can_ext>, <&wdt_ext>;
clock-names = "osc", "can_ext", "wdt_ext";
#clock-cells = <1>;
#reset-cells = <1>;
};

View File

@ -0,0 +1,46 @@
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
/*
* Copyright (C) 2024-2025 Anlogic, Inc.
* Copyright (C) 2025 Junhui Liu <junhui.liu@pigmoral.tech>
*/
#ifndef _DT_BINDINGS_CLOCK_ANLOGIC_DR1V90_CRU_H_
#define _DT_BINDINGS_CLOCK_ANLOGIC_DR1V90_CRU_H_
#define CLK_OSC_DIV2 0
#define CLK_CPU_PLL 1
#define CLK_CPU_PLL_4X 2
#define CLK_CPU_4X 3
#define CLK_CPU_2X 4
#define CLK_CPU_1X 5
#define CLK_IO_PLL 6
#define CLK_IO_1000M 7
#define CLK_IO_400M 8
#define CLK_IO_25M 9
#define CLK_IO_80M 10
#define CLK_IO_400M_DIV2 11
#define CLK_IO_400M_DIV4 12
#define CLK_IO_400M_DIV8 13
#define CLK_IO_400M_DIV16 14
#define CLK_QSPI 15
#define CLK_SPI 16
#define CLK_SMC 17
#define CLK_SDIO 18
#define CLK_GPIO_DB 19
#define CLK_EFUSE 20
#define CLK_TVS 21
#define CLK_TRNG 22
#define CLK_OSC_DIV 23
#define CLK_PWM 24
#define CLK_FCLK0 25
#define CLK_FCLK1 26
#define CLK_FCLK2 27
#define CLK_FCLK3 28
#define CLK_WDT_SEL 29
#define CLK_EFUSE_SEL 30
#define CLK_CAN_SEL 31
#define CLK_CPU_SEL 32
#define CLK_CAN0 33
#define CLK_CAN1 34
#endif /* _DT_BINDINGS_CLOCK_ANLOGIC_DR1V90_CRU_H_ */

View File

@ -0,0 +1,41 @@
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
/*
* Copyright (C) 2025 Junhui Liu <junhui.liu@pigmoral.tech>
*/
#ifndef _DT_BINDINGS_RESET_ANLOGIC_DR1V90_CRU_H_
#define _DT_BINDINGS_RESET_ANLOGIC_DR1V90_CRU_H_
#define RESET_OCM 0
#define RESET_QSPI 1
#define RESET_SMC 2
#define RESET_WDT 3
#define RESET_DMAC_AXI 4
#define RESET_DMAC_AHB 5
#define RESET_NPU 6
#define RESET_JPU 7
#define RESET_DDRBUS 8
#define RESET_NIC_HP0 9
#define RESET_NIC_HP1 10
#define RESET_NIC_GP0M 11
#define RESET_NIC_GP1M 12
#define RESET_GPIO 13
#define RESET_IPC 14
#define RESET_USB0 15
#define RESET_USB1 16
#define RESET_GBE0 17
#define RESET_GBE1 18
#define RESET_SDIO0 19
#define RESET_SDIO1 20
#define RESET_UART0 21
#define RESET_UART1 22
#define RESET_SPI0 23
#define RESET_SPI1 24
#define RESET_CAN0 25
#define RESET_CAN1 26
#define RESET_TTC0 27
#define RESET_TTC1 28
#define RESET_I2C0 29
#define RESET_I2C1 30
#endif /* _DT_BINDINGS_RESET_ANLOGIC_DR1V90_CRU_H_ */