The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/bus/intel,ixp4xx-expansion-bus-controller.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 
    7 title: Intel IXP4xx Expansion Bus Controller
    8 
    9 description: |
   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 
   14 maintainers:
   15   - Linus Walleij <linus.walleij@linaro.org>
   16 
   17 properties:
   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 
   54 patternProperties:
   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 
  123 required:
  124   - compatible
  125   - reg
  126   - native-endian
  127   - "#address-cells"
  128   - "#size-cells"
  129   - ranges
  130   - dma-ranges
  131 
  132 additionalProperties: false
  133 
  134 examples:
  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     };

Cache object: 5a300e413326eb18a3b63abb0b682c4f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.