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

intel,ixp4xx-expansion-bus-controller.yaml (5445B)


      1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/bus/intel,ixp4xx-expansion-bus-controller.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Intel IXP4xx Expansion Bus Controller
      8
      9description: |
     10  The IXP4xx expansion bus controller handles access to devices on the
     11  memory-mapped expansion bus on the Intel IXP4xx family of system on chips,
     12  including IXP42x, IXP43x, IXP45x and IXP46x.
     13
     14maintainers:
     15  - Linus Walleij <linus.walleij@linaro.org>
     16
     17properties:
     18  $nodename:
     19    pattern: '^bus@[0-9a-f]+$'
     20
     21  compatible:
     22    items:
     23      - enum:
     24          - intel,ixp42x-expansion-bus-controller
     25          - intel,ixp43x-expansion-bus-controller
     26          - intel,ixp45x-expansion-bus-controller
     27          - intel,ixp46x-expansion-bus-controller
     28      - const: syscon
     29
     30  reg:
     31    description: Control registers for the expansion bus, these are not
     32      inside the memory range handled by the expansion bus.
     33    maxItems: 1
     34
     35  native-endian:
     36    $ref: /schemas/types.yaml#/definitions/flag
     37    description: The IXP4xx has a peculiar MMIO access scheme, as it changes
     38      the access pattern for words (swizzling) on the bus depending on whether
     39      the SoC is running in big-endian or little-endian mode. Thus the
     40      registers must always be accessed using native endianness.
     41
     42  "#address-cells":
     43    description: |
     44      The first cell is the chip select number.
     45      The second cell is the address offset within the bank.
     46    const: 2
     47
     48  "#size-cells":
     49    const: 1
     50
     51  ranges: true
     52  dma-ranges: true
     53
     54patternProperties:
     55  "^.*@[0-7],[0-9a-f]+$":
     56    description: Devices attached to chip selects are represented as
     57      subnodes.
     58    type: object
     59
     60    properties:
     61      intel,ixp4xx-eb-t1:
     62        description: Address timing, extend address phase with n cycles.
     63        $ref: /schemas/types.yaml#/definitions/uint32
     64        maximum: 3
     65
     66      intel,ixp4xx-eb-t2:
     67        description: Setup chip select timing, extend setup phase with n cycles.
     68        $ref: /schemas/types.yaml#/definitions/uint32
     69        maximum: 3
     70
     71      intel,ixp4xx-eb-t3:
     72        description: Strobe timing, extend strobe phase with n cycles.
     73        $ref: /schemas/types.yaml#/definitions/uint32
     74        maximum: 15
     75
     76      intel,ixp4xx-eb-t4:
     77        description: Hold timing, extend hold phase with n cycles.
     78        $ref: /schemas/types.yaml#/definitions/uint32
     79        maximum: 3
     80
     81      intel,ixp4xx-eb-t5:
     82        description: Recovery timing, extend recovery phase with n cycles.
     83        $ref: /schemas/types.yaml#/definitions/uint32
     84        maximum: 15
     85
     86      intel,ixp4xx-eb-cycle-type:
     87        description: The type of cycles to use on the expansion bus for this
     88          chip select. 0 = Intel cycles, 1 = Motorola cycles, 2 = HPI cycles.
     89        $ref: /schemas/types.yaml#/definitions/uint32
     90        enum: [0, 1, 2]
     91
     92      intel,ixp4xx-eb-byte-access-on-halfword:
     93        description: Allow byte read access on half word devices.
     94        $ref: /schemas/types.yaml#/definitions/uint32
     95        enum: [0, 1]
     96
     97      intel,ixp4xx-eb-hpi-hrdy-pol-high:
     98        description: Set HPI HRDY polarity to active high when using HPI.
     99        $ref: /schemas/types.yaml#/definitions/uint32
    100        enum: [0, 1]
    101
    102      intel,ixp4xx-eb-mux-address-and-data:
    103        description: Multiplex address and data on the data bus.
    104        $ref: /schemas/types.yaml#/definitions/uint32
    105        enum: [0, 1]
    106
    107      intel,ixp4xx-eb-ahb-split-transfers:
    108        description: Enable AHB split transfers.
    109        $ref: /schemas/types.yaml#/definitions/uint32
    110        enum: [0, 1]
    111
    112      intel,ixp4xx-eb-write-enable:
    113        description: Enable write cycles.
    114        $ref: /schemas/types.yaml#/definitions/uint32
    115        enum: [0, 1]
    116
    117      intel,ixp4xx-eb-byte-access:
    118        description: Expansion bus uses only 8 bits. The default is to use
    119          16 bits.
    120        $ref: /schemas/types.yaml#/definitions/uint32
    121        enum: [0, 1]
    122
    123required:
    124  - compatible
    125  - reg
    126  - native-endian
    127  - "#address-cells"
    128  - "#size-cells"
    129  - ranges
    130  - dma-ranges
    131
    132additionalProperties: false
    133
    134examples:
    135  - |
    136    #include <dt-bindings/interrupt-controller/irq.h>
    137    bus@50000000 {
    138        compatible = "intel,ixp42x-expansion-bus-controller", "syscon";
    139        reg = <0xc4000000 0x28>;
    140        native-endian;
    141        #address-cells = <2>;
    142        #size-cells = <1>;
    143        ranges = <0 0x0 0x50000000 0x01000000>,
    144                 <1 0x0 0x51000000 0x01000000>;
    145        dma-ranges = <0 0x0 0x50000000 0x01000000>,
    146                     <1 0x0 0x51000000 0x01000000>;
    147        flash@0,0 {
    148            compatible = "intel,ixp4xx-flash", "cfi-flash";
    149            bank-width = <2>;
    150            reg = <0 0x00000000 0x1000000>;
    151            intel,ixp4xx-eb-t3 = <3>;
    152            intel,ixp4xx-eb-cycle-type = <0>;
    153            intel,ixp4xx-eb-byte-access-on-halfword = <1>;
    154            intel,ixp4xx-eb-write-enable = <1>;
    155            intel,ixp4xx-eb-byte-access = <0>;
    156        };
    157        serial@1,0 {
    158            compatible = "exar,xr16l2551", "ns8250";
    159            reg = <1 0x00000000 0x10>;
    160            interrupt-parent = <&gpio0>;
    161            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
    162            clock-frequency = <1843200>;
    163            intel,ixp4xx-eb-t3 = <3>;
    164            intel,ixp4xx-eb-cycle-type = <1>;
    165            intel,ixp4xx-eb-write-enable = <1>;
    166            intel,ixp4xx-eb-byte-access = <1>;
    167        };
    168    };