Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/bus/intel,ixp4xx-expansion-bus-controller.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Intel IXP4xx Expansion Bus Controller
0008 
0009 description: |
0010   The IXP4xx expansion bus controller handles access to devices on the
0011   memory-mapped expansion bus on the Intel IXP4xx family of system on chips,
0012   including IXP42x, IXP43x, IXP45x and IXP46x.
0013 
0014 maintainers:
0015   - Linus Walleij <linus.walleij@linaro.org>
0016 
0017 properties:
0018   $nodename:
0019     pattern: '^bus@[0-9a-f]+$'
0020 
0021   compatible:
0022     items:
0023       - enum:
0024           - intel,ixp42x-expansion-bus-controller
0025           - intel,ixp43x-expansion-bus-controller
0026           - intel,ixp45x-expansion-bus-controller
0027           - intel,ixp46x-expansion-bus-controller
0028       - const: syscon
0029 
0030   reg:
0031     description: Control registers for the expansion bus, these are not
0032       inside the memory range handled by the expansion bus.
0033     maxItems: 1
0034 
0035   native-endian:
0036     $ref: /schemas/types.yaml#/definitions/flag
0037     description: The IXP4xx has a peculiar MMIO access scheme, as it changes
0038       the access pattern for words (swizzling) on the bus depending on whether
0039       the SoC is running in big-endian or little-endian mode. Thus the
0040       registers must always be accessed using native endianness.
0041 
0042   "#address-cells":
0043     description: |
0044       The first cell is the chip select number.
0045       The second cell is the address offset within the bank.
0046     const: 2
0047 
0048   "#size-cells":
0049     const: 1
0050 
0051   ranges: true
0052   dma-ranges: true
0053 
0054 patternProperties:
0055   "^.*@[0-7],[0-9a-f]+$":
0056     description: Devices attached to chip selects are represented as
0057       subnodes.
0058     type: object
0059 
0060     properties:
0061       intel,ixp4xx-eb-t1:
0062         description: Address timing, extend address phase with n cycles.
0063         $ref: /schemas/types.yaml#/definitions/uint32
0064         maximum: 3
0065 
0066       intel,ixp4xx-eb-t2:
0067         description: Setup chip select timing, extend setup phase with n cycles.
0068         $ref: /schemas/types.yaml#/definitions/uint32
0069         maximum: 3
0070 
0071       intel,ixp4xx-eb-t3:
0072         description: Strobe timing, extend strobe phase with n cycles.
0073         $ref: /schemas/types.yaml#/definitions/uint32
0074         maximum: 15
0075 
0076       intel,ixp4xx-eb-t4:
0077         description: Hold timing, extend hold phase with n cycles.
0078         $ref: /schemas/types.yaml#/definitions/uint32
0079         maximum: 3
0080 
0081       intel,ixp4xx-eb-t5:
0082         description: Recovery timing, extend recovery phase with n cycles.
0083         $ref: /schemas/types.yaml#/definitions/uint32
0084         maximum: 15
0085 
0086       intel,ixp4xx-eb-cycle-type:
0087         description: The type of cycles to use on the expansion bus for this
0088           chip select. 0 = Intel cycles, 1 = Motorola cycles, 2 = HPI cycles.
0089         $ref: /schemas/types.yaml#/definitions/uint32
0090         enum: [0, 1, 2]
0091 
0092       intel,ixp4xx-eb-byte-access-on-halfword:
0093         description: Allow byte read access on half word devices.
0094         $ref: /schemas/types.yaml#/definitions/uint32
0095         enum: [0, 1]
0096 
0097       intel,ixp4xx-eb-hpi-hrdy-pol-high:
0098         description: Set HPI HRDY polarity to active high when using HPI.
0099         $ref: /schemas/types.yaml#/definitions/uint32
0100         enum: [0, 1]
0101 
0102       intel,ixp4xx-eb-mux-address-and-data:
0103         description: Multiplex address and data on the data bus.
0104         $ref: /schemas/types.yaml#/definitions/uint32
0105         enum: [0, 1]
0106 
0107       intel,ixp4xx-eb-ahb-split-transfers:
0108         description: Enable AHB split transfers.
0109         $ref: /schemas/types.yaml#/definitions/uint32
0110         enum: [0, 1]
0111 
0112       intel,ixp4xx-eb-write-enable:
0113         description: Enable write cycles.
0114         $ref: /schemas/types.yaml#/definitions/uint32
0115         enum: [0, 1]
0116 
0117       intel,ixp4xx-eb-byte-access:
0118         description: Expansion bus uses only 8 bits. The default is to use
0119           16 bits.
0120         $ref: /schemas/types.yaml#/definitions/uint32
0121         enum: [0, 1]
0122 
0123 required:
0124   - compatible
0125   - reg
0126   - native-endian
0127   - "#address-cells"
0128   - "#size-cells"
0129   - ranges
0130   - dma-ranges
0131 
0132 additionalProperties: false
0133 
0134 examples:
0135   - |
0136     #include <dt-bindings/interrupt-controller/irq.h>
0137     bus@50000000 {
0138         compatible = "intel,ixp42x-expansion-bus-controller", "syscon";
0139         reg = <0xc4000000 0x28>;
0140         native-endian;
0141         #address-cells = <2>;
0142         #size-cells = <1>;
0143         ranges = <0 0x0 0x50000000 0x01000000>,
0144                  <1 0x0 0x51000000 0x01000000>;
0145         dma-ranges = <0 0x0 0x50000000 0x01000000>,
0146                      <1 0x0 0x51000000 0x01000000>;
0147         flash@0,0 {
0148             compatible = "intel,ixp4xx-flash", "cfi-flash";
0149             bank-width = <2>;
0150             reg = <0 0x00000000 0x1000000>;
0151             intel,ixp4xx-eb-t3 = <3>;
0152             intel,ixp4xx-eb-cycle-type = <0>;
0153             intel,ixp4xx-eb-byte-access-on-halfword = <1>;
0154             intel,ixp4xx-eb-write-enable = <1>;
0155             intel,ixp4xx-eb-byte-access = <0>;
0156         };
0157         serial@1,0 {
0158             compatible = "exar,xr16l2551", "ns8250";
0159             reg = <1 0x00000000 0x10>;
0160             interrupt-parent = <&gpio0>;
0161             interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
0162             clock-frequency = <1843200>;
0163             intel,ixp4xx-eb-t3 = <3>;
0164             intel,ixp4xx-eb-cycle-type = <1>;
0165             intel,ixp4xx-eb-write-enable = <1>;
0166             intel,ixp4xx-eb-byte-access = <1>;
0167         };
0168     };