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

bcm283x.dtsi (12180B)


      1#include <dt-bindings/pinctrl/bcm2835.h>
      2#include <dt-bindings/clock/bcm2835.h>
      3#include <dt-bindings/clock/bcm2835-aux.h>
      4#include <dt-bindings/gpio/gpio.h>
      5#include <dt-bindings/interrupt-controller/irq.h>
      6#include <dt-bindings/soc/bcm2835-pm.h>
      7
      8/* firmware-provided startup stubs live here, where the secondary CPUs are
      9 * spinning.
     10 */
     11/memreserve/ 0x00000000 0x00001000;
     12
     13/* This include file covers the common peripherals and configuration between
     14 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
     15 * bcm2835.dtsi and bcm2836.dtsi.
     16 */
     17
     18/ {
     19	compatible = "brcm,bcm2835";
     20	model = "BCM2835";
     21	#address-cells = <1>;
     22	#size-cells = <1>;
     23
     24	aliases {
     25		serial0 = &uart0;
     26		serial1 = &uart1;
     27	};
     28
     29	chosen {
     30		stdout-path = "serial0:115200n8";
     31	};
     32
     33	rmem: reserved-memory {
     34		#address-cells = <1>;
     35		#size-cells = <1>;
     36		ranges;
     37
     38		cma: linux,cma {
     39			compatible = "shared-dma-pool";
     40			size = <0x4000000>; /* 64MB */
     41			reusable;
     42			linux,cma-default;
     43		};
     44	};
     45
     46	thermal-zones {
     47		cpu_thermal: cpu-thermal {
     48			polling-delay-passive = <0>;
     49			polling-delay = <1000>;
     50
     51			trips {
     52				cpu-crit {
     53					temperature	= <90000>;
     54					hysteresis	= <0>;
     55					type		= "critical";
     56				};
     57			};
     58
     59			cooling-maps {
     60			};
     61		};
     62	};
     63
     64	soc {
     65		compatible = "simple-bus";
     66		#address-cells = <1>;
     67		#size-cells = <1>;
     68
     69		system_timer: timer@7e003000 {
     70			compatible = "brcm,bcm2835-system-timer";
     71			reg = <0x7e003000 0x1000>;
     72			interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
     73			/* This could be a reference to BCM2835_CLOCK_TIMER,
     74			 * but we don't have the driver using the common clock
     75			 * support yet.
     76			 */
     77			clock-frequency = <1000000>;
     78		};
     79
     80		txp: txp@7e004000 {
     81			compatible = "brcm,bcm2835-txp";
     82			reg = <0x7e004000 0x20>;
     83			interrupts = <1 11>;
     84		};
     85
     86		clocks: cprman@7e101000 {
     87			compatible = "brcm,bcm2835-cprman";
     88			#clock-cells = <1>;
     89			reg = <0x7e101000 0x2000>;
     90
     91			/* CPRMAN derives almost everything from the
     92			 * platform's oscillator.  However, the DSI
     93			 * pixel clocks come from the DSI analog PHY.
     94			 */
     95			clocks = <&clk_osc>,
     96				<&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
     97				<&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
     98		};
     99
    100		mailbox: mailbox@7e00b880 {
    101			compatible = "brcm,bcm2835-mbox";
    102			reg = <0x7e00b880 0x40>;
    103			interrupts = <0 1>;
    104			#mbox-cells = <0>;
    105		};
    106
    107		gpio: gpio@7e200000 {
    108			compatible = "brcm,bcm2835-gpio";
    109			reg = <0x7e200000 0xb4>;
    110			/*
    111			 * The GPIO IP block is designed for 3 banks of GPIOs.
    112			 * Each bank has a GPIO interrupt for itself.
    113			 * There is an overall "any bank" interrupt.
    114			 * In order, these are GIC interrupts 17, 18, 19, 20.
    115			 * Since the BCM2835 only has 2 banks, the 2nd bank
    116			 * interrupt output appears to be mirrored onto the
    117			 * 3rd bank's interrupt signal.
    118			 * So, a bank0 interrupt shows up on 17, 20, and
    119			 * a bank1 interrupt shows up on 18, 19, 20!
    120			 */
    121			interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
    122
    123			gpio-controller;
    124			#gpio-cells = <2>;
    125
    126			interrupt-controller;
    127			#interrupt-cells = <2>;
    128
    129			gpio-ranges = <&gpio 0 0 54>;
    130
    131			/* Defines common pin muxing groups
    132			 *
    133			 * While each pin can have its mux selected
    134			 * for various functions individually, some
    135			 * groups only make sense to switch to a
    136			 * particular function together.
    137			 */
    138			dpi_gpio0: dpi_gpio0 {
    139				brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
    140					     12 13 14 15 16 17 18 19
    141					     20 21 22 23 24 25 26 27>;
    142				brcm,function = <BCM2835_FSEL_ALT2>;
    143			};
    144			emmc_gpio22: emmc_gpio22 {
    145				brcm,pins = <22 23 24 25 26 27>;
    146				brcm,function = <BCM2835_FSEL_ALT3>;
    147			};
    148			emmc_gpio34: emmc_gpio34 {
    149				brcm,pins = <34 35 36 37 38 39>;
    150				brcm,function = <BCM2835_FSEL_ALT3>;
    151				brcm,pull = <BCM2835_PUD_OFF
    152					     BCM2835_PUD_UP
    153					     BCM2835_PUD_UP
    154					     BCM2835_PUD_UP
    155					     BCM2835_PUD_UP
    156					     BCM2835_PUD_UP>;
    157			};
    158			emmc_gpio48: emmc_gpio48 {
    159				brcm,pins = <48 49 50 51 52 53>;
    160				brcm,function = <BCM2835_FSEL_ALT3>;
    161			};
    162
    163			gpclk0_gpio4: gpclk0_gpio4 {
    164				brcm,pins = <4>;
    165				brcm,function = <BCM2835_FSEL_ALT0>;
    166			};
    167			gpclk1_gpio5: gpclk1_gpio5 {
    168				brcm,pins = <5>;
    169				brcm,function = <BCM2835_FSEL_ALT0>;
    170			};
    171			gpclk1_gpio42: gpclk1_gpio42 {
    172				brcm,pins = <42>;
    173				brcm,function = <BCM2835_FSEL_ALT0>;
    174			};
    175			gpclk1_gpio44: gpclk1_gpio44 {
    176				brcm,pins = <44>;
    177				brcm,function = <BCM2835_FSEL_ALT0>;
    178			};
    179			gpclk2_gpio6: gpclk2_gpio6 {
    180				brcm,pins = <6>;
    181				brcm,function = <BCM2835_FSEL_ALT0>;
    182			};
    183			gpclk2_gpio43: gpclk2_gpio43 {
    184				brcm,pins = <43>;
    185				brcm,function = <BCM2835_FSEL_ALT0>;
    186				brcm,pull = <BCM2835_PUD_OFF>;
    187			};
    188
    189			i2c0_gpio0: i2c0_gpio0 {
    190				brcm,pins = <0 1>;
    191				brcm,function = <BCM2835_FSEL_ALT0>;
    192			};
    193			i2c0_gpio28: i2c0_gpio28 {
    194				brcm,pins = <28 29>;
    195				brcm,function = <BCM2835_FSEL_ALT0>;
    196			};
    197			i2c0_gpio44: i2c0_gpio44 {
    198				brcm,pins = <44 45>;
    199				brcm,function = <BCM2835_FSEL_ALT1>;
    200			};
    201			i2c1_gpio2: i2c1_gpio2 {
    202				brcm,pins = <2 3>;
    203				brcm,function = <BCM2835_FSEL_ALT0>;
    204			};
    205			i2c1_gpio44: i2c1_gpio44 {
    206				brcm,pins = <44 45>;
    207				brcm,function = <BCM2835_FSEL_ALT2>;
    208			};
    209
    210			jtag_gpio22: jtag_gpio22 {
    211				brcm,pins = <22 23 24 25 26 27>;
    212				brcm,function = <BCM2835_FSEL_ALT4>;
    213			};
    214
    215			pcm_gpio18: pcm_gpio18 {
    216				brcm,pins = <18 19 20 21>;
    217				brcm,function = <BCM2835_FSEL_ALT0>;
    218			};
    219			pcm_gpio28: pcm_gpio28 {
    220				brcm,pins = <28 29 30 31>;
    221				brcm,function = <BCM2835_FSEL_ALT2>;
    222			};
    223
    224			sdhost_gpio48: sdhost_gpio48 {
    225				brcm,pins = <48 49 50 51 52 53>;
    226				brcm,function = <BCM2835_FSEL_ALT0>;
    227			};
    228
    229			spi0_gpio7: spi0_gpio7 {
    230				brcm,pins = <7 8 9 10 11>;
    231				brcm,function = <BCM2835_FSEL_ALT0>;
    232			};
    233			spi0_gpio35: spi0_gpio35 {
    234				brcm,pins = <35 36 37 38 39>;
    235				brcm,function = <BCM2835_FSEL_ALT0>;
    236			};
    237			spi1_gpio16: spi1_gpio16 {
    238				brcm,pins = <16 17 18 19 20 21>;
    239				brcm,function = <BCM2835_FSEL_ALT4>;
    240			};
    241			spi2_gpio40: spi2_gpio40 {
    242				brcm,pins = <40 41 42 43 44 45>;
    243				brcm,function = <BCM2835_FSEL_ALT4>;
    244			};
    245
    246			uart0_gpio14: uart0_gpio14 {
    247				brcm,pins = <14 15>;
    248				brcm,function = <BCM2835_FSEL_ALT0>;
    249			};
    250			/* Separate from the uart0_gpio14 group
    251			 * because it conflicts with spi1_gpio16, and
    252			 * people often run uart0 on the two pins
    253			 * without flow control.
    254			 */
    255			uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
    256				brcm,pins = <16 17>;
    257				brcm,function = <BCM2835_FSEL_ALT3>;
    258			};
    259			uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
    260				brcm,pins = <30 31>;
    261				brcm,function = <BCM2835_FSEL_ALT3>;
    262				brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
    263			};
    264			uart0_gpio32: uart0_gpio32 {
    265				brcm,pins = <32 33>;
    266				brcm,function = <BCM2835_FSEL_ALT3>;
    267				brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>;
    268			};
    269			uart0_gpio36: uart0_gpio36 {
    270				brcm,pins = <36 37>;
    271				brcm,function = <BCM2835_FSEL_ALT2>;
    272			};
    273			uart0_ctsrts_gpio38: uart0_ctsrts_gpio38 {
    274				brcm,pins = <38 39>;
    275				brcm,function = <BCM2835_FSEL_ALT2>;
    276			};
    277
    278			uart1_gpio14: uart1_gpio14 {
    279				brcm,pins = <14 15>;
    280				brcm,function = <BCM2835_FSEL_ALT5>;
    281			};
    282			uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 {
    283				brcm,pins = <16 17>;
    284				brcm,function = <BCM2835_FSEL_ALT5>;
    285			};
    286			uart1_gpio32: uart1_gpio32 {
    287				brcm,pins = <32 33>;
    288				brcm,function = <BCM2835_FSEL_ALT5>;
    289			};
    290			uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 {
    291				brcm,pins = <30 31>;
    292				brcm,function = <BCM2835_FSEL_ALT5>;
    293			};
    294			uart1_gpio40: uart1_gpio40 {
    295				brcm,pins = <40 41>;
    296				brcm,function = <BCM2835_FSEL_ALT5>;
    297			};
    298			uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
    299				brcm,pins = <42 43>;
    300				brcm,function = <BCM2835_FSEL_ALT5>;
    301			};
    302		};
    303
    304		uart0: serial@7e201000 {
    305			compatible = "arm,pl011", "arm,primecell";
    306			reg = <0x7e201000 0x200>;
    307			interrupts = <2 25>;
    308			clocks = <&clocks BCM2835_CLOCK_UART>,
    309				 <&clocks BCM2835_CLOCK_VPU>;
    310			clock-names = "uartclk", "apb_pclk";
    311			arm,primecell-periphid = <0x00241011>;
    312		};
    313
    314		sdhost: mmc@7e202000 {
    315			compatible = "brcm,bcm2835-sdhost";
    316			reg = <0x7e202000 0x100>;
    317			interrupts = <2 24>;
    318			clocks = <&clocks BCM2835_CLOCK_VPU>;
    319			status = "disabled";
    320		};
    321
    322		i2s: i2s@7e203000 {
    323			compatible = "brcm,bcm2835-i2s";
    324			reg = <0x7e203000 0x24>;
    325			clocks = <&clocks BCM2835_CLOCK_PCM>;
    326			status = "disabled";
    327		};
    328
    329		spi: spi@7e204000 {
    330			compatible = "brcm,bcm2835-spi";
    331			reg = <0x7e204000 0x200>;
    332			interrupts = <2 22>;
    333			clocks = <&clocks BCM2835_CLOCK_VPU>;
    334			#address-cells = <1>;
    335			#size-cells = <0>;
    336			status = "disabled";
    337		};
    338
    339		i2c0: i2c@7e205000 {
    340			compatible = "brcm,bcm2835-i2c";
    341			reg = <0x7e205000 0x200>;
    342			interrupts = <2 21>;
    343			clocks = <&clocks BCM2835_CLOCK_VPU>;
    344			#address-cells = <1>;
    345			#size-cells = <0>;
    346			status = "disabled";
    347		};
    348
    349		dpi: dpi@7e208000 {
    350			compatible = "brcm,bcm2835-dpi";
    351			reg = <0x7e208000 0x8c>;
    352			clocks = <&clocks BCM2835_CLOCK_VPU>,
    353				 <&clocks BCM2835_CLOCK_DPI>;
    354			clock-names = "core", "pixel";
    355			#address-cells = <1>;
    356			#size-cells = <0>;
    357			status = "disabled";
    358		};
    359
    360		dsi0: dsi@7e209000 {
    361			compatible = "brcm,bcm2835-dsi0";
    362			reg = <0x7e209000 0x78>;
    363			interrupts = <2 4>;
    364			#address-cells = <1>;
    365			#size-cells = <0>;
    366			#clock-cells = <1>;
    367
    368			clocks = <&clocks BCM2835_PLLA_DSI0>,
    369				 <&clocks BCM2835_CLOCK_DSI0E>,
    370				 <&clocks BCM2835_CLOCK_DSI0P>;
    371			clock-names = "phy", "escape", "pixel";
    372
    373			clock-output-names = "dsi0_byte",
    374					     "dsi0_ddr2",
    375					     "dsi0_ddr";
    376
    377			status = "disabled";
    378		};
    379
    380		aux: aux@7e215000 {
    381			compatible = "brcm,bcm2835-aux";
    382			#clock-cells = <1>;
    383			reg = <0x7e215000 0x8>;
    384			clocks = <&clocks BCM2835_CLOCK_VPU>;
    385		};
    386
    387		uart1: serial@7e215040 {
    388			compatible = "brcm,bcm2835-aux-uart";
    389			reg = <0x7e215040 0x40>;
    390			interrupts = <1 29>;
    391			clocks = <&aux BCM2835_AUX_CLOCK_UART>;
    392			status = "disabled";
    393		};
    394
    395		spi1: spi@7e215080 {
    396			compatible = "brcm,bcm2835-aux-spi";
    397			reg = <0x7e215080 0x40>;
    398			interrupts = <1 29>;
    399			clocks = <&aux BCM2835_AUX_CLOCK_SPI1>;
    400			#address-cells = <1>;
    401			#size-cells = <0>;
    402			status = "disabled";
    403		};
    404
    405		spi2: spi@7e2150c0 {
    406			compatible = "brcm,bcm2835-aux-spi";
    407			reg = <0x7e2150c0 0x40>;
    408			interrupts = <1 29>;
    409			clocks = <&aux BCM2835_AUX_CLOCK_SPI2>;
    410			#address-cells = <1>;
    411			#size-cells = <0>;
    412			status = "disabled";
    413		};
    414
    415		pwm: pwm@7e20c000 {
    416			compatible = "brcm,bcm2835-pwm";
    417			reg = <0x7e20c000 0x28>;
    418			clocks = <&clocks BCM2835_CLOCK_PWM>;
    419			assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
    420			assigned-clock-rates = <10000000>;
    421			#pwm-cells = <2>;
    422			status = "disabled";
    423		};
    424
    425		sdhci: mmc@7e300000 {
    426			compatible = "brcm,bcm2835-sdhci";
    427			reg = <0x7e300000 0x100>;
    428			interrupts = <2 30>;
    429			clocks = <&clocks BCM2835_CLOCK_EMMC>;
    430			status = "disabled";
    431		};
    432
    433		hvs@7e400000 {
    434			compatible = "brcm,bcm2835-hvs";
    435			reg = <0x7e400000 0x6000>;
    436			interrupts = <2 1>;
    437		};
    438
    439		dsi1: dsi@7e700000 {
    440			compatible = "brcm,bcm2835-dsi1";
    441			reg = <0x7e700000 0x8c>;
    442			interrupts = <2 12>;
    443			#address-cells = <1>;
    444			#size-cells = <0>;
    445			#clock-cells = <1>;
    446
    447			clocks = <&clocks BCM2835_PLLD_DSI1>,
    448				 <&clocks BCM2835_CLOCK_DSI1E>,
    449				 <&clocks BCM2835_CLOCK_DSI1P>;
    450			clock-names = "phy", "escape", "pixel";
    451
    452			clock-output-names = "dsi1_byte",
    453					     "dsi1_ddr2",
    454					     "dsi1_ddr";
    455
    456			status = "disabled";
    457		};
    458
    459		i2c1: i2c@7e804000 {
    460			compatible = "brcm,bcm2835-i2c";
    461			reg = <0x7e804000 0x1000>;
    462			interrupts = <2 21>;
    463			clocks = <&clocks BCM2835_CLOCK_VPU>;
    464			#address-cells = <1>;
    465			#size-cells = <0>;
    466			status = "disabled";
    467		};
    468
    469		usb: usb@7e980000 {
    470			compatible = "brcm,bcm2835-usb";
    471			reg = <0x7e980000 0x10000>;
    472			interrupts = <1 9>;
    473			#address-cells = <1>;
    474			#size-cells = <0>;
    475			clocks = <&clk_usb>;
    476			clock-names = "otg";
    477			phys = <&usbphy>;
    478			phy-names = "usb2-phy";
    479		};
    480	};
    481
    482	clocks {
    483		/* The oscillator is the root of the clock tree. */
    484		clk_osc: clk-osc {
    485			compatible = "fixed-clock";
    486			#clock-cells = <0>;
    487			clock-output-names = "osc";
    488			clock-frequency = <19200000>;
    489		};
    490
    491		clk_usb: clk-usb {
    492			compatible = "fixed-clock";
    493			#clock-cells = <0>;
    494			clock-output-names = "otg";
    495			clock-frequency = <480000000>;
    496		};
    497	};
    498
    499	usbphy: phy {
    500		compatible = "usb-nop-xceiv";
    501		#phy-cells = <0>;
    502	};
    503};