Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Nikita Shubin and committed by
Arnd Bergmann
eeb3dd5b 9fa7cdb4

+178
+38
Documentation/devicetree/bindings/arm/cirrus/cirrus,ep9301.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/cirrus/cirrus,ep9301.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic EP93xx platforms 8 + 9 + description: 10 + The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU. 11 + 12 + maintainers: 13 + - Alexander Sverdlin <alexander.sverdlin@gmail.com> 14 + - Nikita Shubin <nikita.shubin@maquefel.me> 15 + 16 + properties: 17 + $nodename: 18 + const: '/' 19 + compatible: 20 + oneOf: 21 + - description: The TS-7250 is a compact, full-featured Single Board 22 + Computer (SBC) based upon the Cirrus EP9302 ARM9 CPU 23 + items: 24 + - const: technologic,ts7250 25 + - const: cirrus,ep9301 26 + 27 + - description: The Liebherr BK3 is a derivate from ts7250 board 28 + items: 29 + - const: liebherr,bk3 30 + - const: cirrus,ep9301 31 + 32 + - description: EDB302 is an evaluation board by Cirrus Logic, 33 + based on a Cirrus Logic EP9302 CPU 34 + items: 35 + - const: cirrus,edb9302 36 + - const: cirrus,ep9301 37 + 38 + additionalProperties: true
+94
Documentation/devicetree/bindings/soc/cirrus/cirrus,ep9301-syscon.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/soc/cirrus/cirrus,ep9301-syscon.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cirrus Logic EP93xx Platforms System Controller 8 + 9 + maintainers: 10 + - Alexander Sverdlin <alexander.sverdlin@gmail.com> 11 + - Nikita Shubin <nikita.shubin@maquefel.me> 12 + 13 + description: | 14 + Central resources are controlled by a set of software-locked registers, 15 + which can be used to prevent accidental accesses. Syscon generates 16 + the various bus and peripheral clocks and controls the system startup 17 + configuration. 18 + 19 + The System Controller (Syscon) provides: 20 + - Clock control 21 + - Power management 22 + - System configuration management 23 + 24 + Syscon registers are common for all EP93xx SoC's, through some actual peripheral 25 + may be missing depending on actual SoC model. 26 + 27 + properties: 28 + compatible: 29 + oneOf: 30 + - items: 31 + - enum: 32 + - cirrus,ep9302-syscon 33 + - cirrus,ep9307-syscon 34 + - cirrus,ep9312-syscon 35 + - cirrus,ep9315-syscon 36 + - const: cirrus,ep9301-syscon 37 + - const: syscon 38 + - items: 39 + - const: cirrus,ep9301-syscon 40 + - const: syscon 41 + 42 + reg: 43 + maxItems: 1 44 + 45 + "#clock-cells": 46 + const: 1 47 + 48 + clocks: 49 + items: 50 + - description: reference clock 51 + 52 + patternProperties: 53 + '^pins-': 54 + type: object 55 + description: pin node 56 + $ref: /schemas/pinctrl/pinmux-node.yaml 57 + 58 + properties: 59 + function: 60 + enum: [ spi, ac97, i2s, pwm, keypad, pata, lcd, gpio ] 61 + 62 + groups: 63 + enum: [ ssp, ac97, i2s_on_ssp, i2s_on_ac97, pwm1, gpio1agrp, 64 + gpio2agrp, gpio3agrp, gpio4agrp, gpio6agrp, gpio7agrp, 65 + rasteronsdram0grp, rasteronsdram3grp, keypadgrp, idegrp ] 66 + 67 + required: 68 + - function 69 + - groups 70 + 71 + unevaluatedProperties: false 72 + 73 + required: 74 + - compatible 75 + - reg 76 + - "#clock-cells" 77 + - clocks 78 + 79 + additionalProperties: false 80 + 81 + examples: 82 + - | 83 + syscon@80930000 { 84 + compatible = "cirrus,ep9301-syscon", "syscon"; 85 + reg = <0x80930000 0x1000>; 86 + 87 + #clock-cells = <1>; 88 + clocks = <&xtali>; 89 + 90 + spi_default_pins: pins-spi { 91 + function = "spi"; 92 + groups = "ssp"; 93 + }; 94 + };
+46
include/dt-bindings/clock/cirrus,ep9301-syscon.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ 2 + #ifndef DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H 3 + #define DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H 4 + 5 + #define EP93XX_CLK_PLL1 0 6 + #define EP93XX_CLK_PLL2 1 7 + 8 + #define EP93XX_CLK_FCLK 2 9 + #define EP93XX_CLK_HCLK 3 10 + #define EP93XX_CLK_PCLK 4 11 + 12 + #define EP93XX_CLK_UART 5 13 + #define EP93XX_CLK_SPI 6 14 + #define EP93XX_CLK_PWM 7 15 + #define EP93XX_CLK_USB 8 16 + 17 + #define EP93XX_CLK_M2M0 9 18 + #define EP93XX_CLK_M2M1 10 19 + 20 + #define EP93XX_CLK_M2P0 11 21 + #define EP93XX_CLK_M2P1 12 22 + #define EP93XX_CLK_M2P2 13 23 + #define EP93XX_CLK_M2P3 14 24 + #define EP93XX_CLK_M2P4 15 25 + #define EP93XX_CLK_M2P5 16 26 + #define EP93XX_CLK_M2P6 17 27 + #define EP93XX_CLK_M2P7 18 28 + #define EP93XX_CLK_M2P8 19 29 + #define EP93XX_CLK_M2P9 20 30 + 31 + #define EP93XX_CLK_UART1 21 32 + #define EP93XX_CLK_UART2 22 33 + #define EP93XX_CLK_UART3 23 34 + 35 + #define EP93XX_CLK_ADC 24 36 + #define EP93XX_CLK_ADC_EN 25 37 + 38 + #define EP93XX_CLK_KEYPAD 26 39 + 40 + #define EP93XX_CLK_VIDEO 27 41 + 42 + #define EP93XX_CLK_I2S_MCLK 28 43 + #define EP93XX_CLK_I2S_SCLK 29 44 + #define EP93XX_CLK_I2S_LRCLK 30 45 + 46 + #endif /* DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H */