xref: /freebsd-src/sys/contrib/device-tree/Bindings/pci/intel,ixp4xx-pci.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/intel,ixp4xx-pci.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadot
75956d97fSEmmanuel Vadottitle: Intel IXP4xx PCI controller
85956d97fSEmmanuel Vadot
95956d97fSEmmanuel Vadotmaintainers:
105956d97fSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
115956d97fSEmmanuel Vadot
125956d97fSEmmanuel Vadotdescription: PCI host controller found in the Intel IXP4xx SoC series.
135956d97fSEmmanuel Vadot
145956d97fSEmmanuel VadotallOf:
15*7d0873ebSEmmanuel Vadot  - $ref: /schemas/pci/pci-host-bridge.yaml#
165956d97fSEmmanuel Vadot
175956d97fSEmmanuel Vadotproperties:
185956d97fSEmmanuel Vadot  compatible:
195956d97fSEmmanuel Vadot    items:
205956d97fSEmmanuel Vadot      - enum:
215956d97fSEmmanuel Vadot          - intel,ixp42x-pci
225956d97fSEmmanuel Vadot          - intel,ixp43x-pci
235956d97fSEmmanuel Vadot    description: The two supported variants are ixp42x and ixp43x,
245956d97fSEmmanuel Vadot      though more variants may exist.
255956d97fSEmmanuel Vadot
265956d97fSEmmanuel Vadot  reg:
275956d97fSEmmanuel Vadot    items:
285956d97fSEmmanuel Vadot      - description: IXP4xx-specific registers
295956d97fSEmmanuel Vadot
305956d97fSEmmanuel Vadot  interrupts:
315956d97fSEmmanuel Vadot    items:
325956d97fSEmmanuel Vadot      - description: Main PCI interrupt
335956d97fSEmmanuel Vadot      - description: PCI DMA interrupt 1
345956d97fSEmmanuel Vadot      - description: PCI DMA interrupt 2
355956d97fSEmmanuel Vadot
365956d97fSEmmanuel Vadot  ranges:
375956d97fSEmmanuel Vadot    maxItems: 2
385956d97fSEmmanuel Vadot    description: Typically one memory range of 64MB and one IO
395956d97fSEmmanuel Vadot      space range of 64KB.
405956d97fSEmmanuel Vadot
415956d97fSEmmanuel Vadot  dma-ranges:
425956d97fSEmmanuel Vadot    maxItems: 1
435956d97fSEmmanuel Vadot    description: The DMA range tells the PCI host which addresses
445956d97fSEmmanuel Vadot      the RAM is at. It can map only 64MB so if the RAM is bigger
455956d97fSEmmanuel Vadot      than 64MB the DMA access has to be restricted to these
465956d97fSEmmanuel Vadot      addresses.
475956d97fSEmmanuel Vadot
485956d97fSEmmanuel Vadot  "#interrupt-cells": true
495956d97fSEmmanuel Vadot
505956d97fSEmmanuel Vadot  interrupt-map: true
515956d97fSEmmanuel Vadot
525956d97fSEmmanuel Vadot  interrupt-map-mask:
535956d97fSEmmanuel Vadot    items:
545956d97fSEmmanuel Vadot      - const: 0xf800
555956d97fSEmmanuel Vadot      - const: 0
565956d97fSEmmanuel Vadot      - const: 0
575956d97fSEmmanuel Vadot      - const: 7
585956d97fSEmmanuel Vadot
595956d97fSEmmanuel Vadotrequired:
605956d97fSEmmanuel Vadot  - compatible
615956d97fSEmmanuel Vadot  - reg
625956d97fSEmmanuel Vadot  - dma-ranges
635956d97fSEmmanuel Vadot  - "#interrupt-cells"
645956d97fSEmmanuel Vadot  - interrupt-map
655956d97fSEmmanuel Vadot  - interrupt-map-mask
665956d97fSEmmanuel Vadot
675956d97fSEmmanuel VadotunevaluatedProperties: false
685956d97fSEmmanuel Vadot
695956d97fSEmmanuel Vadotexamples:
705956d97fSEmmanuel Vadot  - |
715956d97fSEmmanuel Vadot    pci@c0000000 {
725956d97fSEmmanuel Vadot      compatible = "intel,ixp43x-pci";
735956d97fSEmmanuel Vadot      reg = <0xc0000000 0x1000>;
745956d97fSEmmanuel Vadot      #address-cells = <3>;
755956d97fSEmmanuel Vadot      #size-cells = <2>;
765956d97fSEmmanuel Vadot      device_type = "pci";
775956d97fSEmmanuel Vadot      bus-range = <0x00 0xff>;
785956d97fSEmmanuel Vadot
795956d97fSEmmanuel Vadot      ranges =
805956d97fSEmmanuel Vadot        <0x02000000 0 0x48000000 0x48000000 0 0x04000000>,
815956d97fSEmmanuel Vadot        <0x01000000 0 0x00000000 0x4c000000 0 0x00010000>;
825956d97fSEmmanuel Vadot      dma-ranges =
835956d97fSEmmanuel Vadot        <0x02000000 0 0x00000000 0x00000000 0 0x04000000>;
845956d97fSEmmanuel Vadot
855956d97fSEmmanuel Vadot      #interrupt-cells = <1>;
865956d97fSEmmanuel Vadot      interrupt-map-mask = <0xf800 0 0 7>;
875956d97fSEmmanuel Vadot      interrupt-map =
885956d97fSEmmanuel Vadot        <0x0800 0 0 1 &gpio0 11 3>, /* INT A on slot 1 is irq 11 */
895956d97fSEmmanuel Vadot        <0x0800 0 0 2 &gpio0 10 3>, /* INT B on slot 1 is irq 10 */
905956d97fSEmmanuel Vadot        <0x0800 0 0 3 &gpio0 9  3>, /* INT C on slot 1 is irq 9 */
915956d97fSEmmanuel Vadot        <0x0800 0 0 4 &gpio0 8  3>, /* INT D on slot 1 is irq 8 */
925956d97fSEmmanuel Vadot        <0x1000 0 0 1 &gpio0 10 3>, /* INT A on slot 2 is irq 10 */
935956d97fSEmmanuel Vadot        <0x1000 0 0 2 &gpio0 9  3>, /* INT B on slot 2 is irq 9 */
945956d97fSEmmanuel Vadot        <0x1000 0 0 3 &gpio0 8  3>, /* INT C on slot 2 is irq 8 */
955956d97fSEmmanuel Vadot        <0x1000 0 0 4 &gpio0 11 3>, /* INT D on slot 2 is irq 11 */
965956d97fSEmmanuel Vadot        <0x1800 0 0 1 &gpio0 9  3>, /* INT A on slot 3 is irq 9 */
975956d97fSEmmanuel Vadot        <0x1800 0 0 2 &gpio0 8  3>, /* INT B on slot 3 is irq 8 */
985956d97fSEmmanuel Vadot        <0x1800 0 0 3 &gpio0 11 3>, /* INT C on slot 3 is irq 11 */
995956d97fSEmmanuel Vadot        <0x1800 0 0 4 &gpio0 10 3>; /* INT D on slot 3 is irq 10 */
1005956d97fSEmmanuel Vadot    };
101