cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

berlin2q.dtsi (14519B)


      1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
      2/*
      3 * Copyright (C) 2014 Antoine Ténart <antoine.tenart@free-electrons.com>
      4 */
      5
      6#include <dt-bindings/clock/berlin2q.h>
      7#include <dt-bindings/interrupt-controller/arm-gic.h>
      8
      9/ {
     10	model = "Marvell Armada 1500 pro (BG2-Q) SoC";
     11	compatible = "marvell,berlin2q", "marvell,berlin";
     12	#address-cells = <1>;
     13	#size-cells = <1>;
     14
     15	aliases {
     16		serial0 = &uart0;
     17		serial1 = &uart1;
     18	};
     19
     20	cpus {
     21		#address-cells = <1>;
     22		#size-cells = <0>;
     23		enable-method = "marvell,berlin-smp";
     24
     25		cpu0: cpu@0 {
     26			compatible = "arm,cortex-a9";
     27			device_type = "cpu";
     28			next-level-cache = <&l2>;
     29			reg = <0>;
     30
     31			clocks = <&chip_clk CLKID_CPU>;
     32			clock-latency = <100000>;
     33			/* Can be modified by the bootloader */
     34			operating-points = <
     35				/* kHz    uV */
     36				1200000 1200000
     37				1000000 1200000
     38				800000  1200000
     39				600000  1200000
     40			>;
     41		};
     42
     43		cpu1: cpu@1 {
     44			compatible = "arm,cortex-a9";
     45			device_type = "cpu";
     46			next-level-cache = <&l2>;
     47			reg = <1>;
     48
     49			clocks = <&chip_clk CLKID_CPU>;
     50			clock-latency = <100000>;
     51			/* Can be modified by the bootloader */
     52			operating-points = <
     53				/* kHz    uV */
     54				1200000 1200000
     55				1000000 1200000
     56				800000  1200000
     57				600000  1200000
     58			>;
     59		};
     60
     61		cpu2: cpu@2 {
     62			compatible = "arm,cortex-a9";
     63			device_type = "cpu";
     64			next-level-cache = <&l2>;
     65			reg = <2>;
     66
     67			clocks = <&chip_clk CLKID_CPU>;
     68			clock-latency = <100000>;
     69			/* Can be modified by the bootloader */
     70			operating-points = <
     71				/* kHz    uV */
     72				1200000 1200000
     73				1000000 1200000
     74				800000  1200000
     75				600000  1200000
     76			>;
     77		};
     78
     79		cpu3: cpu@3 {
     80			compatible = "arm,cortex-a9";
     81			device_type = "cpu";
     82			next-level-cache = <&l2>;
     83			reg = <3>;
     84
     85			clocks = <&chip_clk CLKID_CPU>;
     86			clock-latency = <100000>;
     87			/* Can be modified by the bootloader */
     88			operating-points = <
     89				/* kHz    uV */
     90				1200000 1200000
     91				1000000 1200000
     92				800000  1200000
     93				600000  1200000
     94			>;
     95		};
     96	};
     97
     98	pmu {
     99		compatible = "arm,cortex-a9-pmu";
    100		interrupt-parent = <&gic>;
    101		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
    102			     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
    103			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
    104			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
    105		interrupt-affinity = <&cpu0>,
    106				     <&cpu1>,
    107				     <&cpu2>,
    108				     <&cpu3>;
    109	};
    110
    111	refclk: oscillator {
    112		compatible = "fixed-clock";
    113		#clock-cells = <0>;
    114		clock-frequency = <25000000>;
    115	};
    116
    117	soc@f7000000 {
    118		compatible = "simple-bus";
    119		#address-cells = <1>;
    120		#size-cells = <1>;
    121
    122		ranges = <0 0xf7000000 0x1000000>;
    123		interrupt-parent = <&gic>;
    124
    125		sdhci0: mmc@ab0000 {
    126			compatible = "mrvl,pxav3-mmc";
    127			reg = <0xab0000 0x200>;
    128			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
    129			clock-names = "io", "core";
    130			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
    131			status = "disabled";
    132		};
    133
    134		sdhci1: mmc@ab0800 {
    135			compatible = "mrvl,pxav3-mmc";
    136			reg = <0xab0800 0x200>;
    137			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
    138			clock-names = "io", "core";
    139			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
    140			status = "disabled";
    141		};
    142
    143		sdhci2: mmc@ab1000 {
    144			compatible = "mrvl,pxav3-mmc";
    145			reg = <0xab1000 0x200>;
    146			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
    147			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_SDIO>;
    148			clock-names = "io", "core";
    149			status = "disabled";
    150		};
    151
    152		l2: cache-controller@ac0000 {
    153			compatible = "arm,pl310-cache";
    154			reg = <0xac0000 0x1000>;
    155			cache-unified;
    156			cache-level = <2>;
    157			arm,data-latency = <2 2 2>;
    158			arm,tag-latency = <2 2 2>;
    159		};
    160
    161		scu: snoop-control-unit@ad0000 {
    162			compatible = "arm,cortex-a9-scu";
    163			reg = <0xad0000 0x58>;
    164		};
    165
    166		local-timer@ad0600 {
    167			compatible = "arm,cortex-a9-twd-timer";
    168			reg = <0xad0600 0x20>;
    169			clocks = <&chip_clk CLKID_TWD>;
    170			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
    171		};
    172
    173		gic: interrupt-controller@ad1000 {
    174			compatible = "arm,cortex-a9-gic";
    175			reg = <0xad1000 0x1000>, <0xad0100 0x100>;
    176			interrupt-controller;
    177			#interrupt-cells = <3>;
    178		};
    179
    180		usb_phy2: phy@a2f400 {
    181			compatible = "marvell,berlin2cd-usb-phy";
    182			reg = <0xa2f400 0x128>;
    183			#phy-cells = <0>;
    184			resets = <&chip_rst 0x104 14>;
    185			status = "disabled";
    186		};
    187
    188		usb2: usb@a30000 {
    189			compatible = "chipidea,usb2";
    190			reg = <0xa30000 0x10000>;
    191			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
    192			clocks = <&chip_clk CLKID_USB2>;
    193			phys = <&usb_phy2>;
    194			phy-names = "usb-phy";
    195			status = "disabled";
    196		};
    197
    198		usb_phy0: phy@b74000 {
    199			compatible = "marvell,berlin2cd-usb-phy";
    200			reg = <0xb74000 0x128>;
    201			#phy-cells = <0>;
    202			resets = <&chip_rst 0x104 12>;
    203			status = "disabled";
    204		};
    205
    206		usb_phy1: phy@b78000 {
    207			compatible = "marvell,berlin2cd-usb-phy";
    208			reg = <0xb78000 0x128>;
    209			#phy-cells = <0>;
    210			resets = <&chip_rst 0x104 13>;
    211			status = "disabled";
    212		};
    213
    214		eth0: ethernet@b90000 {
    215			compatible = "marvell,pxa168-eth";
    216			reg = <0xb90000 0x10000>;
    217			clocks = <&chip_clk CLKID_GETH0>;
    218			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
    219			/* set by bootloader */
    220			local-mac-address = [00 00 00 00 00 00];
    221			#address-cells = <1>;
    222			#size-cells = <0>;
    223			phy-connection-type = "mii";
    224			phy-handle = <&ethphy0>;
    225			status = "disabled";
    226
    227			ethphy0: ethernet-phy@0 {
    228				reg = <0>;
    229			};
    230		};
    231
    232		cpu-ctrl@dd0000 {
    233			compatible = "marvell,berlin-cpu-ctrl";
    234			reg = <0xdd0000 0x10000>;
    235		};
    236
    237		apb@e80000 {
    238			compatible = "simple-bus";
    239			#address-cells = <1>;
    240			#size-cells = <1>;
    241
    242			ranges = <0 0xe80000 0x10000>;
    243			interrupt-parent = <&aic>;
    244
    245			gpio0: gpio@400 {
    246				compatible = "snps,dw-apb-gpio";
    247				reg = <0x0400 0x400>;
    248				#address-cells = <1>;
    249				#size-cells = <0>;
    250
    251				porta: gpio-port@0 {
    252					compatible = "snps,dw-apb-gpio-port";
    253					gpio-controller;
    254					#gpio-cells = <2>;
    255					ngpios = <32>;
    256					reg = <0>;
    257					interrupt-controller;
    258					#interrupt-cells = <2>;
    259					interrupts = <0>;
    260				};
    261			};
    262
    263			gpio1: gpio@800 {
    264				compatible = "snps,dw-apb-gpio";
    265				reg = <0x0800 0x400>;
    266				#address-cells = <1>;
    267				#size-cells = <0>;
    268
    269				portb: gpio-port@1 {
    270					compatible = "snps,dw-apb-gpio-port";
    271					gpio-controller;
    272					#gpio-cells = <2>;
    273					ngpios = <32>;
    274					reg = <0>;
    275					interrupt-controller;
    276					#interrupt-cells = <2>;
    277					interrupts = <1>;
    278				};
    279			};
    280
    281			gpio2: gpio@c00 {
    282				compatible = "snps,dw-apb-gpio";
    283				reg = <0x0c00 0x400>;
    284				#address-cells = <1>;
    285				#size-cells = <0>;
    286
    287				portc: gpio-port@2 {
    288					compatible = "snps,dw-apb-gpio-port";
    289					gpio-controller;
    290					#gpio-cells = <2>;
    291					ngpios = <32>;
    292					reg = <0>;
    293					interrupt-controller;
    294					#interrupt-cells = <2>;
    295					interrupts = <2>;
    296				};
    297			};
    298
    299			gpio3: gpio@1000 {
    300				compatible = "snps,dw-apb-gpio";
    301				reg = <0x1000 0x400>;
    302				#address-cells = <1>;
    303				#size-cells = <0>;
    304
    305				portd: gpio-port@3 {
    306					compatible = "snps,dw-apb-gpio-port";
    307					gpio-controller;
    308					#gpio-cells = <2>;
    309					ngpios = <32>;
    310					reg = <0>;
    311					interrupt-controller;
    312					#interrupt-cells = <2>;
    313					interrupts = <3>;
    314				};
    315			};
    316
    317			i2c0: i2c@1400 {
    318				compatible = "snps,designware-i2c";
    319				#address-cells = <1>;
    320				#size-cells = <0>;
    321				reg = <0x1400 0x100>;
    322				interrupts = <4>;
    323				clocks = <&chip_clk CLKID_CFG>;
    324				pinctrl-0 = <&twsi0_pmux>;
    325				pinctrl-names = "default";
    326				status = "disabled";
    327			};
    328
    329			i2c1: i2c@1800 {
    330				compatible = "snps,designware-i2c";
    331				#address-cells = <1>;
    332				#size-cells = <0>;
    333				reg = <0x1800 0x100>;
    334				interrupts = <5>;
    335				clocks = <&chip_clk CLKID_CFG>;
    336				pinctrl-0 = <&twsi1_pmux>;
    337				pinctrl-names = "default";
    338				status = "disabled";
    339			};
    340
    341			timer0: timer@2c00 {
    342				compatible = "snps,dw-apb-timer";
    343				reg = <0x2c00 0x14>;
    344				clocks = <&chip_clk CLKID_CFG>;
    345				clock-names = "timer";
    346				interrupts = <8>;
    347			};
    348
    349			timer1: timer@2c14 {
    350				compatible = "snps,dw-apb-timer";
    351				reg = <0x2c14 0x14>;
    352				clocks = <&chip_clk CLKID_CFG>;
    353				clock-names = "timer";
    354			};
    355
    356			timer2: timer@2c28 {
    357				compatible = "snps,dw-apb-timer";
    358				reg = <0x2c28 0x14>;
    359				clocks = <&chip_clk CLKID_CFG>;
    360				clock-names = "timer";
    361				status = "disabled";
    362			};
    363
    364			timer3: timer@2c3c {
    365				compatible = "snps,dw-apb-timer";
    366				reg = <0x2c3c 0x14>;
    367				clocks = <&chip_clk CLKID_CFG>;
    368				clock-names = "timer";
    369				status = "disabled";
    370			};
    371
    372			timer4: timer@2c50 {
    373				compatible = "snps,dw-apb-timer";
    374				reg = <0x2c50 0x14>;
    375				clocks = <&chip_clk CLKID_CFG>;
    376				clock-names = "timer";
    377				status = "disabled";
    378			};
    379
    380			timer5: timer@2c64 {
    381				compatible = "snps,dw-apb-timer";
    382				reg = <0x2c64 0x14>;
    383				clocks = <&chip_clk CLKID_CFG>;
    384				clock-names = "timer";
    385				status = "disabled";
    386			};
    387
    388			timer6: timer@2c78 {
    389				compatible = "snps,dw-apb-timer";
    390				reg = <0x2c78 0x14>;
    391				clocks = <&chip_clk CLKID_CFG>;
    392				clock-names = "timer";
    393				status = "disabled";
    394			};
    395
    396			timer7: timer@2c8c {
    397				compatible = "snps,dw-apb-timer";
    398				reg = <0x2c8c 0x14>;
    399				clocks = <&chip_clk CLKID_CFG>;
    400				clock-names = "timer";
    401				status = "disabled";
    402			};
    403
    404			aic: interrupt-controller@3800 {
    405				compatible = "snps,dw-apb-ictl";
    406				reg = <0x3800 0x30>;
    407				interrupt-controller;
    408				#interrupt-cells = <1>;
    409				interrupt-parent = <&gic>;
    410				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
    411			};
    412		};
    413
    414		chip: chip-control@ea0000 {
    415			compatible = "simple-mfd", "syscon";
    416			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
    417
    418			chip_clk: clock {
    419				compatible = "marvell,berlin2q-clk";
    420				#clock-cells = <1>;
    421				clocks = <&refclk>;
    422				clock-names = "refclk";
    423			};
    424
    425			soc_pinctrl: pin-controller {
    426				compatible = "marvell,berlin2q-soc-pinctrl";
    427
    428				sd1_pmux: sd1-pmux {
    429					groups = "G31";
    430					function = "sd1";
    431				};
    432
    433				twsi0_pmux: twsi0-pmux {
    434					groups = "G6";
    435					function = "twsi0";
    436				};
    437
    438				twsi1_pmux: twsi1-pmux {
    439					groups = "G7";
    440					function = "twsi1";
    441				};
    442			};
    443
    444			chip_rst: reset {
    445				compatible = "marvell,berlin2-reset";
    446				#reset-cells = <2>;
    447			};
    448		};
    449
    450		ahci: sata@e90000 {
    451			compatible = "marvell,berlin2q-ahci", "generic-ahci";
    452			reg = <0xe90000 0x1000>;
    453			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
    454			clocks = <&chip_clk CLKID_SATA>;
    455			#address-cells = <1>;
    456			#size-cells = <0>;
    457
    458			sata0: sata-port@0 {
    459				reg = <0>;
    460				phys = <&sata_phy 0>;
    461				status = "disabled";
    462			};
    463
    464			sata1: sata-port@1 {
    465				reg = <1>;
    466				phys = <&sata_phy 1>;
    467				status = "disabled";
    468			};
    469		};
    470
    471		sata_phy: phy@e900a0 {
    472			compatible = "marvell,berlin2q-sata-phy";
    473			reg = <0xe900a0 0x200>;
    474			clocks = <&chip_clk CLKID_SATA>;
    475			#address-cells = <1>;
    476			#size-cells = <0>;
    477			#phy-cells = <1>;
    478			status = "disabled";
    479
    480			sata-phy@0 {
    481				reg = <0>;
    482			};
    483
    484			sata-phy@1 {
    485				reg = <1>;
    486			};
    487		};
    488
    489		usb0: usb@ed0000 {
    490			compatible = "chipidea,usb2";
    491			reg = <0xed0000 0x10000>;
    492			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
    493			clocks = <&chip_clk CLKID_USB0>;
    494			phys = <&usb_phy0>;
    495			phy-names = "usb-phy";
    496			status = "disabled";
    497		};
    498
    499		usb1: usb@ee0000 {
    500			compatible = "chipidea,usb2";
    501			reg = <0xee0000 0x10000>;
    502			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
    503			clocks = <&chip_clk CLKID_USB1>;
    504			phys = <&usb_phy1>;
    505			phy-names = "usb-phy";
    506			status = "disabled";
    507		};
    508
    509		pwm: pwm@f20000 {
    510			compatible = "marvell,berlin-pwm";
    511			reg = <0xf20000 0x40>;
    512			clocks = <&chip_clk CLKID_CFG>;
    513			#pwm-cells = <3>;
    514		};
    515
    516		apb@fc0000 {
    517			compatible = "simple-bus";
    518			#address-cells = <1>;
    519			#size-cells = <1>;
    520
    521			ranges = <0 0xfc0000 0x10000>;
    522			interrupt-parent = <&sic>;
    523
    524			wdt0: watchdog@1000 {
    525				compatible = "snps,dw-wdt";
    526				reg = <0x1000 0x100>;
    527				clocks = <&refclk>;
    528				interrupts = <0>;
    529			};
    530
    531			wdt1: watchdog@2000 {
    532				compatible = "snps,dw-wdt";
    533				reg = <0x2000 0x100>;
    534				clocks = <&refclk>;
    535				interrupts = <1>;
    536			};
    537
    538			wdt2: watchdog@3000 {
    539				compatible = "snps,dw-wdt";
    540				reg = <0x3000 0x100>;
    541				clocks = <&refclk>;
    542				interrupts = <2>;
    543			};
    544
    545			sm_gpio1: gpio@5000 {
    546				compatible = "snps,dw-apb-gpio";
    547				reg = <0x5000 0x400>;
    548				#address-cells = <1>;
    549				#size-cells = <0>;
    550
    551				portf: gpio-port@5 {
    552					compatible = "snps,dw-apb-gpio-port";
    553					gpio-controller;
    554					#gpio-cells = <2>;
    555					ngpios = <32>;
    556					reg = <0>;
    557				};
    558			};
    559
    560			i2c2: i2c@7000 {
    561				compatible = "snps,designware-i2c";
    562				#address-cells = <1>;
    563				#size-cells = <0>;
    564				reg = <0x7000 0x100>;
    565				interrupts = <6>;
    566				clocks = <&refclk>;
    567				pinctrl-0 = <&twsi2_pmux>;
    568				pinctrl-names = "default";
    569				status = "disabled";
    570			};
    571
    572			i2c3: i2c@8000 {
    573				compatible = "snps,designware-i2c";
    574				#address-cells = <1>;
    575				#size-cells = <0>;
    576				reg = <0x8000 0x100>;
    577				interrupts = <7>;
    578				clocks = <&refclk>;
    579				pinctrl-0 = <&twsi3_pmux>;
    580				pinctrl-names = "default";
    581				status = "disabled";
    582			};
    583
    584			uart0: uart@9000 {
    585				compatible = "snps,dw-apb-uart";
    586				reg = <0x9000 0x100>;
    587				interrupts = <8>;
    588				clocks = <&refclk>;
    589				reg-shift = <2>;
    590				pinctrl-0 = <&uart0_pmux>;
    591				pinctrl-names = "default";
    592				status = "disabled";
    593			};
    594
    595			uart1: uart@a000 {
    596				compatible = "snps,dw-apb-uart";
    597				reg = <0xa000 0x100>;
    598				interrupts = <9>;
    599				clocks = <&refclk>;
    600				reg-shift = <2>;
    601				pinctrl-0 = <&uart1_pmux>;
    602				pinctrl-names = "default";
    603				status = "disabled";
    604			};
    605
    606			sm_gpio0: gpio@c000 {
    607				compatible = "snps,dw-apb-gpio";
    608				reg = <0xc000 0x400>;
    609				#address-cells = <1>;
    610				#size-cells = <0>;
    611
    612				porte: gpio-port@4 {
    613					compatible = "snps,dw-apb-gpio-port";
    614					gpio-controller;
    615					#gpio-cells = <2>;
    616					ngpios = <32>;
    617					reg = <0>;
    618				};
    619			};
    620
    621			sysctrl: pin-controller@d000 {
    622				compatible = "simple-mfd", "syscon";
    623				reg = <0xd000 0x100>;
    624
    625				sys_pinctrl: pin-controller {
    626					compatible = "marvell,berlin2q-system-pinctrl";
    627
    628					uart0_pmux: uart0-pmux {
    629						groups = "GSM12";
    630						function = "uart0";
    631					};
    632
    633					uart1_pmux: uart1-pmux {
    634						groups = "GSM14";
    635						function = "uart1";
    636					};
    637
    638					twsi2_pmux: twsi2-pmux {
    639						groups = "GSM13";
    640						function = "twsi2";
    641					};
    642
    643					twsi3_pmux: twsi3-pmux {
    644						groups = "GSM14";
    645						function = "twsi3";
    646					};
    647				};
    648
    649				adc: adc {
    650					compatible = "marvell,berlin2-adc";
    651					interrupts = <12>, <14>;
    652					interrupt-names = "adc", "tsen";
    653				};
    654			};
    655
    656			sic: interrupt-controller@e000 {
    657				compatible = "snps,dw-apb-ictl";
    658				reg = <0xe000 0x30>;
    659				interrupt-controller;
    660				#interrupt-cells = <1>;
    661				interrupt-parent = <&gic>;
    662				interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    663			};
    664		};
    665	};
    666};