Skip to content

Commit

Permalink
arm64: zynqmp: Add support for Xilinx zcu100-revC
Browse files Browse the repository at this point in the history
This board has 2GB of memory, i2c, sd, wifi sdio, spis, uarts, display
port and usbs.
Board is using fixed clocks because clock driver hasn't been merged yet.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Rob Herring <robh@kernel.org>
  • Loading branch information
Michal Simek committed Mar 8, 2018
1 parent a7a1606 commit 5869ba0
Show file tree
Hide file tree
Showing 4 changed files with 509 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Documentation/devicetree/bindings/arm/xilinx.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ shall have the following properties.

Required root node properties:
- compatible = "xlnx,zynqmp";


Additional compatible strings:

- Xilinx 96boards compatible board zcu100
"xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100"
1 change: 1 addition & 0 deletions arch/arm64/boot/dts/xilinx/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-ep108.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu100-revC.dtb
213 changes: 213 additions & 0 deletions arch/arm64/boot/dts/xilinx/zynqmp-clk.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Clock specification for Xilinx ZynqMP
*
* (C) Copyright 2015 - 2018, Xilinx, Inc.
*
* Michal Simek <michal.simek@xilinx.com>
*/

/ {
clk100: clk100 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
};

clk125: clk125 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <125000000>;
};

clk200: clk200 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};

clk250: clk250 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <250000000>;
};

clk300: clk300 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <300000000>;
};

clk600: clk600 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <600000000>;
};

dp_aclk: clock0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
clock-accuracy = <100>;
};

dp_aud_clk: clock1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24576000>;
clock-accuracy = <100>;
};

dpdma_clk: dpdma_clk {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <533000000>;
};

drm_clock: drm_clock {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <262750000>;
clock-accuracy = <0x64>;
};
};

&can0 {
clocks = <&clk100 &clk100>;
};

&can1 {
clocks = <&clk100 &clk100>;
};

&fpd_dma_chan1 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan2 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan3 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan4 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan5 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan6 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan7 {
clocks = <&clk600>, <&clk100>;
};

&fpd_dma_chan8 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan1 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan2 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan3 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan4 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan5 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan6 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan7 {
clocks = <&clk600>, <&clk100>;
};

&lpd_dma_chan8 {
clocks = <&clk600>, <&clk100>;
};

&gem0 {
clocks = <&clk125>, <&clk125>, <&clk125>;
};

&gem1 {
clocks = <&clk125>, <&clk125>, <&clk125>;
};

&gem2 {
clocks = <&clk125>, <&clk125>, <&clk125>;
};

&gem3 {
clocks = <&clk125>, <&clk125>, <&clk125>;
};

&gpio {
clocks = <&clk100>;
};

&i2c0 {
clocks = <&clk100>;
};

&i2c1 {
clocks = <&clk100>;
};

&sata {
clocks = <&clk250>;
};

&sdhci0 {
clocks = <&clk200 &clk200>;
};

&sdhci1 {
clocks = <&clk200 &clk200>;
};

&spi0 {
clocks = <&clk200 &clk200>;
};

&spi1 {
clocks = <&clk200 &clk200>;
};

&uart0 {
clocks = <&clk100 &clk100>;
};

&uart1 {
clocks = <&clk100 &clk100>;
};

&usb0 {
clocks = <&clk250>, <&clk250>;
};

&usb1 {
clocks = <&clk250>, <&clk250>;
};

&watchdog0 {
clocks = <&clk250>;
};
Loading

0 comments on commit 5869ba0

Please sign in to comment.