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

dt-bindings: clock: meson8b: describe the embedded reset controller

The Amlogic Meson8/Meson8b/Meson8m2 clock controller provides some reset
lines. These are used for example to boot the secondary CPU cores.

This patch describes the reset controller which is embedded into the
clock controller on these SoCs.
A header file is provided which provides preprocessor macros for each
reset line (to make the .dts files easier to read).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

authored by

Martin Blumenstingl and committed by
Neil Armstrong
0f9b973b 5771a8c0

+35 -1
+8 -1
Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt
··· 16 16 mapped region. 17 17 18 18 - #clock-cells: should be 1. 19 + - #reset-cells: should be 1. 19 20 20 21 Each clock is assigned an identifier and client nodes can use this identifier 21 22 to specify the clock which they consume. All available clocks are defined as 22 23 preprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be 23 24 used in device tree sources. 24 25 26 + Similarly a preprocessor macro for each reset line is defined in 27 + dt-bindings/reset/amlogic,meson8b-clkc-reset.h (which can be used from the 28 + device tree sources). 29 + 30 + 25 31 Example: Clock controller node: 26 32 27 33 clkc: clock-controller@c1104000 { 28 - #clock-cells = <1>; 29 34 compatible = "amlogic,meson8b-clkc"; 30 35 reg = <0xc1108000 0x4>, <0xc1104000 0x460>; 36 + #clock-cells = <1>; 37 + #reset-cells = <1>; 31 38 }; 32 39 33 40
+27
include/dt-bindings/reset/amlogic,meson8b-clkc-reset.h
··· 1 + /* 2 + * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>. 3 + * 4 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 5 + */ 6 + 7 + #ifndef _DT_BINDINGS_AMLOGIC_MESON8B_CLKC_RESET_H 8 + #define _DT_BINDINGS_AMLOGIC_MESON8B_CLKC_RESET_H 9 + 10 + #define CLKC_RESET_L2_CACHE_SOFT_RESET 0 11 + #define CLKC_RESET_AXI_64_TO_128_BRIDGE_A5_SOFT_RESET 1 12 + #define CLKC_RESET_SCU_SOFT_RESET 2 13 + #define CLKC_RESET_CPU0_SOFT_RESET 3 14 + #define CLKC_RESET_CPU1_SOFT_RESET 4 15 + #define CLKC_RESET_CPU2_SOFT_RESET 5 16 + #define CLKC_RESET_CPU3_SOFT_RESET 6 17 + #define CLKC_RESET_A5_GLOBAL_RESET 7 18 + #define CLKC_RESET_A5_AXI_SOFT_RESET 8 19 + #define CLKC_RESET_A5_ABP_SOFT_RESET 9 20 + #define CLKC_RESET_AXI_64_TO_128_BRIDGE_MMC_SOFT_RESET 10 21 + #define CLKC_RESET_VID_CLK_CNTL_SOFT_RESET 11 22 + #define CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_POST 12 23 + #define CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_PRE 13 24 + #define CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_POST 14 25 + #define CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_PRE 15 26 + 27 + #endif /* _DT_BINDINGS_AMLOGIC_MESON8B_CLKC_RESET_H */