1

dt-bindings: soc: Add Cirrus EP93xx

Add device tree bindings for the Cirrus Logic EP93xx SoC.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Nikita Shubin 2024-09-09 11:10:31 +03:00 committed by Arnd Bergmann
parent 9fa7cdb436
commit eeb3dd5b32
3 changed files with 178 additions and 0 deletions

View File

@ -0,0 +1,38 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/cirrus/cirrus,ep9301.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cirrus Logic EP93xx platforms
description:
The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU.
maintainers:
- Alexander Sverdlin <alexander.sverdlin@gmail.com>
- Nikita Shubin <nikita.shubin@maquefel.me>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: The TS-7250 is a compact, full-featured Single Board
Computer (SBC) based upon the Cirrus EP9302 ARM9 CPU
items:
- const: technologic,ts7250
- const: cirrus,ep9301
- description: The Liebherr BK3 is a derivate from ts7250 board
items:
- const: liebherr,bk3
- const: cirrus,ep9301
- description: EDB302 is an evaluation board by Cirrus Logic,
based on a Cirrus Logic EP9302 CPU
items:
- const: cirrus,edb9302
- const: cirrus,ep9301
additionalProperties: true

View File

@ -0,0 +1,94 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/cirrus/cirrus,ep9301-syscon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cirrus Logic EP93xx Platforms System Controller
maintainers:
- Alexander Sverdlin <alexander.sverdlin@gmail.com>
- Nikita Shubin <nikita.shubin@maquefel.me>
description: |
Central resources are controlled by a set of software-locked registers,
which can be used to prevent accidental accesses. Syscon generates
the various bus and peripheral clocks and controls the system startup
configuration.
The System Controller (Syscon) provides:
- Clock control
- Power management
- System configuration management
Syscon registers are common for all EP93xx SoC's, through some actual peripheral
may be missing depending on actual SoC model.
properties:
compatible:
oneOf:
- items:
- enum:
- cirrus,ep9302-syscon
- cirrus,ep9307-syscon
- cirrus,ep9312-syscon
- cirrus,ep9315-syscon
- const: cirrus,ep9301-syscon
- const: syscon
- items:
- const: cirrus,ep9301-syscon
- const: syscon
reg:
maxItems: 1
"#clock-cells":
const: 1
clocks:
items:
- description: reference clock
patternProperties:
'^pins-':
type: object
description: pin node
$ref: /schemas/pinctrl/pinmux-node.yaml
properties:
function:
enum: [ spi, ac97, i2s, pwm, keypad, pata, lcd, gpio ]
groups:
enum: [ ssp, ac97, i2s_on_ssp, i2s_on_ac97, pwm1, gpio1agrp,
gpio2agrp, gpio3agrp, gpio4agrp, gpio6agrp, gpio7agrp,
rasteronsdram0grp, rasteronsdram3grp, keypadgrp, idegrp ]
required:
- function
- groups
unevaluatedProperties: false
required:
- compatible
- reg
- "#clock-cells"
- clocks
additionalProperties: false
examples:
- |
syscon@80930000 {
compatible = "cirrus,ep9301-syscon", "syscon";
reg = <0x80930000 0x1000>;
#clock-cells = <1>;
clocks = <&xtali>;
spi_default_pins: pins-spi {
function = "spi";
groups = "ssp";
};
};

View File

@ -0,0 +1,46 @@
/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
#ifndef DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H
#define DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H
#define EP93XX_CLK_PLL1 0
#define EP93XX_CLK_PLL2 1
#define EP93XX_CLK_FCLK 2
#define EP93XX_CLK_HCLK 3
#define EP93XX_CLK_PCLK 4
#define EP93XX_CLK_UART 5
#define EP93XX_CLK_SPI 6
#define EP93XX_CLK_PWM 7
#define EP93XX_CLK_USB 8
#define EP93XX_CLK_M2M0 9
#define EP93XX_CLK_M2M1 10
#define EP93XX_CLK_M2P0 11
#define EP93XX_CLK_M2P1 12
#define EP93XX_CLK_M2P2 13
#define EP93XX_CLK_M2P3 14
#define EP93XX_CLK_M2P4 15
#define EP93XX_CLK_M2P5 16
#define EP93XX_CLK_M2P6 17
#define EP93XX_CLK_M2P7 18
#define EP93XX_CLK_M2P8 19
#define EP93XX_CLK_M2P9 20
#define EP93XX_CLK_UART1 21
#define EP93XX_CLK_UART2 22
#define EP93XX_CLK_UART3 23
#define EP93XX_CLK_ADC 24
#define EP93XX_CLK_ADC_EN 25
#define EP93XX_CLK_KEYPAD 26
#define EP93XX_CLK_VIDEO 27
#define EP93XX_CLK_I2S_MCLK 28
#define EP93XX_CLK_I2S_SCLK 29
#define EP93XX_CLK_I2S_LRCLK 30
#endif /* DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H */