mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 09:26:06 +07:00
5b59753129
We can now add l4 abe interconnect hierarchy and ti-sysc data with ti-sysc driver supporting external optional clocks needed by mcpdm. This data is generated based on platform data from a booted system and the interconnect acces protection registers for ranges. To avoid regressions, we initially validate the device tree provided data against the existing platform data on boot. Note that mcpdm we now need to enable at module level only for devices that have the external pdmclk wired from the PMIC as the clock is needed for the module to be accessible. Cc: devicetree@vger.kernel.org Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
449 lines
11 KiB
Plaintext
449 lines
11 KiB
Plaintext
/*
|
|
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#include <dt-bindings/bus/ti-sysc.h>
|
|
#include <dt-bindings/clock/omap4.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/pinctrl/omap.h>
|
|
#include <dt-bindings/clock/omap4.h>
|
|
|
|
/ {
|
|
compatible = "ti,omap4430", "ti,omap4";
|
|
interrupt-parent = <&wakeupgen>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
chosen { };
|
|
|
|
aliases {
|
|
i2c0 = &i2c1;
|
|
i2c1 = &i2c2;
|
|
i2c2 = &i2c3;
|
|
i2c3 = &i2c4;
|
|
serial0 = &uart1;
|
|
serial1 = &uart2;
|
|
serial2 = &uart3;
|
|
serial3 = &uart4;
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu@0 {
|
|
compatible = "arm,cortex-a9";
|
|
device_type = "cpu";
|
|
next-level-cache = <&L2>;
|
|
reg = <0x0>;
|
|
|
|
clocks = <&dpll_mpu_ck>;
|
|
clock-names = "cpu";
|
|
|
|
clock-latency = <300000>; /* From omap-cpufreq driver */
|
|
};
|
|
cpu@1 {
|
|
compatible = "arm,cortex-a9";
|
|
device_type = "cpu";
|
|
next-level-cache = <&L2>;
|
|
reg = <0x1>;
|
|
};
|
|
};
|
|
|
|
/*
|
|
* Note that 4430 needs cross trigger interface (CTI) supported
|
|
* before we can configure the interrupts. This means sampling
|
|
* events are not supported for pmu. Note that 4460 does not use
|
|
* CTI, see also 4460.dtsi.
|
|
*/
|
|
pmu {
|
|
compatible = "arm,cortex-a9-pmu";
|
|
ti,hwmods = "debugss";
|
|
};
|
|
|
|
gic: interrupt-controller@48241000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
interrupt-controller;
|
|
#interrupt-cells = <3>;
|
|
reg = <0x48241000 0x1000>,
|
|
<0x48240100 0x0100>;
|
|
interrupt-parent = <&gic>;
|
|
};
|
|
|
|
L2: l2-cache-controller@48242000 {
|
|
compatible = "arm,pl310-cache";
|
|
reg = <0x48242000 0x1000>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
};
|
|
|
|
local-timer@48240600 {
|
|
compatible = "arm,cortex-a9-twd-timer";
|
|
clocks = <&mpu_periphclk>;
|
|
reg = <0x48240600 0x20>;
|
|
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_EDGE_RISING)>;
|
|
interrupt-parent = <&gic>;
|
|
};
|
|
|
|
wakeupgen: interrupt-controller@48281000 {
|
|
compatible = "ti,omap4-wugen-mpu";
|
|
interrupt-controller;
|
|
#interrupt-cells = <3>;
|
|
reg = <0x48281000 0x1000>;
|
|
interrupt-parent = <&gic>;
|
|
};
|
|
|
|
/*
|
|
* The soc node represents the soc top level view. It is used for IPs
|
|
* that are not memory mapped in the MPU view or for the MPU itself.
|
|
*/
|
|
soc {
|
|
compatible = "ti,omap-infra";
|
|
mpu {
|
|
compatible = "ti,omap4-mpu";
|
|
ti,hwmods = "mpu";
|
|
sram = <&ocmcram>;
|
|
};
|
|
|
|
dsp {
|
|
compatible = "ti,omap3-c64";
|
|
ti,hwmods = "dsp";
|
|
};
|
|
|
|
iva {
|
|
compatible = "ti,ivahd";
|
|
ti,hwmods = "iva";
|
|
};
|
|
};
|
|
|
|
/*
|
|
* XXX: Use a flat representation of the OMAP4 interconnect.
|
|
* The real OMAP interconnect network is quite complex.
|
|
* Since it will not bring real advantage to represent that in DT for
|
|
* the moment, just use a fake OCP bus entry to represent the whole bus
|
|
* hierarchy.
|
|
*/
|
|
ocp {
|
|
compatible = "ti,omap4-l3-noc", "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
|
|
reg = <0x44000000 0x1000>,
|
|
<0x44800000 0x2000>,
|
|
<0x45000000 0x1000>;
|
|
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
l4_wkup: interconnect@4a300000 {
|
|
};
|
|
|
|
l4_cfg: interconnect@4a000000 {
|
|
};
|
|
|
|
l4_per: interconnect@48000000 {
|
|
};
|
|
|
|
l4_abe: interconnect@40100000 {
|
|
};
|
|
|
|
ocmcram: ocmcram@40304000 {
|
|
compatible = "mmio-sram";
|
|
reg = <0x40304000 0xa000>; /* 40k */
|
|
};
|
|
|
|
gpmc: gpmc@50000000 {
|
|
compatible = "ti,omap4430-gpmc";
|
|
reg = <0x50000000 0x1000>;
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
|
|
dmas = <&sdma 4>;
|
|
dma-names = "rxtx";
|
|
gpmc,num-cs = <8>;
|
|
gpmc,num-waitpins = <4>;
|
|
ti,hwmods = "gpmc";
|
|
ti,no-idle-on-init;
|
|
clocks = <&l3_div_ck>;
|
|
clock-names = "fck";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
mmu_dsp: mmu@4a066000 {
|
|
compatible = "ti,omap4-iommu";
|
|
reg = <0x4a066000 0x100>;
|
|
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
|
ti,hwmods = "mmu_dsp";
|
|
#iommu-cells = <0>;
|
|
};
|
|
|
|
target-module@52000000 {
|
|
compatible = "ti,sysc-omap4", "ti,sysc";
|
|
ti,hwmods = "iss";
|
|
reg = <0x52000000 0x4>,
|
|
<0x52000010 0x4>;
|
|
reg-names = "rev", "sysc";
|
|
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
|
|
ti,sysc-midle = <SYSC_IDLE_FORCE>,
|
|
<SYSC_IDLE_NO>,
|
|
<SYSC_IDLE_SMART>,
|
|
<SYSC_IDLE_SMART_WKUP>;
|
|
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
|
<SYSC_IDLE_NO>,
|
|
<SYSC_IDLE_SMART>,
|
|
<SYSC_IDLE_SMART_WKUP>;
|
|
ti,sysc-delay-us = <2>;
|
|
clocks = <&iss_clkctrl OMAP4_ISS_CLKCTRL 0>;
|
|
clock-names = "fck";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0 0x52000000 0x1000000>;
|
|
|
|
/* No child device binding, driver in staging */
|
|
};
|
|
|
|
mmu_ipu: mmu@55082000 {
|
|
compatible = "ti,omap4-iommu";
|
|
reg = <0x55082000 0x100>;
|
|
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
|
|
ti,hwmods = "mmu_ipu";
|
|
#iommu-cells = <0>;
|
|
ti,iommu-bus-err-back;
|
|
};
|
|
target-module@4012c000 {
|
|
compatible = "ti,sysc-omap4", "ti,sysc";
|
|
ti,hwmods = "slimbus1";
|
|
reg = <0x4012c000 0x4>,
|
|
<0x4012c010 0x4>;
|
|
reg-names = "rev", "sysc";
|
|
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
|
|
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
|
<SYSC_IDLE_NO>,
|
|
<SYSC_IDLE_SMART>,
|
|
<SYSC_IDLE_SMART_WKUP>;
|
|
clocks = <&abe_clkctrl OMAP4_SLIMBUS1_CLKCTRL 0>;
|
|
clock-names = "fck";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x00000000 0x4012c000 0x1000>, /* MPU */
|
|
<0x4902c000 0x4902c000 0x1000>; /* L3 */
|
|
|
|
/* No child device binding or driver in mainline */
|
|
};
|
|
|
|
dmm@4e000000 {
|
|
compatible = "ti,omap4-dmm";
|
|
reg = <0x4e000000 0x800>;
|
|
interrupts = <0 113 0x4>;
|
|
ti,hwmods = "dmm";
|
|
};
|
|
|
|
emif1: emif@4c000000 {
|
|
compatible = "ti,emif-4d";
|
|
reg = <0x4c000000 0x100>;
|
|
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
|
|
ti,hwmods = "emif1";
|
|
ti,no-idle-on-init;
|
|
phy-type = <1>;
|
|
hw-caps-read-idle-ctrl;
|
|
hw-caps-ll-interface;
|
|
hw-caps-temp-alert;
|
|
};
|
|
|
|
emif2: emif@4d000000 {
|
|
compatible = "ti,emif-4d";
|
|
reg = <0x4d000000 0x100>;
|
|
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
|
|
ti,hwmods = "emif2";
|
|
ti,no-idle-on-init;
|
|
phy-type = <1>;
|
|
hw-caps-read-idle-ctrl;
|
|
hw-caps-ll-interface;
|
|
hw-caps-temp-alert;
|
|
};
|
|
|
|
aes1: aes@4b501000 {
|
|
compatible = "ti,omap4-aes";
|
|
ti,hwmods = "aes1";
|
|
reg = <0x4b501000 0xa0>;
|
|
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
|
dmas = <&sdma 111>, <&sdma 110>;
|
|
dma-names = "tx", "rx";
|
|
};
|
|
|
|
aes2: aes@4b701000 {
|
|
compatible = "ti,omap4-aes";
|
|
ti,hwmods = "aes2";
|
|
reg = <0x4b701000 0xa0>;
|
|
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
|
|
dmas = <&sdma 114>, <&sdma 113>;
|
|
dma-names = "tx", "rx";
|
|
};
|
|
|
|
des: des@480a5000 {
|
|
compatible = "ti,omap4-des";
|
|
ti,hwmods = "des";
|
|
reg = <0x480a5000 0xa0>;
|
|
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
|
|
dmas = <&sdma 117>, <&sdma 116>;
|
|
dma-names = "tx", "rx";
|
|
};
|
|
|
|
sham: sham@4b100000 {
|
|
compatible = "ti,omap4-sham";
|
|
ti,hwmods = "sham";
|
|
reg = <0x4b100000 0x300>;
|
|
interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
|
|
dmas = <&sdma 119>;
|
|
dma-names = "rx";
|
|
};
|
|
|
|
abb_mpu: regulator-abb-mpu {
|
|
compatible = "ti,abb-v2";
|
|
regulator-name = "abb_mpu";
|
|
#address-cells = <0>;
|
|
#size-cells = <0>;
|
|
ti,tranxdone-status-mask = <0x80>;
|
|
clocks = <&sys_clkin_ck>;
|
|
ti,settling-time = <50>;
|
|
ti,clock-cycles = <16>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
abb_iva: regulator-abb-iva {
|
|
compatible = "ti,abb-v2";
|
|
regulator-name = "abb_iva";
|
|
#address-cells = <0>;
|
|
#size-cells = <0>;
|
|
ti,tranxdone-status-mask = <0x80000000>;
|
|
clocks = <&sys_clkin_ck>;
|
|
ti,settling-time = <50>;
|
|
ti,clock-cycles = <16>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
target-module@56000000 {
|
|
compatible = "ti,sysc-omap4", "ti,sysc";
|
|
ti,hwmods = "gpu";
|
|
reg = <0x5601fc00 0x4>,
|
|
<0x5601fc10 0x4>;
|
|
reg-names = "rev", "sysc";
|
|
ti,sysc-midle = <SYSC_IDLE_FORCE>,
|
|
<SYSC_IDLE_NO>,
|
|
<SYSC_IDLE_SMART>,
|
|
<SYSC_IDLE_SMART_WKUP>;
|
|
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
|
<SYSC_IDLE_NO>,
|
|
<SYSC_IDLE_SMART>,
|
|
<SYSC_IDLE_SMART_WKUP>;
|
|
clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 0>;
|
|
clock-names = "fck";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0 0x56000000 0x2000000>;
|
|
|
|
/*
|
|
* Closed source PowerVR driver, no child device
|
|
* binding or driver in mainline
|
|
*/
|
|
};
|
|
|
|
dss: dss@58000000 {
|
|
compatible = "ti,omap4-dss";
|
|
reg = <0x58000000 0x80>;
|
|
status = "disabled";
|
|
ti,hwmods = "dss_core";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
|
|
clock-names = "fck";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
dispc@58001000 {
|
|
compatible = "ti,omap4-dispc";
|
|
reg = <0x58001000 0x1000>;
|
|
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
|
ti,hwmods = "dss_dispc";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
|
|
clock-names = "fck";
|
|
};
|
|
|
|
rfbi: encoder@58002000 {
|
|
compatible = "ti,omap4-rfbi";
|
|
reg = <0x58002000 0x1000>;
|
|
status = "disabled";
|
|
ti,hwmods = "dss_rfbi";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>, <&l3_div_ck>;
|
|
clock-names = "fck", "ick";
|
|
};
|
|
|
|
venc: encoder@58003000 {
|
|
compatible = "ti,omap4-venc";
|
|
reg = <0x58003000 0x1000>;
|
|
status = "disabled";
|
|
ti,hwmods = "dss_venc";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
|
|
clock-names = "fck";
|
|
};
|
|
|
|
dsi1: encoder@58004000 {
|
|
compatible = "ti,omap4-dsi";
|
|
reg = <0x58004000 0x200>,
|
|
<0x58004200 0x40>,
|
|
<0x58004300 0x20>;
|
|
reg-names = "proto", "phy", "pll";
|
|
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
|
|
status = "disabled";
|
|
ti,hwmods = "dss_dsi1";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
|
|
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
|
|
clock-names = "fck", "sys_clk";
|
|
};
|
|
|
|
dsi2: encoder@58005000 {
|
|
compatible = "ti,omap4-dsi";
|
|
reg = <0x58005000 0x200>,
|
|
<0x58005200 0x40>,
|
|
<0x58005300 0x20>;
|
|
reg-names = "proto", "phy", "pll";
|
|
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
|
status = "disabled";
|
|
ti,hwmods = "dss_dsi2";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
|
|
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
|
|
clock-names = "fck", "sys_clk";
|
|
};
|
|
|
|
hdmi: encoder@58006000 {
|
|
compatible = "ti,omap4-hdmi";
|
|
reg = <0x58006000 0x200>,
|
|
<0x58006200 0x100>,
|
|
<0x58006300 0x100>,
|
|
<0x58006400 0x1000>;
|
|
reg-names = "wp", "pll", "phy", "core";
|
|
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
|
|
status = "disabled";
|
|
ti,hwmods = "dss_hdmi";
|
|
clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
|
|
<&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
|
|
clock-names = "fck", "sys_clk";
|
|
dmas = <&sdma 76>;
|
|
dma-names = "audio_tx";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
#include "omap4-l4.dtsi"
|
|
#include "omap4-l4-abe.dtsi"
|
|
#include "omap44xx-clocks.dtsi"
|