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

berlin2.dtsi (11752B)


      1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
      2/*
      3 * Device Tree Include file for Marvell Armada 1500 (Berlin BG2) SoC
      4 *
      5 * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      6 *
      7 * based on GPL'ed 2.6 kernel sources
      8 *  (c) Marvell International Ltd.
      9 */
     10
     11#include <dt-bindings/clock/berlin2.h>
     12#include <dt-bindings/interrupt-controller/arm-gic.h>
     13
     14/ {
     15	model = "Marvell Armada 1500 (BG2) SoC";
     16	compatible = "marvell,berlin2", "marvell,berlin";
     17	#address-cells = <1>;
     18	#size-cells = <1>;
     19
     20	aliases {
     21		serial0 = &uart0;
     22		serial1 = &uart1;
     23		serial2 = &uart2;
     24	};
     25
     26	cpus {
     27		#address-cells = <1>;
     28		#size-cells = <0>;
     29		enable-method = "marvell,berlin-smp";
     30
     31		cpu@0 {
     32			compatible = "marvell,pj4b";
     33			device_type = "cpu";
     34			next-level-cache = <&l2>;
     35			reg = <0>;
     36
     37			clocks = <&chip_clk CLKID_CPU>;
     38			clock-latency = <100000>;
     39			operating-points = <
     40				/* kHz    uV */
     41				1200000 1200000
     42				1000000 1200000
     43				800000  1200000
     44				600000  1200000
     45			>;
     46		};
     47
     48		cpu@1 {
     49			compatible = "marvell,pj4b";
     50			device_type = "cpu";
     51			next-level-cache = <&l2>;
     52			reg = <1>;
     53
     54			clocks = <&chip_clk CLKID_CPU>;
     55			clock-latency = <100000>;
     56			operating-points = <
     57				/* kHz    uV */
     58				1200000 1200000
     59				1000000 1200000
     60				800000  1200000
     61				600000  1200000
     62			>;
     63		};
     64	};
     65
     66	refclk: oscillator {
     67		compatible = "fixed-clock";
     68		#clock-cells = <0>;
     69		clock-frequency = <25000000>;
     70	};
     71
     72	soc@f7000000 {
     73		compatible = "simple-bus";
     74		#address-cells = <1>;
     75		#size-cells = <1>;
     76		interrupt-parent = <&gic>;
     77
     78		ranges = <0 0xf7000000 0x1000000>;
     79
     80		sdhci0: mmc@ab0000 {
     81			compatible = "mrvl,pxav3-mmc";
     82			reg = <0xab0000 0x200>;
     83			clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
     84			clock-names = "io", "core";
     85			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
     86			status = "disabled";
     87		};
     88
     89		sdhci1: mmc@ab0800 {
     90			compatible = "mrvl,pxav3-mmc";
     91			reg = <0xab0800 0x200>;
     92			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>;
     93			clock-names = "io", "core";
     94			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
     95			status = "disabled";
     96		};
     97
     98		sdhci2: mmc@ab1000 {
     99			compatible = "mrvl,pxav3-mmc";
    100			reg = <0xab1000 0x200>;
    101			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
    102			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
    103			clock-names = "io", "core";
    104			pinctrl-0 = <&emmc_pmux>;
    105			pinctrl-names = "default";
    106			status = "disabled";
    107		};
    108
    109		l2: cache-controller@ac0000 {
    110			compatible = "marvell,tauros3-cache", "arm,pl310-cache";
    111			reg = <0xac0000 0x1000>;
    112			cache-unified;
    113			cache-level = <2>;
    114		};
    115
    116		scu: snoop-control-unit@ad0000 {
    117			compatible = "arm,cortex-a9-scu";
    118			reg = <0xad0000 0x58>;
    119		};
    120
    121		gic: interrupt-controller@ad1000 {
    122			compatible = "arm,cortex-a9-gic";
    123			reg = <0xad1000 0x1000>, <0xad0100 0x0100>;
    124			interrupt-controller;
    125			#interrupt-cells = <3>;
    126		};
    127
    128		local-timer@ad0600 {
    129			compatible = "arm,cortex-a9-twd-timer";
    130			reg = <0xad0600 0x20>;
    131			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
    132			clocks = <&chip_clk CLKID_TWD>;
    133		};
    134
    135		eth1: ethernet@b90000 {
    136			compatible = "marvell,pxa168-eth";
    137			reg = <0xb90000 0x10000>;
    138			clocks = <&chip_clk CLKID_GETH1>;
    139			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
    140			/* set by bootloader */
    141			local-mac-address = [00 00 00 00 00 00];
    142			#address-cells = <1>;
    143			#size-cells = <0>;
    144			phy-connection-type = "mii";
    145			phy-handle = <&ethphy1>;
    146			status = "disabled";
    147
    148			ethphy1: ethernet-phy@0 {
    149				reg = <0>;
    150			};
    151		};
    152
    153		cpu-ctrl@dd0000 {
    154			compatible = "marvell,berlin-cpu-ctrl";
    155			reg = <0xdd0000 0x10000>;
    156		};
    157
    158		eth0: ethernet@e50000 {
    159			compatible = "marvell,pxa168-eth";
    160			reg = <0xe50000 0x10000>;
    161			clocks = <&chip_clk CLKID_GETH0>;
    162			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
    163			/* set by bootloader */
    164			local-mac-address = [00 00 00 00 00 00];
    165			#address-cells = <1>;
    166			#size-cells = <0>;
    167			phy-connection-type = "mii";
    168			phy-handle = <&ethphy0>;
    169			status = "disabled";
    170
    171			ethphy0: ethernet-phy@0 {
    172				reg = <0>;
    173			};
    174		};
    175
    176		apb@e80000 {
    177			compatible = "simple-bus";
    178			#address-cells = <1>;
    179			#size-cells = <1>;
    180
    181			ranges = <0 0xe80000 0x10000>;
    182			interrupt-parent = <&aic>;
    183
    184			gpio0: gpio@400 {
    185				compatible = "snps,dw-apb-gpio";
    186				reg = <0x0400 0x400>;
    187				#address-cells = <1>;
    188				#size-cells = <0>;
    189
    190				porta: gpio-port@0 {
    191					compatible = "snps,dw-apb-gpio-port";
    192					gpio-controller;
    193					#gpio-cells = <2>;
    194					ngpios = <8>;
    195					reg = <0>;
    196					interrupt-controller;
    197					#interrupt-cells = <2>;
    198					interrupts = <0>;
    199				};
    200			};
    201
    202			gpio1: gpio@800 {
    203				compatible = "snps,dw-apb-gpio";
    204				reg = <0x0800 0x400>;
    205				#address-cells = <1>;
    206				#size-cells = <0>;
    207
    208				portb: gpio-port@1 {
    209					compatible = "snps,dw-apb-gpio-port";
    210					gpio-controller;
    211					#gpio-cells = <2>;
    212					ngpios = <8>;
    213					reg = <0>;
    214					interrupt-controller;
    215					#interrupt-cells = <2>;
    216					interrupts = <1>;
    217				};
    218			};
    219
    220			gpio2: gpio@c00 {
    221				compatible = "snps,dw-apb-gpio";
    222				reg = <0x0c00 0x400>;
    223				#address-cells = <1>;
    224				#size-cells = <0>;
    225
    226				portc: gpio-port@2 {
    227					compatible = "snps,dw-apb-gpio-port";
    228					gpio-controller;
    229					#gpio-cells = <2>;
    230					ngpios = <8>;
    231					reg = <0>;
    232					interrupt-controller;
    233					#interrupt-cells = <2>;
    234					interrupts = <2>;
    235				};
    236			};
    237
    238			gpio3: gpio@1000 {
    239				compatible = "snps,dw-apb-gpio";
    240				reg = <0x1000 0x400>;
    241				#address-cells = <1>;
    242				#size-cells = <0>;
    243
    244				portd: gpio-port@3 {
    245					compatible = "snps,dw-apb-gpio-port";
    246					gpio-controller;
    247					#gpio-cells = <2>;
    248					ngpios = <8>;
    249					reg = <0>;
    250					interrupt-controller;
    251					#interrupt-cells = <2>;
    252					interrupts = <3>;
    253				};
    254			};
    255
    256			timer0: timer@2c00 {
    257				compatible = "snps,dw-apb-timer";
    258				reg = <0x2c00 0x14>;
    259				interrupts = <8>;
    260				clocks = <&chip_clk CLKID_CFG>;
    261				clock-names = "timer";
    262				status = "okay";
    263			};
    264
    265			timer1: timer@2c14 {
    266				compatible = "snps,dw-apb-timer";
    267				reg = <0x2c14 0x14>;
    268				interrupts = <9>;
    269				clocks = <&chip_clk CLKID_CFG>;
    270				clock-names = "timer";
    271				status = "okay";
    272			};
    273
    274			timer2: timer@2c28 {
    275				compatible = "snps,dw-apb-timer";
    276				reg = <0x2c28 0x14>;
    277				interrupts = <10>;
    278				clocks = <&chip_clk CLKID_CFG>;
    279				clock-names = "timer";
    280				status = "disabled";
    281			};
    282
    283			timer3: timer@2c3c {
    284				compatible = "snps,dw-apb-timer";
    285				reg = <0x2c3c 0x14>;
    286				interrupts = <11>;
    287				clocks = <&chip_clk CLKID_CFG>;
    288				clock-names = "timer";
    289				status = "disabled";
    290			};
    291
    292			timer4: timer@2c50 {
    293				compatible = "snps,dw-apb-timer";
    294				reg = <0x2c50 0x14>;
    295				interrupts = <12>;
    296				clocks = <&chip_clk CLKID_CFG>;
    297				clock-names = "timer";
    298				status = "disabled";
    299			};
    300
    301			timer5: timer@2c64 {
    302				compatible = "snps,dw-apb-timer";
    303				reg = <0x2c64 0x14>;
    304				interrupts = <13>;
    305				clocks = <&chip_clk CLKID_CFG>;
    306				clock-names = "timer";
    307				status = "disabled";
    308			};
    309
    310			timer6: timer@2c78 {
    311				compatible = "snps,dw-apb-timer";
    312				reg = <0x2c78 0x14>;
    313				interrupts = <14>;
    314				clocks = <&chip_clk CLKID_CFG>;
    315				clock-names = "timer";
    316				status = "disabled";
    317			};
    318
    319			timer7: timer@2c8c {
    320				compatible = "snps,dw-apb-timer";
    321				reg = <0x2c8c 0x14>;
    322				interrupts = <15>;
    323				clocks = <&chip_clk CLKID_CFG>;
    324				clock-names = "timer";
    325				status = "disabled";
    326			};
    327
    328			aic: interrupt-controller@3000 {
    329				compatible = "snps,dw-apb-ictl";
    330				reg = <0x3000 0xc00>;
    331				interrupt-controller;
    332				#interrupt-cells = <1>;
    333				interrupt-parent = <&gic>;
    334				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
    335			};
    336		};
    337
    338		ahci: sata@e90000 {
    339			compatible = "marvell,berlin2-ahci", "generic-ahci";
    340			reg = <0xe90000 0x1000>;
    341			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
    342			clocks = <&chip_clk CLKID_SATA>;
    343			#address-cells = <1>;
    344			#size-cells = <0>;
    345
    346			sata0: sata-port@0 {
    347				reg = <0>;
    348				phys = <&sata_phy 0>;
    349				status = "disabled";
    350			};
    351
    352			sata1: sata-port@1 {
    353				reg = <1>;
    354				phys = <&sata_phy 1>;
    355				status = "disabled";
    356			};
    357		};
    358
    359		sata_phy: phy@e900a0 {
    360			compatible = "marvell,berlin2-sata-phy";
    361			reg = <0xe900a0 0x200>;
    362			clocks = <&chip_clk CLKID_SATA>;
    363			#address-cells = <1>;
    364			#size-cells = <0>;
    365			#phy-cells = <1>;
    366			status = "disabled";
    367
    368			sata-phy@0 {
    369				reg = <0>;
    370			};
    371
    372			sata-phy@1 {
    373				reg = <1>;
    374			};
    375		};
    376
    377		chip: chip-control@ea0000 {
    378			compatible = "simple-mfd", "syscon";
    379			reg = <0xea0000 0x400>;
    380
    381			chip_clk: clock {
    382				compatible = "marvell,berlin2-clk";
    383				#clock-cells = <1>;
    384				clocks = <&refclk>;
    385				clock-names = "refclk";
    386			};
    387
    388			soc_pinctrl: pin-controller {
    389				compatible = "marvell,berlin2-soc-pinctrl";
    390
    391				emmc_pmux: emmc-pmux {
    392					groups = "G26";
    393					function = "emmc";
    394				};
    395			};
    396
    397			chip_rst: reset {
    398				compatible = "marvell,berlin2-reset";
    399				#reset-cells = <2>;
    400			};
    401		};
    402
    403		pwm: pwm@f20000 {
    404			compatible = "marvell,berlin-pwm";
    405			reg = <0xf20000 0x40>;
    406			clocks = <&chip_clk CLKID_CFG>;
    407			#pwm-cells = <3>;
    408		};
    409
    410		apb@fc0000 {
    411			compatible = "simple-bus";
    412			#address-cells = <1>;
    413			#size-cells = <1>;
    414
    415			ranges = <0 0xfc0000 0x10000>;
    416			interrupt-parent = <&sic>;
    417
    418			wdt0: watchdog@1000 {
    419				compatible = "snps,dw-wdt";
    420				reg = <0x1000 0x100>;
    421				clocks = <&refclk>;
    422				interrupts = <0>;
    423			};
    424
    425			wdt1: watchdog@2000 {
    426				compatible = "snps,dw-wdt";
    427				reg = <0x2000 0x100>;
    428				clocks = <&refclk>;
    429				interrupts = <1>;
    430			};
    431
    432			wdt2: watchdog@3000 {
    433				compatible = "snps,dw-wdt";
    434				reg = <0x3000 0x100>;
    435				clocks = <&refclk>;
    436				interrupts = <2>;
    437			};
    438
    439			sm_gpio1: gpio@5000 {
    440				compatible = "snps,dw-apb-gpio";
    441				reg = <0x5000 0x400>;
    442				#address-cells = <1>;
    443				#size-cells = <0>;
    444
    445				portf: gpio-port@5 {
    446					compatible = "snps,dw-apb-gpio-port";
    447					gpio-controller;
    448					#gpio-cells = <2>;
    449					ngpios = <8>;
    450					reg = <0>;
    451				};
    452			};
    453
    454			sm_gpio0: gpio@c000 {
    455				compatible = "snps,dw-apb-gpio";
    456				reg = <0xc000 0x400>;
    457				#address-cells = <1>;
    458				#size-cells = <0>;
    459
    460				porte: gpio-port@4 {
    461					compatible = "snps,dw-apb-gpio-port";
    462					gpio-controller;
    463					#gpio-cells = <2>;
    464					ngpios = <8>;
    465					reg = <0>;
    466					interrupt-controller;
    467					#interrupt-cells = <2>;
    468					interrupts = <11>;
    469				};
    470			};
    471
    472			uart0: serial@9000 {
    473				compatible = "snps,dw-apb-uart";
    474				reg = <0x9000 0x100>;
    475				reg-shift = <2>;
    476				reg-io-width = <1>;
    477				interrupts = <8>;
    478				clocks = <&refclk>;
    479				pinctrl-0 = <&uart0_pmux>;
    480				pinctrl-names = "default";
    481				status = "disabled";
    482			};
    483
    484			uart1: serial@a000 {
    485				compatible = "snps,dw-apb-uart";
    486				reg = <0xa000 0x100>;
    487				reg-shift = <2>;
    488				reg-io-width = <1>;
    489				interrupts = <9>;
    490				clocks = <&refclk>;
    491				pinctrl-0 = <&uart1_pmux>;
    492				pinctrl-names = "default";
    493				status = "disabled";
    494			};
    495
    496			uart2: serial@b000 {
    497				compatible = "snps,dw-apb-uart";
    498				reg = <0xb000 0x100>;
    499				reg-shift = <2>;
    500				reg-io-width = <1>;
    501				interrupts = <10>;
    502				clocks = <&refclk>;
    503				pinctrl-0 = <&uart2_pmux>;
    504				pinctrl-names = "default";
    505				status = "disabled";
    506			};
    507
    508			sysctrl: system-controller@d000 {
    509				compatible = "simple-mfd", "syscon";
    510				reg = <0xd000 0x100>;
    511
    512				sys_pinctrl: pin-controller {
    513					compatible = "marvell,berlin2-system-pinctrl";
    514					uart0_pmux: uart0-pmux {
    515						groups = "GSM4";
    516						function = "uart0";
    517					};
    518
    519					uart1_pmux: uart1-pmux {
    520						groups = "GSM5";
    521						function = "uart1";
    522					};
    523					uart2_pmux: uart2-pmux {
    524						groups = "GSM3";
    525						function = "uart2";
    526					};
    527				};
    528			};
    529
    530			sic: interrupt-controller@e000 {
    531				compatible = "snps,dw-apb-ictl";
    532				reg = <0xe000 0x400>;
    533				interrupt-controller;
    534				#interrupt-cells = <1>;
    535				interrupt-parent = <&gic>;
    536				interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    537			};
    538		};
    539	};
    540};