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

cp110-system-controller.txt (10905B)


      1Marvell Armada CP110 System Controller
      2======================================
      3
      4The CP110 is one of the two core HW blocks of the Marvell Armada 7K/8K
      5SoCs. It contains system controllers, which provide several registers
      6giving access to numerous features: clocks, pin-muxing and many other
      7SoC configuration items. This DT binding allows to describe these
      8system controllers.
      9
     10For the top level node:
     11 - compatible: must be: "syscon", "simple-mfd";
     12 - reg: register area of the CP110 system controller
     13
     14SYSTEM CONTROLLER 0
     15===================
     16
     17Clocks:
     18-------
     19
     20The Device Tree node representing this System Controller 0 provides a
     21number of clocks:
     22
     23 - a set of core clocks
     24 - a set of gatable clocks
     25
     26Those clocks can be referenced by other Device Tree nodes using two
     27cells:
     28 - The first cell must be 0 or 1. 0 for the core clocks and 1 for the
     29   gatable clocks.
     30 - The second cell identifies the particular core clock or gatable
     31   clocks.
     32
     33The following clocks are available:
     34 - Core clocks
     35   - 0 0	APLL
     36   - 0 1	PPv2 core
     37   - 0 2	EIP
     38   - 0 3	Core
     39   - 0 4	NAND core
     40   - 0 5	SDIO core
     41 - Gatable clocks
     42   - 1 0	Audio
     43   - 1 1	Comm Unit
     44   - 1 2	NAND
     45   - 1 3	PPv2
     46   - 1 4	SDIO
     47   - 1 5	MG Domain
     48   - 1 6	MG Core
     49   - 1 7	XOR1
     50   - 1 8	XOR0
     51   - 1 9	GOP DP
     52   - 1 11	PCIe x1 0
     53   - 1 12	PCIe x1 1
     54   - 1 13	PCIe x4
     55   - 1 14	PCIe / XOR
     56   - 1 15	SATA
     57   - 1 16	SATA USB
     58   - 1 17	Main
     59   - 1 18	SD/MMC/GOP
     60   - 1 21	Slow IO (SPI, NOR, BootROM, I2C, UART)
     61   - 1 22	USB3H0
     62   - 1 23	USB3H1
     63   - 1 24	USB3 Device
     64   - 1 25	EIP150
     65   - 1 26	EIP197
     66
     67Required properties:
     68
     69 - compatible: must be:
     70     "marvell,cp110-clock"
     71 - #clock-cells: must be set to 2
     72
     73Pinctrl:
     74--------
     75
     76For common binding part and usage, refer to the file
     77Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt.
     78
     79Required properties:
     80
     81- compatible: "marvell,armada-7k-pinctrl", "marvell,armada-8k-cpm-pinctrl",
     82  "marvell,armada-8k-cps-pinctrl" or "marvell,cp115-standalone-pinctrl"
     83  depending on the specific variant of the SoC being used.
     84
     85Available mpp pins/groups and functions:
     86Note: brackets (x) are not part of the mpp name for marvell,function and given
     87only for more detailed description in this document.
     88
     89name	pins	functions
     90================================================================================
     91mpp0	0	gpio, dev(ale1), au(i2smclk), ge0(rxd3), tdm(pclk), ptp(pulse), mss_i2c(sda), uart0(rxd), sata0(present_act), ge(mdio)
     92mpp1	1	gpio, dev(ale0), au(i2sdo_spdifo), ge0(rxd2), tdm(drx), ptp(clk), mss_i2c(sck), uart0(txd), sata1(present_act), ge(mdc)
     93mpp2	2	gpio, dev(ad15), au(i2sextclk), ge0(rxd1), tdm(dtx), mss_uart(rxd), ptp(pclk_out), i2c1(sck), uart1(rxd), sata0(present_act), xg(mdc)
     94mpp3	3	gpio, dev(ad14), au(i2slrclk), ge0(rxd0), tdm(fsync), mss_uart(txd), pcie(rstoutn), i2c1(sda), uart1(txd), sata1(present_act), xg(mdio)
     95mpp4	4	gpio, dev(ad13), au(i2sbclk), ge0(rxctl), tdm(rstn), mss_uart(rxd), uart1(cts), pcie0(clkreq), uart3(rxd), ge(mdc)
     96mpp5	5	gpio, dev(ad12), au(i2sdi), ge0(rxclk), tdm(intn), mss_uart(txd), uart1(rts), pcie1(clkreq), uart3(txd), ge(mdio)
     97mpp6	6	gpio, dev(ad11), ge0(txd3), spi0(csn2), au(i2sextclk), sata1(present_act), pcie2(clkreq), uart0(rxd), ptp(pulse)
     98mpp7	7	gpio, dev(ad10), ge0(txd2), spi0(csn1), spi1(csn1), sata0(present_act), led(data), uart0(txd), ptp(clk)
     99mpp8	8	gpio, dev(ad9), ge0(txd1), spi0(csn0), spi1(csn0), uart0(cts), led(stb), uart2(rxd), ptp(pclk_out), synce1(clk)
    100mpp9	9	gpio, dev(ad8), ge0(txd0), spi0(mosi), spi1(mosi), pcie(rstoutn), synce2(clk)
    101mpp10	10	gpio, dev(readyn), ge0(txctl), spi0(miso), spi1(miso), uart0(cts), sata1(present_act)
    102mpp11	11	gpio, dev(wen1), ge0(txclkout), spi0(clk), spi1(clk), uart0(rts), led(clk), uart2(txd), sata0(present_act)
    103mpp12	12	gpio, dev(clk_out), nf(rbn1), spi1(csn1), ge0(rxclk)
    104mpp13	13	gpio, dev(burstn), nf(rbn0), spi1(miso), ge0(rxctl), mss_spi(miso)
    105mpp14	14	gpio, dev(bootcsn), dev(csn0), spi1(csn0), spi0(csn3), au(i2sextclk), spi0(miso), sata0(present_act), mss_spi(csn)
    106mpp15	15	gpio, dev(ad7), spi1(mosi), spi0(mosi), mss_spi(mosi), ptp(pulse_cp2cp)
    107mpp16	16	gpio, dev(ad6), spi1(clk), mss_spi(clk)
    108mpp17	17	gpio, dev(ad5), ge0(txd3)
    109mpp18	18	gpio, dev(ad4), ge0(txd2), ptp(clk_cp2cp)
    110mpp19	19	gpio, dev(ad3), ge0(txd1), wakeup(out_cp2cp)
    111mpp20	20	gpio, dev(ad2), ge0(txd0)
    112mpp21	21	gpio, dev(ad1), ge0(txctl), sei(in_cp2cp)
    113mpp22	22	gpio, dev(ad0), ge0(txclkout), wakeup(in_cp2cp)
    114mpp23	23	gpio, dev(a1), au(i2smclk), link(rd_in_cp2cp)
    115mpp24	24	gpio, dev(a0), au(i2slrclk)
    116mpp25	25	gpio, dev(oen), au(i2sdo_spdifo)
    117mpp26	26	gpio, dev(wen0), au(i2sbclk)
    118mpp27	27	gpio, dev(csn0), spi1(miso), mss_gpio4, ge0(rxd3), spi0(csn4), ge(mdio), sata0(present_act), uart0(rts), rei(in_cp2cp)
    119mpp28	28	gpio, dev(csn1), spi1(csn0), mss_gpio5, ge0(rxd2), spi0(csn5), pcie2(clkreq), ptp(pulse), ge(mdc), sata1(present_act), uart0(cts), led(data)
    120mpp29	29	gpio, dev(csn2), spi1(mosi), mss_gpio6, ge0(rxd1), spi0(csn6), pcie1(clkreq), ptp(clk), mss_i2c(sda), sata0(present_act), uart0(rxd), led(stb)
    121mpp30	30	gpio, dev(csn3), spi1(clk), mss_gpio7, ge0(rxd0), spi0(csn7), pcie0(clkreq), ptp(pclk_out), mss_i2c(sck), sata1(present_act), uart0(txd), led(clk)
    122mpp31	31	gpio, dev(a2), mss_gpio4, pcie(rstoutn), ge(mdc)
    123mpp32	32	gpio, mii(col), mii(txerr), mss_spi(miso), tdm(drx), au(i2sextclk), au(i2sdi), ge(mdio), sdio(v18_en), pcie1(clkreq), mss_gpio0
    124mpp33	33	gpio, mii(txclk), sdio(pwr10), mss_spi(csn), tdm(fsync), au(i2smclk), sdio(bus_pwr), xg(mdio), pcie2(clkreq), mss_gpio1
    125mpp34	34	gpio, mii(rxerr), sdio(pwr11), mss_spi(mosi), tdm(dtx), au(i2slrclk), sdio(wr_protect), ge(mdc), pcie0(clkreq), mss_gpio2
    126mpp35	35	gpio, sata1(present_act), i2c1(sda), mss_spi(clk), tdm(pclk), au(i2sdo_spdifo), sdio(card_detect), xg(mdio), ge(mdio), pcie(rstoutn), mss_gpio3
    127mpp36	36	gpio, synce2(clk), i2c1(sck), ptp(clk), synce1(clk), au(i2sbclk), sata0(present_act), xg(mdc), ge(mdc), pcie2(clkreq), mss_gpio5
    128mpp37	37	gpio, uart2(rxd), i2c0(sck), ptp(pclk_out), tdm(intn), mss_i2c(sck), sata1(present_act), ge(mdc), xg(mdc), pcie1(clkreq), mss_gpio6, link(rd_out_cp2cp)
    129mpp38	38	gpio, uart2(txd), i2c0(sda), ptp(pulse), tdm(rstn), mss_i2c(sda), sata0(present_act), ge(mdio), xg(mdio), au(i2sextclk), mss_gpio7, ptp(pulse_cp2cp)
    130mpp39	39	gpio, sdio(wr_protect), au(i2sbclk), ptp(clk), spi0(csn1), sata1(present_act), mss_gpio0
    131mpp40	40	gpio, sdio(pwr11), synce1(clk), mss_i2c(sda), au(i2sdo_spdifo), ptp(pclk_out), spi0(clk), uart1(txd), ge(mdio), sata0(present_act), mss_gpio1
    132mpp41	41	gpio, sdio(pwr10), sdio(bus_pwr), mss_i2c(sck), au(i2slrclk), ptp(pulse), spi0(mosi), uart1(rxd), ge(mdc), sata1(present_act), mss_gpio2, rei(out_cp2cp)
    133mpp42	42	gpio, sdio(v18_en), sdio(wr_protect), synce2(clk), au(i2smclk), mss_uart(txd), spi0(miso), uart1(cts), xg(mdc), sata0(present_act), mss_gpio4
    134mpp43	43	gpio, sdio(card_detect), synce1(clk), au(i2sextclk), mss_uart(rxd), spi0(csn0), uart1(rts), xg(mdio), sata1(present_act), mss_gpio5, wakeup(out_cp2cp)
    135mpp44	44	gpio, ge1(txd2), uart0(rts), ptp(clk_cp2cp)
    136mpp45	45	gpio, ge1(txd3), uart0(txd), pcie(rstoutn)
    137mpp46	46	gpio, ge1(txd1), uart1(rts)
    138mpp47	47	gpio, ge1(txd0), spi1(clk), uart1(txd), ge(mdc)
    139mpp48	48	gpio, ge1(txctl_txen), spi1(mosi), xg(mdc), wakeup(in_cp2cp)
    140mpp49	49	gpio, ge1(txclkout), mii(crs), spi1(miso), uart1(rxd), ge(mdio), pcie0(clkreq), sdio(v18_en), sei(out_cp2cp)
    141mpp50	50	gpio, ge1(rxclk), mss_i2c(sda), spi1(csn0), uart2(txd), uart0(rxd), xg(mdio), sdio(pwr11)
    142mpp51	51	gpio, ge1(rxd0), mss_i2c(sck), spi1(csn1), uart2(rxd), uart0(cts), sdio(pwr10)
    143mpp52	52	gpio, ge1(rxd1), synce1(clk), synce2(clk), spi1(csn2), uart1(cts), led(clk), pcie(rstoutn), pcie0(clkreq)
    144mpp53	53	gpio, ge1(rxd2), ptp(clk), spi1(csn3), uart1(rxd), led(stb), sdio(led)
    145mpp54	54	gpio, ge1(rxd3), synce2(clk), ptp(pclk_out), synce1(clk), led(data), sdio(hw_rst), sdio_wp(wr_protect)
    146mpp55	55	gpio, ge1(rxctl_rxdv), ptp(pulse), sdio(led), sdio_cd(card_detect)
    147mpp56	56	gpio, tdm(drx), au(i2sdo_spdifo), spi0(clk), uart1(rxd), sata1(present_act), sdio(clk)
    148mpp57	57	gpio, mss_i2c(sda), ptp(pclk_out), tdm(intn), au(i2sbclk), spi0(mosi), uart1(txd), sata0(present_act), sdio(cmd)
    149mpp58	58	gpio, mss_i2c(sck), ptp(clk), tdm(rstn), au(i2sdi), spi0(miso), uart1(cts), led(clk), sdio(d0)
    150mpp59	59	gpio, mss_gpio7, synce2(clk), tdm(fsync), au(i2slrclk), spi0(csn0), uart0(cts), led(stb), uart1(txd), sdio(d1)
    151mpp60	60	gpio, mss_gpio6, ptp(pulse), tdm(dtx), au(i2smclk), spi0(csn1), uart0(rts), led(data), uart1(rxd), sdio(d2)
    152mpp61	61	gpio, mss_gpio5, ptp(clk), tdm(pclk), au(i2sextclk), spi0(csn2), uart0(txd), uart2(txd), sata1(present_act), ge(mdio), sdio(d3)
    153mpp62	62	gpio, mss_gpio4, synce1(clk), ptp(pclk_out), sata1(present_act), spi0(csn3), uart0(rxd), uart2(rxd), sata0(present_act), ge(mdc)
    154
    155GPIO:
    156-----
    157
    158For common binding part and usage, refer to
    159Documentation/devicetree/bindings/gpio/gpio-mvebu.txt.
    160
    161Required properties:
    162
    163- compatible: "marvell,armada-8k-gpio"
    164
    165- offset: offset address inside the syscon block
    166
    167Example:
    168
    169CP110_LABEL(syscon0): system-controller@440000 {
    170	compatible = "syscon", "simple-mfd";
    171	reg = <0x440000 0x1000>;
    172
    173	CP110_LABEL(clk): clock {
    174		compatible = "marvell,cp110-clock";
    175		#clock-cells = <2>;
    176	};
    177
    178	CP110_LABEL(pinctrl): pinctrl {
    179		compatible = "marvell,armada-8k-cpm-pinctrl";
    180	};
    181
    182	CP110_LABEL(gpio1): gpio@100 {
    183		compatible = "marvell,armada-8k-gpio";
    184		offset = <0x100>;
    185		ngpios = <32>;
    186		gpio-controller;
    187		#gpio-cells = <2>;
    188		gpio-ranges = <&CP110_LABEL(pinctrl) 0 0 32>;
    189	};
    190
    191};
    192
    193SYSTEM CONTROLLER 1
    194===================
    195
    196Thermal:
    197--------
    198
    199The thermal IP can probe the temperature all around the processor. It
    200may feature several channels, each of them wired to one sensor.
    201
    202It is possible to setup an overheat interrupt by giving at least one
    203critical point to any subnode of the thermal-zone node.
    204
    205For common binding part and usage, refer to
    206Documentation/devicetree/bindings/thermal/thermal*.yaml
    207
    208Required properties:
    209- compatible: must be one of:
    210  * marvell,armada-cp110-thermal
    211- reg: register range associated with the thermal functions.
    212
    213Optional properties:
    214- interrupts-extended: overheat interrupt handle. Should point to
    215  a line of the ICU-SEI irqchip (116 is what is usually used by the
    216  firmware). The ICU-SEI will redirect towards interrupt line #37 of the
    217  AP SEI which is shared across all CPs.
    218  See interrupt-controller/interrupts.txt
    219- #thermal-sensor-cells: shall be <1> when thermal-zones subnodes refer
    220  to this IP and represents the channel ID. There is one sensor per
    221  channel. O refers to the thermal IP internal channel.
    222
    223Example:
    224CP110_LABEL(syscon1): system-controller@6f8000 {
    225	compatible = "syscon", "simple-mfd";
    226	reg = <0x6f8000 0x1000>;
    227
    228	CP110_LABEL(thermal): thermal-sensor@70 {
    229		compatible = "marvell,armada-cp110-thermal";
    230		reg = <0x70 0x10>;
    231		interrupts-extended = <&CP110_LABEL(icu_sei) 116 IRQ_TYPE_LEVEL_HIGH>;
    232		#thermal-sensor-cells = <1>;
    233	};
    234};