1d2912cb1SThomas Gleixner// SPDX-License-Identifier: GPL-2.0-only 25fa2daaaSVineet Gupta/* 35fa2daaaSVineet Gupta * Copyright (C) 2014-15 Synopsys, Inc. (www.synopsys.com) 45fa2daaaSVineet Gupta */ 55fa2daaaSVineet Gupta 65fa2daaaSVineet Gupta/* 75fa2daaaSVineet Gupta * Device tree for AXC003 CPU card: HS38x UP configuration 85fa2daaaSVineet Gupta */ 95fa2daaaSVineet Gupta 102e8cd938SVineet Gupta/include/ "skeleton_hs.dtsi" 112e8cd938SVineet Gupta 125fa2daaaSVineet Gupta/ { 135fa2daaaSVineet Gupta compatible = "snps,arc"; 14f862b315SEugeniy Paltsev #address-cells = <2>; 15f862b315SEugeniy Paltsev #size-cells = <2>; 165fa2daaaSVineet Gupta 175fa2daaaSVineet Gupta cpu_card { 185fa2daaaSVineet Gupta compatible = "simple-bus"; 195fa2daaaSVineet Gupta #address-cells = <1>; 205fa2daaaSVineet Gupta #size-cells = <1>; 215fa2daaaSVineet Gupta 22f862b315SEugeniy Paltsev ranges = <0x00000000 0x0 0xf0000000 0x10000000>; 235fa2daaaSVineet Gupta 24f6a09bacSEugeniy Paltsev input_clk: input-clk { 25b3d6aba8SVineet Gupta #clock-cells = <0>; 26b3d6aba8SVineet Gupta compatible = "fixed-clock"; 27f6a09bacSEugeniy Paltsev clock-frequency = <33333333>; 28f6a09bacSEugeniy Paltsev }; 29f6a09bacSEugeniy Paltsev 30f6a09bacSEugeniy Paltsev core_clk: core-clk@80 { 31f6a09bacSEugeniy Paltsev compatible = "snps,axs10x-arc-pll-clock"; 32f6a09bacSEugeniy Paltsev reg = <0x80 0x10>, <0x100 0x10>; 33f6a09bacSEugeniy Paltsev #clock-cells = <0>; 34f6a09bacSEugeniy Paltsev clocks = <&input_clk>; 35fbd1cec5SEugeniy Paltsev 36fbd1cec5SEugeniy Paltsev /* 37fbd1cec5SEugeniy Paltsev * Set initial core pll output frequency to 90MHz. 38fbd1cec5SEugeniy Paltsev * It will be applied at the core pll driver probing 39fbd1cec5SEugeniy Paltsev * on early boot. 40fbd1cec5SEugeniy Paltsev */ 41fbd1cec5SEugeniy Paltsev assigned-clocks = <&core_clk>; 42fbd1cec5SEugeniy Paltsev assigned-clock-rates = <90000000>; 43b3d6aba8SVineet Gupta }; 44b3d6aba8SVineet Gupta 459ba7648cSVineet Gupta core_intc: archs-intc@cpu { 465fa2daaaSVineet Gupta compatible = "snps,archs-intc"; 475fa2daaaSVineet Gupta interrupt-controller; 485fa2daaaSVineet Gupta #interrupt-cells = <1>; 495fa2daaaSVineet Gupta }; 505fa2daaaSVineet Gupta 515fa2daaaSVineet Gupta /* 525fa2daaaSVineet Gupta * this GPIO block ORs all interrupts on CPU card (creg,..) 535fa2daaaSVineet Gupta * to uplink only 1 IRQ to ARC core intc 545fa2daaaSVineet Gupta */ 55ef4c54c3SAlexey Brodkin dw-apb-gpio@2000 { 565fa2daaaSVineet Gupta compatible = "snps,dw-apb-gpio"; 575fa2daaaSVineet Gupta reg = < 0x2000 0x80 >; 585fa2daaaSVineet Gupta #address-cells = <1>; 595fa2daaaSVineet Gupta #size-cells = <0>; 605fa2daaaSVineet Gupta 615fa2daaaSVineet Gupta ictl_intc: gpio-controller@0 { 625fa2daaaSVineet Gupta compatible = "snps,dw-apb-gpio-port"; 635fa2daaaSVineet Gupta gpio-controller; 645fa2daaaSVineet Gupta #gpio-cells = <2>; 655fa2daaaSVineet Gupta snps,nr-gpios = <30>; 665fa2daaaSVineet Gupta reg = <0>; 675fa2daaaSVineet Gupta interrupt-controller; 685fa2daaaSVineet Gupta #interrupt-cells = <2>; 699ba7648cSVineet Gupta interrupt-parent = <&core_intc>; 705fa2daaaSVineet Gupta interrupts = <25>; 715fa2daaaSVineet Gupta }; 725fa2daaaSVineet Gupta }; 735fa2daaaSVineet Gupta 74ef4c54c3SAlexey Brodkin debug_uart: dw-apb-uart@5000 { 755fa2daaaSVineet Gupta compatible = "snps,dw-apb-uart"; 765fa2daaaSVineet Gupta reg = <0x5000 0x100>; 775fa2daaaSVineet Gupta clock-frequency = <33333000>; 785fa2daaaSVineet Gupta interrupt-parent = <&ictl_intc>; 795fa2daaaSVineet Gupta interrupts = <2 4>; 805fa2daaaSVineet Gupta baud = <115200>; 815fa2daaaSVineet Gupta reg-shift = <2>; 825fa2daaaSVineet Gupta reg-io-width = <4>; 835fa2daaaSVineet Gupta }; 845fa2daaaSVineet Gupta 855fa2daaaSVineet Gupta arcpct0: pct { 865fa2daaaSVineet Gupta compatible = "snps,archs-pct"; 875fa2daaaSVineet Gupta #interrupt-cells = <1>; 889ba7648cSVineet Gupta interrupt-parent = <&core_intc>; 895fa2daaaSVineet Gupta interrupts = <20>; 905fa2daaaSVineet Gupta }; 915fa2daaaSVineet Gupta }; 925fa2daaaSVineet Gupta 935fa2daaaSVineet Gupta /* 94678c8110SEugeniy Paltsev * Mark DMA peripherals connected via IOC port as dma-coherent. We do 95678c8110SEugeniy Paltsev * it via overlay because peripherals defined in axs10x_mb.dtsi are 96678c8110SEugeniy Paltsev * used for both AXS101 and AXS103 boards and only AXS103 has IOC (so 97678c8110SEugeniy Paltsev * only AXS103 board has HW-coherent DMA peripherals) 98678c8110SEugeniy Paltsev * We don't need to mark pgu@17000 as dma-coherent because it uses 99678c8110SEugeniy Paltsev * external DMA buffer located outside of IOC aperture. 100678c8110SEugeniy Paltsev */ 101678c8110SEugeniy Paltsev axs10x_mb { 102ef4c54c3SAlexey Brodkin ethernet@18000 { 103678c8110SEugeniy Paltsev dma-coherent; 104678c8110SEugeniy Paltsev }; 105678c8110SEugeniy Paltsev 106c8f87858SSerge Semin usb@40000 { 107678c8110SEugeniy Paltsev dma-coherent; 108678c8110SEugeniy Paltsev }; 109678c8110SEugeniy Paltsev 110c8f87858SSerge Semin usb@60000 { 111678c8110SEugeniy Paltsev dma-coherent; 112678c8110SEugeniy Paltsev }; 113678c8110SEugeniy Paltsev 114ef4c54c3SAlexey Brodkin mmc@15000 { 115678c8110SEugeniy Paltsev dma-coherent; 116678c8110SEugeniy Paltsev }; 117678c8110SEugeniy Paltsev }; 118678c8110SEugeniy Paltsev 119678c8110SEugeniy Paltsev /* 12009074950SVineet Gupta * The DW APB ICTL intc on MB is connected to CPU intc via a 12109074950SVineet Gupta * DT "invisible" DW APB GPIO block, configured to simply pass thru 122*ebfc2fd8SBjorn Helgaas * interrupts - setup accordingly in platform init (plat-axs10x/ax10x.c) 12309074950SVineet Gupta * 124*ebfc2fd8SBjorn Helgaas * So here we mimic a direct connection between them, ignoring the 12509074950SVineet Gupta * ABPG GPIO. Thus set "interrupts = <24>" (DW APB GPIO to core) 12609074950SVineet Gupta * instead of "interrupts = <12>" (DW APB ICTL to DW APB GPIO) 1275fa2daaaSVineet Gupta * 1285fa2daaaSVineet Gupta * This intc actually resides on MB, but we move it here to 1295fa2daaaSVineet Gupta * avoid duplicating the MB dtsi file given that IRQ from 1305fa2daaaSVineet Gupta * this intc to cpu intc are different for axs101 and axs103 1315fa2daaaSVineet Gupta */ 13205b1be68SZhen Lei mb_intc: interrupt-controller@e0012000 { 1335fa2daaaSVineet Gupta #interrupt-cells = <1>; 1345fa2daaaSVineet Gupta compatible = "snps,dw-apb-ictl"; 135f862b315SEugeniy Paltsev reg = < 0x0 0xe0012000 0x0 0x200 >; 1365fa2daaaSVineet Gupta interrupt-controller; 1379ba7648cSVineet Gupta interrupt-parent = <&core_intc>; 1385fa2daaaSVineet Gupta interrupts = < 24 >; 1395fa2daaaSVineet Gupta }; 1405fa2daaaSVineet Gupta 1415fa2daaaSVineet Gupta memory { 1425fa2daaaSVineet Gupta device_type = "memory"; 1439ed68785SEugeniy Paltsev /* CONFIG_LINUX_RAM_BASE needs to match low mem start */ 144f862b315SEugeniy Paltsev reg = <0x0 0x80000000 0x0 0x20000000 /* 512 MiB low mem */ 145f862b315SEugeniy Paltsev 0x1 0xc0000000 0x0 0x40000000>; /* 1 GiB highmem */ 1465fa2daaaSVineet Gupta }; 147cb2ad5e5SAlexey Brodkin 148cb2ad5e5SAlexey Brodkin reserved-memory { 149f862b315SEugeniy Paltsev #address-cells = <2>; 150f862b315SEugeniy Paltsev #size-cells = <2>; 151cb2ad5e5SAlexey Brodkin ranges; 152cb2ad5e5SAlexey Brodkin /* 153ef4c54c3SAlexey Brodkin * Move frame buffer out of IOC aperture (0x8z-0xaz). 154cb2ad5e5SAlexey Brodkin */ 155cb2ad5e5SAlexey Brodkin frame_buffer: frame_buffer@be000000 { 156cb2ad5e5SAlexey Brodkin compatible = "shared-dma-pool"; 157f862b315SEugeniy Paltsev reg = <0x0 0xbe000000 0x0 0x2000000>; 158cb2ad5e5SAlexey Brodkin no-map; 159cb2ad5e5SAlexey Brodkin }; 160cb2ad5e5SAlexey Brodkin }; 1615fa2daaaSVineet Gupta}; 162