xref: /freebsd/sys/contrib/device-tree/Bindings/bus/renesas,bsc.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot%YAML 1.2
2*c66ec88fSEmmanuel Vadot---
3*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
4*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel Vadottitle: Renesas Bus State Controller (BSC)
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel Vadotmaintainers:
9*c66ec88fSEmmanuel Vadot  - Geert Uytterhoeven <geert+renesas@glider.be>
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel Vadotdescription: |
12*c66ec88fSEmmanuel Vadot  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
13*c66ec88fSEmmanuel Vadot  Bridge", or "External Bus Interface") can be found in several Renesas ARM
14*c66ec88fSEmmanuel Vadot  SoCs.  It provides an external bus for connecting multiple external
15*c66ec88fSEmmanuel Vadot  devices to the SoC, driving several chip select lines, for e.g. NOR
16*c66ec88fSEmmanuel Vadot  FLASH, Ethernet and USB.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel Vadot  While the BSC is a fairly simple memory-mapped bus, it may be part of a
19*c66ec88fSEmmanuel Vadot  PM domain, and may have a gateable functional clock.  Before a device
20*c66ec88fSEmmanuel Vadot  connected to the BSC can be accessed, the PM domain containing the BSC
21*c66ec88fSEmmanuel Vadot  must be powered on, and the functional clock driving the BSC must be
22*c66ec88fSEmmanuel Vadot  enabled.
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot  The bindings for the BSC extend the bindings for "simple-pm-bus".
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotallOf:
27*c66ec88fSEmmanuel Vadot  - $ref: simple-pm-bus.yaml#
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel Vadotproperties:
30*c66ec88fSEmmanuel Vadot  compatible:
31*c66ec88fSEmmanuel Vadot    items:
32*c66ec88fSEmmanuel Vadot      - enum:
33*c66ec88fSEmmanuel Vadot          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
34*c66ec88fSEmmanuel Vadot          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
35*c66ec88fSEmmanuel Vadot      - const: renesas,bsc
36*c66ec88fSEmmanuel Vadot      - {} # simple-pm-bus, but not listed here to avoid false select
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot  reg:
39*c66ec88fSEmmanuel Vadot    maxItems: 1
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot  interrupts:
42*c66ec88fSEmmanuel Vadot    maxItems: 1
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadotrequired:
45*c66ec88fSEmmanuel Vadot  - reg
46*c66ec88fSEmmanuel Vadot
47*c66ec88fSEmmanuel Vadotexamples:
48*c66ec88fSEmmanuel Vadot  - |
49*c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel Vadot    bsc: bus@fec10000 {
52*c66ec88fSEmmanuel Vadot        compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
53*c66ec88fSEmmanuel Vadot        #address-cells = <1>;
54*c66ec88fSEmmanuel Vadot        #size-cells = <1>;
55*c66ec88fSEmmanuel Vadot        ranges = <0 0 0x20000000>;
56*c66ec88fSEmmanuel Vadot        reg = <0xfec10000 0x400>;
57*c66ec88fSEmmanuel Vadot        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
58*c66ec88fSEmmanuel Vadot        clocks = <&zb_clk>;
59*c66ec88fSEmmanuel Vadot        power-domains = <&pd_a4s>;
60*c66ec88fSEmmanuel Vadot    };
61