blob: cf2ce8a1f6c93506cb5ad00e4320a8d2002b33a7 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Alexey Brodkin88961bc2016-11-25 16:23:43 +03002/*
3 * Copyright (C) 2017 Synopsys, Inc. All rights reserved.
Alexey Brodkin88961bc2016-11-25 16:23:43 +03004 */
5/dts-v1/;
6
7#include "skeleton.dtsi"
Eugeniy Paltsev24e026e2018-03-26 15:57:37 +03008#include "dt-bindings/clock/snps,hsdk-cgu.h"
Eugeniy Paltsevd8b76a52020-03-11 15:37:23 +03009#include "dt-bindings/reset/snps,hsdk-reset.h"
Alexey Brodkin88961bc2016-11-25 16:23:43 +030010
11/ {
Alexey Brodkinb0150822018-10-02 11:37:25 +030012 model = "snps,hsdk";
13
Alexey Brodkin88961bc2016-11-25 16:23:43 +030014 #address-cells = <1>;
15 #size-cells = <1>;
16
17 aliases {
18 console = &uart0;
Eugeniy Paltsev90338842018-03-26 15:57:38 +030019 spi0 = &spi0;
Alexey Brodkin88961bc2016-11-25 16:23:43 +030020 };
21
22 cpu_card {
23 core_clk: core_clk {
24 #clock-cells = <0>;
25 compatible = "fixed-clock";
Eugeniy Paltsev919c3ea2018-09-05 14:27:10 +030026 clock-frequency = <500000000>;
Alexey Brodkin88961bc2016-11-25 16:23:43 +030027 u-boot,dm-pre-reloc;
28 };
29 };
30
Eugeniy Paltsev24e026e2018-03-26 15:57:37 +030031 clk-fmeas {
32 clocks = <&cgu_clk CLK_ARC_PLL>, <&cgu_clk CLK_SYS_PLL>,
33 <&cgu_clk CLK_TUN_PLL>, <&cgu_clk CLK_DDR_PLL>,
34 <&cgu_clk CLK_ARC>, <&cgu_clk CLK_HDMI_PLL>,
35 <&cgu_clk CLK_TUN_TUN>, <&cgu_clk CLK_HDMI>,
36 <&cgu_clk CLK_SYS_APB>, <&cgu_clk CLK_SYS_AXI>,
37 <&cgu_clk CLK_SYS_ETH>, <&cgu_clk CLK_SYS_USB>,
38 <&cgu_clk CLK_SYS_SDIO>, <&cgu_clk CLK_SYS_HDMI>,
39 <&cgu_clk CLK_SYS_GFX_CORE>, <&cgu_clk CLK_SYS_GFX_DMA>,
40 <&cgu_clk CLK_SYS_GFX_CFG>, <&cgu_clk CLK_SYS_DMAC_CORE>,
41 <&cgu_clk CLK_SYS_DMAC_CFG>, <&cgu_clk CLK_SYS_SDIO_REF>,
42 <&cgu_clk CLK_SYS_SPI_REF>, <&cgu_clk CLK_SYS_I2C_REF>,
43 <&cgu_clk CLK_SYS_UART_REF>, <&cgu_clk CLK_SYS_EBI_REF>,
44 <&cgu_clk CLK_TUN_ROM>, <&cgu_clk CLK_TUN_PWM>;
45 clock-names = "cpu-pll", "sys-pll",
46 "tun-pll", "ddr-clk",
47 "cpu-clk", "hdmi-pll",
48 "tun-clk", "hdmi-clk",
49 "apb-clk", "axi-clk",
50 "eth-clk", "usb-clk",
51 "sdio-clk", "hdmi-sys-clk",
52 "gfx-core-clk", "gfx-dma-clk",
53 "gfx-cfg-clk", "dmac-core-clk",
54 "dmac-cfg-clk", "sdio-ref-clk",
55 "spi-clk", "i2c-clk",
56 "uart-clk", "ebi-clk",
57 "rom-clk", "pwm-clk";
58 };
59
Eugeniy Paltsev1c2ba462018-01-16 20:44:28 +030060 cgu_clk: cgu-clk@f0000000 {
61 compatible = "snps,hsdk-cgu-clock";
62 reg = <0xf0000000 0x10>, <0xf00014B8 0x4>;
63 #clock-cells = <1>;
64 };
65
Eugeniy Paltsevd8b76a52020-03-11 15:37:23 +030066 cgu_rst: reset-controller@f00008a0 {
67 compatible = "snps,hsdk-reset";
68 #reset-cells = <1>;
69 reg = <0xf00008a0 0x4>, <0xf0000ff0 0x4>;
70 };
71
Alexey Brodkin88961bc2016-11-25 16:23:43 +030072 uart0: serial0@f0005000 {
73 compatible = "snps,dw-apb-uart";
74 reg = <0xf0005000 0x1000>;
75 reg-shift = <2>;
76 reg-io-width = <4>;
77 };
78
79 ethernet@f0008000 {
80 #interrupt-cells = <1>;
Eugeniy Paltsev5738e942019-10-07 19:10:50 +030081 compatible = "snps,arc-dwmac-3.70a";
Alexey Brodkin88961bc2016-11-25 16:23:43 +030082 reg = <0xf0008000 0x2000>;
83 phy-mode = "gmii";
84 };
85
86 ehci@0xf0040000 {
87 compatible = "generic-ehci";
88 reg = <0xf0040000 0x100>;
89 };
90
91 ohci@0xf0060000 {
92 compatible = "generic-ohci";
93 reg = <0xf0060000 0x100>;
94 };
Eugeniy Paltsev90338842018-03-26 15:57:38 +030095
Eugeniy Paltsevc8c5b0e2019-02-25 18:35:29 +030096 mmcclk_ciu: mmcclk-ciu {
97 compatible = "fixed-clock";
98 /*
99 * DW sdio controller has external ciu clock divider
100 * controlled via register in SDIO IP. Due to its
101 * unexpected default value (it should divide by 1
102 * but it divides by 8) SDIO IP uses wrong clock and
103 * works unstable (see STAR 9001204800)
104 * We switched to the minimum possible value of the
105 * divisor (div-by-2) in HSDK platform code.
106 * So default mmcclk ciu clock is 50000000 Hz.
107 */
108 clock-frequency = <50000000>;
109 #clock-cells = <0>;
110 };
111
112 mmc: mmc0@f000a000 {
113 compatible = "snps,dw-mshc";
114 reg = <0xf000a000 0x400>;
115 bus-width = <4>;
116 fifo-depth = <256>;
117 clocks = <&cgu_clk CLK_SYS_SDIO>, <&mmcclk_ciu>;
118 clock-names = "biu", "ciu";
119 max-frequency = <25000000>;
120 };
121
Eugeniy Paltsev90338842018-03-26 15:57:38 +0300122 spi0: spi@f0020000 {
123 compatible = "snps,dw-apb-ssi";
124 reg = <0xf0020000 0x1000>;
125 #address-cells = <1>;
126 #size-cells = <0>;
127 spi-max-frequency = <4000000>;
128 clocks = <&cgu_clk CLK_SYS_SPI_REF>;
129 clock-names = "spi_clk";
130 cs-gpio = <&cs_gpio 0>;
131 spi_flash@0 {
Neil Armstronga009fa72019-02-10 10:16:20 +0000132 compatible = "jedec,spi-nor";
Eugeniy Paltsev90338842018-03-26 15:57:38 +0300133 reg = <0>;
134 spi-max-frequency = <4000000>;
135 };
136 };
137
138 cs_gpio: gpio@f00014b0 {
Eugeniy Paltsevb23d6332018-06-08 17:58:23 +0300139 compatible = "snps,creg-gpio";
Eugeniy Paltsev90338842018-03-26 15:57:38 +0300140 reg = <0xf00014b0 0x4>;
141 gpio-controller;
142 #gpio-cells = <1>;
143 gpio-bank-name = "hsdk-spi-cs";
144 gpio-count = <1>;
Eugeniy Paltsevb23d6332018-06-08 17:58:23 +0300145 gpio-first-shift = <0>;
146 gpio-bit-per-line = <2>;
147 gpio-activate-val = <2>;
148 gpio-deactivate-val = <3>;
149 gpio-default-val = <1>;
Eugeniy Paltsev90338842018-03-26 15:57:38 +0300150 };
Alexey Brodkin88961bc2016-11-25 16:23:43 +0300151};