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

arm-realview-pbx.dtsi (14073B)


      1/*
      2 * Copyright 2016 Linaro Ltd
      3 *
      4 * Permission is hereby granted, free of charge, to any person obtaining a copy
      5 * of this software and associated documentation files (the "Software"), to deal
      6 * in the Software without restriction, including without limitation the rights
      7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      8 * copies of the Software, and to permit persons to whom the Software is
      9 * furnished to do so, subject to the following conditions:
     10 *
     11 * The above copyright notice and this permission notice shall be included in
     12 * all copies or substantial portions of the Software.
     13 *
     14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
     17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     20 * THE SOFTWARE.
     21 */
     22
     23#include <dt-bindings/interrupt-controller/irq.h>
     24#include <dt-bindings/gpio/gpio.h>
     25
     26/ {
     27	#address-cells = <1>;
     28	#size-cells = <1>;
     29	compatible = "arm,realview-pbx";
     30
     31	chosen { };
     32
     33	aliases {
     34		serial0 = &serial0;
     35		serial1 = &serial1;
     36		serial2 = &serial2;
     37		serial3 = &serial3;
     38		i2c0 = &i2c0;
     39		i2c1 = &i2c1;
     40	};
     41
     42	memory {
     43		device_type = "memory";
     44		/* 128 MiB memory @ 0x0 */
     45		reg = <0x00000000 0x08000000>;
     46	};
     47
     48	/* The voltage to the MMC card is hardwired at 3.3V */
     49	vmmc: regulator-vmmc {
     50		compatible = "regulator-fixed";
     51		regulator-name = "vmmc";
     52		regulator-min-microvolt = <3300000>;
     53		regulator-max-microvolt = <3300000>;
     54		regulator-boot-on;
     55        };
     56
     57	veth: regulator-veth {
     58		compatible = "regulator-fixed";
     59		regulator-name = "veth";
     60		regulator-min-microvolt = <3300000>;
     61		regulator-max-microvolt = <3300000>;
     62		regulator-boot-on;
     63	};
     64
     65	xtal24mhz: xtal24mhz@24M {
     66		#clock-cells = <0>;
     67		compatible = "fixed-clock";
     68		clock-frequency = <24000000>;
     69	};
     70
     71	refclk32khz: refclk32khz {
     72		#clock-cells = <0>;
     73		compatible = "fixed-clock";
     74		clock-frequency = <32768>;
     75	};
     76
     77	timclk: timclk@1M {
     78		#clock-cells = <0>;
     79		compatible = "fixed-factor-clock";
     80		clock-div = <24>;
     81		clock-mult = <1>;
     82		clocks = <&xtal24mhz>;
     83	};
     84
     85	mclk: mclk@24M {
     86		#clock-cells = <0>;
     87		compatible = "fixed-factor-clock";
     88		clock-div = <1>;
     89		clock-mult = <1>;
     90		clocks = <&xtal24mhz>;
     91	};
     92
     93	kmiclk: kmiclk@24M {
     94		#clock-cells = <0>;
     95		compatible = "fixed-factor-clock";
     96		clock-div = <1>;
     97		clock-mult = <1>;
     98		clocks = <&xtal24mhz>;
     99	};
    100
    101	sspclk: sspclk@24M {
    102		#clock-cells = <0>;
    103		compatible = "fixed-factor-clock";
    104		clock-div = <1>;
    105		clock-mult = <1>;
    106		clocks = <&xtal24mhz>;
    107	};
    108
    109	uartclk: uartclk@24M {
    110		#clock-cells = <0>;
    111		compatible = "fixed-factor-clock";
    112		clock-div = <1>;
    113		clock-mult = <1>;
    114		clocks = <&xtal24mhz>;
    115	};
    116
    117	wdogclk: wdogclk@24M {
    118		#clock-cells = <0>;
    119		compatible = "fixed-factor-clock";
    120		clock-div = <1>;
    121		clock-mult = <1>;
    122		clocks = <&xtal24mhz>;
    123	};
    124
    125	/* FIXME: this actually hangs off the PLL clocks */
    126	pclk: pclk@0 {
    127		#clock-cells = <0>;
    128		compatible = "fixed-clock";
    129		clock-frequency = <0>;
    130	};
    131
    132	flash0@40000000 {
    133		/* 2 * 32MiB NOR Flash memory */
    134		compatible = "arm,versatile-flash", "cfi-flash";
    135		reg = <0x40000000 0x04000000>;
    136		bank-width = <4>;
    137		partitions {
    138			compatible = "arm,arm-firmware-suite";
    139		};
    140	};
    141
    142	flash1@44000000 {
    143		/* 2 * 32MiB NOR Flash memory */
    144		compatible = "arm,versatile-flash", "cfi-flash";
    145		reg = <0x44000000 0x04000000>;
    146		bank-width = <4>;
    147		partitions {
    148			compatible = "arm,arm-firmware-suite";
    149		};
    150	};
    151
    152	/* SMSC 9118 ethernet with PHY and EEPROM */
    153	ethernet: ethernet@4e000000 {
    154		compatible = "smsc,lan9118", "smsc,lan9115";
    155		reg = <0x4e000000 0x10000>;
    156		phy-mode = "mii";
    157		reg-io-width = <4>;
    158		smsc,irq-active-high;
    159		smsc,irq-push-pull;
    160		vdd33a-supply = <&veth>;
    161		vddvario-supply = <&veth>;
    162	};
    163
    164	usb: usb@4f000000 {
    165		compatible = "nxp,usb-isp1761";
    166		reg = <0x4f000000 0x20000>;
    167		dr_mode = "peripheral";
    168	};
    169
    170	bridge {
    171		compatible = "ti,ths8134a", "ti,ths8134";
    172		#address-cells = <1>;
    173		#size-cells = <0>;
    174
    175		ports {
    176			#address-cells = <1>;
    177			#size-cells = <0>;
    178
    179			port@0 {
    180				reg = <0>;
    181
    182				vga_bridge_in: endpoint {
    183					remote-endpoint = <&clcd_pads>;
    184				};
    185			};
    186
    187			port@1 {
    188				reg = <1>;
    189
    190				vga_bridge_out: endpoint {
    191					remote-endpoint = <&vga_con_in>;
    192				};
    193			};
    194		};
    195	};
    196
    197	vga {
    198		/*
    199		 * This DDC I2C is connected directly to the DVI portions
    200		 * of the connector, so it's not really working when the
    201		 * monitor is connected to the VGA connector.
    202		 */
    203		compatible = "vga-connector";
    204		ddc-i2c-bus = <&i2c1>;
    205
    206		port {
    207			vga_con_in: endpoint {
    208				remote-endpoint = <&vga_bridge_out>;
    209			};
    210		};
    211	};
    212
    213	soc: soc {
    214		compatible = "arm,realview-pbx-soc", "simple-bus";
    215		#address-cells = <1>;
    216		#size-cells = <1>;
    217		regmap = <&syscon>;
    218		ranges;
    219
    220		syscon: syscon@10000000 {
    221			compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd";
    222			reg = <0x10000000 0x1000>;
    223			ranges = <0x0 0x10000000 0x1000>;
    224			#address-cells = <1>;
    225			#size-cells = <1>;
    226
    227			led@8,0 {
    228				compatible = "register-bit-led";
    229				reg = <0x08 0x04>;
    230				offset = <0x08>;
    231				mask = <0x01>;
    232				label = "versatile:0";
    233				linux,default-trigger = "heartbeat";
    234				default-state = "on";
    235			};
    236			led@8,1 {
    237				compatible = "register-bit-led";
    238				reg = <0x08 0x04>;
    239				offset = <0x08>;
    240				mask = <0x02>;
    241				label = "versatile:1";
    242				linux,default-trigger = "mmc0";
    243				default-state = "off";
    244			};
    245			led@8,2 {
    246				compatible = "register-bit-led";
    247				reg = <0x08 0x04>;
    248				offset = <0x08>;
    249				mask = <0x04>;
    250				label = "versatile:2";
    251				linux,default-trigger = "cpu0";
    252				default-state = "off";
    253			};
    254			led@8,3 {
    255				compatible = "register-bit-led";
    256				reg = <0x08 0x04>;
    257				offset = <0x08>;
    258				mask = <0x08>;
    259				label = "versatile:3";
    260				default-state = "off";
    261			};
    262			led@8,4 {
    263				compatible = "register-bit-led";
    264				reg = <0x08 0x04>;
    265				offset = <0x08>;
    266				mask = <0x10>;
    267				label = "versatile:4";
    268				default-state = "off";
    269			};
    270			led@8,5 {
    271				compatible = "register-bit-led";
    272				reg = <0x08 0x04>;
    273				offset = <0x08>;
    274				mask = <0x20>;
    275				label = "versatile:5";
    276				default-state = "off";
    277			};
    278			led@8,6 {
    279				compatible = "register-bit-led";
    280				reg = <0x08 0x04>;
    281				offset = <0x08>;
    282				mask = <0x40>;
    283				label = "versatile:6";
    284				default-state = "off";
    285			};
    286			led@8,7 {
    287				compatible = "register-bit-led";
    288				reg = <0x08 0x04>;
    289				offset = <0x08>;
    290				mask = <0x80>;
    291				label = "versatile:7";
    292				default-state = "off";
    293			};
    294			oscclk0: clock-controller@c {
    295				compatible = "arm,syscon-icst307";
    296				reg = <0x0c 0x04>;
    297				#clock-cells = <0>;
    298				lock-offset = <0x20>;
    299				vco-offset = <0x0C>;
    300				clocks = <&xtal24mhz>;
    301			};
    302			oscclk1: clock-controller@10 {
    303				compatible = "arm,syscon-icst307";
    304				reg = <0x10 0x04>;
    305				#clock-cells = <0>;
    306				lock-offset = <0x20>;
    307				vco-offset = <0x10>;
    308				clocks = <&xtal24mhz>;
    309			};
    310			oscclk2: clock-controller@14 {
    311				compatible = "arm,syscon-icst307";
    312				reg = <0x14 0x04>;
    313				#clock-cells = <0>;
    314				lock-offset = <0x20>;
    315				vco-offset = <0x14>;
    316				clocks = <&xtal24mhz>;
    317			};
    318			oscclk3: clock-controller@18 {
    319				compatible = "arm,syscon-icst307";
    320				reg = <0x18 0x04>;
    321				#clock-cells = <0>;
    322				lock-offset = <0x20>;
    323				vco-offset = <0x18>;
    324				clocks = <&xtal24mhz>;
    325			};
    326			oscclk4: clock-controller@1c {
    327				compatible = "arm,syscon-icst307";
    328				reg = <0x1c 0x04>;
    329				#clock-cells = <0>;
    330				lock-offset = <0x20>;
    331				vco-offset = <0x1c>;
    332				clocks = <&xtal24mhz>;
    333			};
    334		};
    335
    336		sp810_syscon0: sysctl@10001000 {
    337			compatible = "arm,sp810", "arm,primecell";
    338			reg = <0x10001000 0x1000>;
    339			clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
    340			clock-names = "refclk", "timclk", "apb_pclk";
    341			#clock-cells = <1>;
    342			clock-output-names = "timerclk0",
    343					     "timerclk1",
    344					     "timerclk2",
    345					     "timerclk3";
    346			assigned-clocks = <&sp810_syscon0 0>,
    347					  <&sp810_syscon0 1>,
    348					  <&sp810_syscon0 2>,
    349					  <&sp810_syscon0 3>;
    350			assigned-clock-parents = <&timclk>,
    351					       <&timclk>,
    352					       <&timclk>,
    353					       <&timclk>;
    354		};
    355
    356		i2c0: i2c@10002000 {
    357			#address-cells = <1>;
    358			#size-cells = <0>;
    359			compatible = "arm,versatile-i2c";
    360			reg = <0x10002000 0x1000>;
    361
    362			rtc@68 {
    363				compatible = "dallas,ds1338";
    364				reg = <0x68>;
    365			};
    366		};
    367
    368		serial0: serial@10009000 {
    369			compatible = "arm,pl011", "arm,primecell";
    370			reg = <0x10009000 0x1000>;
    371			clocks = <&uartclk>, <&pclk>;
    372			clock-names = "uartclk", "apb_pclk";
    373		};
    374
    375		serial1: serial@1000a000 {
    376			compatible = "arm,pl011", "arm,primecell";
    377			reg = <0x1000a000 0x1000>;
    378			clocks = <&uartclk>, <&pclk>;
    379			clock-names = "uartclk", "apb_pclk";
    380		};
    381
    382		serial2: serial@1000b000 {
    383			compatible = "arm,pl011", "arm,primecell";
    384			reg = <0x1000b000 0x1000>;
    385			clocks = <&uartclk>, <&pclk>;
    386			clock-names = "uartclk", "apb_pclk";
    387		};
    388
    389		ssp: spi@1000d000 {
    390			compatible = "arm,pl022", "arm,primecell";
    391			reg = <0x1000d000 0x1000>;
    392			clocks = <&sspclk>, <&pclk>;
    393			clock-names = "SSPCLK", "apb_pclk";
    394		};
    395
    396		wdog0: watchdog@1000f000 {
    397			compatible = "arm,sp805", "arm,primecell";
    398			reg = <0x1000f000 0x1000>;
    399			clocks = <&wdogclk>, <&pclk>;
    400			clock-names = "wdog_clk", "apb_pclk";
    401			status = "disabled";
    402		};
    403
    404		wdog1: watchdog@10010000 {
    405			compatible = "arm,sp805", "arm,primecell";
    406			reg = <0x10010000 0x1000>;
    407			clocks = <&wdogclk>, <&pclk>;
    408			clock-names = "wdog_clk", "apb_pclk";
    409			status = "disabled";
    410		};
    411
    412		timer01: timer@10011000 {
    413			compatible = "arm,sp804", "arm,primecell";
    414			reg = <0x10011000 0x1000>;
    415			clocks = <&sp810_syscon0 0>,
    416			         <&sp810_syscon0 1>,
    417				 <&pclk>;
    418			clock-names = "timerclk0",
    419				    "timerclk1",
    420				    "apb_pclk";
    421		};
    422
    423		timer23: timer@10012000 {
    424			compatible = "arm,sp804", "arm,primecell";
    425			reg = <0x10012000 0x1000>;
    426			clocks = <&sp810_syscon0 2>,
    427			         <&sp810_syscon0 3>,
    428				 <&pclk>;
    429			clock-names = "timerclk2",
    430				    "timerclk3",
    431				    "apb_pclk";
    432		};
    433
    434		gpio0: gpio@10013000 {
    435			compatible = "arm,pl061", "arm,primecell";
    436			reg = <0x10013000 0x1000>;
    437			gpio-controller;
    438			#gpio-cells = <2>;
    439			interrupt-controller;
    440			#interrupt-cells = <2>;
    441			clocks = <&pclk>;
    442			clock-names = "apb_pclk";
    443		};
    444
    445		gpio1: gpio@10014000 {
    446			compatible = "arm,pl061", "arm,primecell";
    447			reg = <0x10014000 0x1000>;
    448			gpio-controller;
    449			#gpio-cells = <2>;
    450			interrupt-controller;
    451			#interrupt-cells = <2>;
    452			clocks = <&pclk>;
    453			clock-names = "apb_pclk";
    454		};
    455
    456		gpio2: gpio@10015000 {
    457			compatible = "arm,pl061", "arm,primecell";
    458			reg = <0x10015000 0x1000>;
    459			gpio-controller;
    460			#gpio-cells = <2>;
    461			interrupt-controller;
    462			#interrupt-cells = <2>;
    463			clocks = <&pclk>;
    464			clock-names = "apb_pclk";
    465		};
    466
    467		i2c1: i2c@10016000 {
    468			#address-cells = <1>;
    469			#size-cells = <0>;
    470			compatible = "arm,versatile-i2c";
    471			reg = <0x10016000 0x1000>;
    472		};
    473
    474		rtc: rtc@10017000 {
    475			compatible = "arm,pl031", "arm,primecell";
    476			reg = <0x10017000 0x1000>;
    477			clocks = <&pclk>;
    478			clock-names = "apb_pclk";
    479		};
    480
    481		timer45: timer@10018000 {
    482			compatible = "arm,sp804", "arm,primecell";
    483			reg = <0x10018000 0x1000>;
    484			clocks = <&timclk>, <&timclk>, <&pclk>;
    485			clock-names = "timerclk4", "timerclk5", "apb_pclk";
    486		};
    487
    488		timer67: timer@10019000 {
    489			compatible = "arm,sp804", "arm,primecell";
    490			reg = <0x10019000 0x1000>;
    491			clocks = <&timclk>, <&timclk>, <&pclk>;
    492			clock-names = "timerclk6", "timerclk7", "apb_pclk";
    493		};
    494
    495		sp810_syscon1: sysctl@1001a000 {
    496			compatible = "arm,sp810", "arm,primecell";
    497			reg = <0x1001a000 0x1000>;
    498			clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
    499			clock-names = "refclk", "timclk", "apb_pclk";
    500			#clock-cells = <1>;
    501			clock-output-names = "timerclk4",
    502					     "timerclk5",
    503					     "timerclk6",
    504					     "timerclk7";
    505			assigned-clocks = <&sp810_syscon1 0>,
    506					  <&sp810_syscon1 1>,
    507					  <&sp810_syscon1 2>,
    508					  <&sp810_syscon1 3>;
    509			assigned-clock-parents = <&timclk>,
    510					       <&timclk>,
    511					       <&timclk>,
    512					       <&timclk>;
    513		};
    514	};
    515
    516
    517	/* These peripherals are inside the FPGA */
    518	fpga {
    519		#address-cells = <1>;
    520		#size-cells = <1>;
    521		compatible = "simple-bus";
    522		ranges;
    523
    524		aaci: aaci@10004000 {
    525			compatible = "arm,pl041", "arm,primecell";
    526			reg = <0x10004000 0x1000>;
    527			clocks = <&pclk>;
    528			clock-names = "apb_pclk";
    529		};
    530
    531		mmc: mmcsd@10005000 {
    532			compatible = "arm,pl18x", "arm,primecell";
    533			reg = <0x10005000 0x1000>;
    534
    535			/* Due to frequent FIFO overruns, use just 500 kHz */
    536			max-frequency = <500000>;
    537			bus-width = <4>;
    538			cap-sd-highspeed;
    539			cap-mmc-highspeed;
    540			clocks = <&mclk>, <&pclk>;
    541			clock-names = "mclk", "apb_pclk";
    542			vmmc-supply = <&vmmc>;
    543			cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
    544			wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
    545		};
    546
    547		kmi0: kmi@10006000 {
    548			compatible = "arm,pl050", "arm,primecell";
    549			reg = <0x10006000 0x1000>;
    550			clocks = <&kmiclk>, <&pclk>;
    551			clock-names = "KMIREFCLK", "apb_pclk";
    552		};
    553
    554		kmi1: kmi@10007000 {
    555			compatible = "arm,pl050", "arm,primecell";
    556			reg = <0x10007000 0x1000>;
    557			clocks = <&kmiclk>, <&pclk>;
    558			clock-names = "KMIREFCLK", "apb_pclk";
    559		};
    560
    561		serial3: serial@1000c000 {
    562			compatible = "arm,pl011", "arm,primecell";
    563			reg = <0x1000c000 0x1000>;
    564			clocks = <&uartclk>, <&pclk>;
    565			clock-names = "uartclk", "apb_pclk";
    566		};
    567	};
    568
    569	/* These peripherals are inside the NEC ISSP */
    570	issp {
    571		#address-cells = <1>;
    572		#size-cells = <1>;
    573		compatible = "simple-bus";
    574		ranges;
    575
    576		clcd: clcd@10020000 {
    577			compatible = "arm,pl111", "arm,primecell";
    578			reg = <0x10020000 0x1000>;
    579			interrupt-names = "combined";
    580			clocks = <&oscclk4>, <&pclk>;
    581			clock-names = "clcdclk", "apb_pclk";
    582			/* 1024x768 16bpp @65MHz works fine */
    583			max-memory-bandwidth = <95000000>;
    584
    585			port {
    586				clcd_pads: endpoint {
    587					remote-endpoint = <&vga_bridge_in>;
    588					arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
    589				};
    590			};
    591		};
    592	};
    593};