mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 21:30:54 +07:00
91dc985c5e
Add support for retrieving TTC configuration from device tree. This includes the ability to pull information about the driving clocks from the of_clk bindings. Signed-off-by: Josh Cartwright <josh.cartwright@ni.com> Acked-by: Michal Simek <michal.simek@xilinx.com>
167 lines
3.7 KiB
Plaintext
167 lines
3.7 KiB
Plaintext
/*
|
|
* Copyright (C) 2011 Xilinx
|
|
*
|
|
* This software is licensed under the terms of the GNU General Public
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
* may be copied, distributed, and modified under those terms.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
/include/ "skeleton.dtsi"
|
|
|
|
/ {
|
|
compatible = "xlnx,zynq-7000";
|
|
|
|
amba {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
interrupt-parent = <&intc>;
|
|
ranges;
|
|
|
|
intc: interrupt-controller@f8f01000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
#interrupt-cells = <3>;
|
|
#address-cells = <1>;
|
|
interrupt-controller;
|
|
reg = <0xF8F01000 0x1000>,
|
|
<0xF8F00100 0x100>;
|
|
};
|
|
|
|
L2: cache-controller {
|
|
compatible = "arm,pl310-cache";
|
|
reg = <0xF8F02000 0x1000>;
|
|
arm,data-latency = <2 3 2>;
|
|
arm,tag-latency = <2 3 2>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
};
|
|
|
|
uart0: uart@e0000000 {
|
|
compatible = "xlnx,xuartps";
|
|
reg = <0xE0000000 0x1000>;
|
|
interrupts = <0 27 4>;
|
|
clock = <50000000>;
|
|
};
|
|
|
|
uart1: uart@e0001000 {
|
|
compatible = "xlnx,xuartps";
|
|
reg = <0xE0001000 0x1000>;
|
|
interrupts = <0 50 4>;
|
|
clock = <50000000>;
|
|
};
|
|
|
|
slcr: slcr@f8000000 {
|
|
compatible = "xlnx,zynq-slcr";
|
|
reg = <0xF8000000 0x1000>;
|
|
|
|
clocks {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
ps_clk: ps_clk {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-clock";
|
|
/* clock-frequency set in board-specific file */
|
|
clock-output-names = "ps_clk";
|
|
};
|
|
armpll: armpll {
|
|
#clock-cells = <0>;
|
|
compatible = "xlnx,zynq-pll";
|
|
clocks = <&ps_clk>;
|
|
reg = <0x100 0x110>;
|
|
clock-output-names = "armpll";
|
|
};
|
|
ddrpll: ddrpll {
|
|
#clock-cells = <0>;
|
|
compatible = "xlnx,zynq-pll";
|
|
clocks = <&ps_clk>;
|
|
reg = <0x104 0x114>;
|
|
clock-output-names = "ddrpll";
|
|
};
|
|
iopll: iopll {
|
|
#clock-cells = <0>;
|
|
compatible = "xlnx,zynq-pll";
|
|
clocks = <&ps_clk>;
|
|
reg = <0x108 0x118>;
|
|
clock-output-names = "iopll";
|
|
};
|
|
uart_clk: uart_clk {
|
|
#clock-cells = <1>;
|
|
compatible = "xlnx,zynq-periph-clock";
|
|
clocks = <&iopll &armpll &ddrpll>;
|
|
reg = <0x154>;
|
|
clock-output-names = "uart0_ref_clk",
|
|
"uart1_ref_clk";
|
|
};
|
|
cpu_clk: cpu_clk {
|
|
#clock-cells = <1>;
|
|
compatible = "xlnx,zynq-cpu-clock";
|
|
clocks = <&iopll &armpll &ddrpll>;
|
|
reg = <0x120 0x1C4>;
|
|
clock-output-names = "cpu_6x4x",
|
|
"cpu_3x2x",
|
|
"cpu_2x",
|
|
"cpu_1x";
|
|
};
|
|
};
|
|
};
|
|
|
|
ttc0: ttc0@f8001000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "xlnx,ttc";
|
|
reg = <0xF8001000 0x1000>;
|
|
clocks = <&cpu_clk 3>;
|
|
clock-names = "cpu_1x";
|
|
clock-ranges;
|
|
|
|
ttc0_0: ttc0.0 {
|
|
status = "disabled";
|
|
reg = <0>;
|
|
interrupts = <0 10 4>;
|
|
};
|
|
ttc0_1: ttc0.1 {
|
|
status = "disabled";
|
|
reg = <1>;
|
|
interrupts = <0 11 4>;
|
|
};
|
|
ttc0_2: ttc0.2 {
|
|
status = "disabled";
|
|
reg = <2>;
|
|
interrupts = <0 12 4>;
|
|
};
|
|
};
|
|
|
|
ttc1: ttc1@f8002000 {
|
|
#interrupt-parent = <&intc>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "xlnx,ttc";
|
|
reg = <0xF8002000 0x1000>;
|
|
clocks = <&cpu_clk 3>;
|
|
clock-names = "cpu_1x";
|
|
clock-ranges;
|
|
|
|
ttc1_0: ttc1.0 {
|
|
status = "disabled";
|
|
reg = <0>;
|
|
interrupts = <0 37 4>;
|
|
};
|
|
ttc1_1: ttc1.1 {
|
|
status = "disabled";
|
|
reg = <1>;
|
|
interrupts = <0 38 4>;
|
|
};
|
|
ttc1_2: ttc1.2 {
|
|
status = "disabled";
|
|
reg = <2>;
|
|
interrupts = <0 39 4>;
|
|
};
|
|
};
|
|
};
|
|
};
|