xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/nxp,lpc1850-creg.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/nxp,lpc1850-creg.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: The NXP LPC18xx/43xx CREG (Configuration Registers) block
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Frank Li <Frank.Li@nxp.com>
11*833e5d42SEmmanuel Vadot
12*833e5d42SEmmanuel Vadotproperties:
13*833e5d42SEmmanuel Vadot  compatible:
14*833e5d42SEmmanuel Vadot    items:
15*833e5d42SEmmanuel Vadot      - enum:
16*833e5d42SEmmanuel Vadot          - nxp,lpc1850-creg
17*833e5d42SEmmanuel Vadot      - const: syscon
18*833e5d42SEmmanuel Vadot      - const: simple-mfd
19*833e5d42SEmmanuel Vadot
20*833e5d42SEmmanuel Vadot  reg:
21*833e5d42SEmmanuel Vadot    maxItems: 1
22*833e5d42SEmmanuel Vadot
23*833e5d42SEmmanuel Vadot  clocks:
24*833e5d42SEmmanuel Vadot    maxItems: 1
25*833e5d42SEmmanuel Vadot
26*833e5d42SEmmanuel Vadot  resets:
27*833e5d42SEmmanuel Vadot    maxItems: 1
28*833e5d42SEmmanuel Vadot
29*833e5d42SEmmanuel Vadot  clock-controller:
30*833e5d42SEmmanuel Vadot    type: object
31*833e5d42SEmmanuel Vadot    description:
32*833e5d42SEmmanuel Vadot      The NXP LPC18xx/43xx CREG (Configuration Registers) block contains
33*833e5d42SEmmanuel Vadot      control registers for two low speed clocks. One of the clocks is a
34*833e5d42SEmmanuel Vadot      32 kHz oscillator driver with power up/down and clock gating. Next
35*833e5d42SEmmanuel Vadot      is a fixed divider that creates a 1 kHz clock from the 32 kHz osc.
36*833e5d42SEmmanuel Vadot
37*833e5d42SEmmanuel Vadot      These clocks are used by the RTC and the Event Router peripherals.
38*833e5d42SEmmanuel Vadot      The 32 kHz can also be routed to other peripherals to enable low
39*833e5d42SEmmanuel Vadot      power modes.
40*833e5d42SEmmanuel Vadot
41*833e5d42SEmmanuel Vadot    properties:
42*833e5d42SEmmanuel Vadot      compatible:
43*833e5d42SEmmanuel Vadot        const: nxp,lpc1850-creg-clk
44*833e5d42SEmmanuel Vadot
45*833e5d42SEmmanuel Vadot      clocks:
46*833e5d42SEmmanuel Vadot        maxItems: 1
47*833e5d42SEmmanuel Vadot
48*833e5d42SEmmanuel Vadot      '#clock-cells':
49*833e5d42SEmmanuel Vadot        const: 1
50*833e5d42SEmmanuel Vadot        description: |
51*833e5d42SEmmanuel Vadot          0            1 kHz clock
52*833e5d42SEmmanuel Vadot          1           32 kHz Oscillator
53*833e5d42SEmmanuel Vadot
54*833e5d42SEmmanuel Vadot    required:
55*833e5d42SEmmanuel Vadot      - compatible
56*833e5d42SEmmanuel Vadot      - clocks
57*833e5d42SEmmanuel Vadot      - '#clock-cells'
58*833e5d42SEmmanuel Vadot
59*833e5d42SEmmanuel Vadot    additionalProperties: false
60*833e5d42SEmmanuel Vadot
61*833e5d42SEmmanuel Vadot  phy:
62*833e5d42SEmmanuel Vadot    type: object
63*833e5d42SEmmanuel Vadot    description: the internal USB OTG PHY in NXP LPC18xx and LPC43xx SoCs
64*833e5d42SEmmanuel Vadot    properties:
65*833e5d42SEmmanuel Vadot      compatible:
66*833e5d42SEmmanuel Vadot        const: nxp,lpc1850-usb-otg-phy
67*833e5d42SEmmanuel Vadot
68*833e5d42SEmmanuel Vadot      clocks:
69*833e5d42SEmmanuel Vadot        maxItems: 1
70*833e5d42SEmmanuel Vadot
71*833e5d42SEmmanuel Vadot      '#phy-cells':
72*833e5d42SEmmanuel Vadot        const: 0
73*833e5d42SEmmanuel Vadot
74*833e5d42SEmmanuel Vadot    required:
75*833e5d42SEmmanuel Vadot      - compatible
76*833e5d42SEmmanuel Vadot      - clocks
77*833e5d42SEmmanuel Vadot      - '#phy-cells'
78*833e5d42SEmmanuel Vadot
79*833e5d42SEmmanuel Vadot    additionalProperties: false
80*833e5d42SEmmanuel Vadot
81*833e5d42SEmmanuel Vadot  dma-mux:
82*833e5d42SEmmanuel Vadot    type: object
83*833e5d42SEmmanuel Vadot    description: NXP LPC18xx/43xx DMA MUX (DMA request router)
84*833e5d42SEmmanuel Vadot    properties:
85*833e5d42SEmmanuel Vadot      compatible:
86*833e5d42SEmmanuel Vadot        const: nxp,lpc1850-dmamux
87*833e5d42SEmmanuel Vadot
88*833e5d42SEmmanuel Vadot      '#dma-cells':
89*833e5d42SEmmanuel Vadot        const: 3
90*833e5d42SEmmanuel Vadot        description: |
91*833e5d42SEmmanuel Vadot          Should be set to <3>.
92*833e5d42SEmmanuel Vadot          * 1st cell contain the master dma request signal
93*833e5d42SEmmanuel Vadot          * 2nd cell contain the mux value (0-3) for the peripheral
94*833e5d42SEmmanuel Vadot          * 3rd cell contain either 1 or 2 depending on the AHB  master used.
95*833e5d42SEmmanuel Vadot
96*833e5d42SEmmanuel Vadot      dma-requests:
97*833e5d42SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
98*833e5d42SEmmanuel Vadot        maximum: 64
99*833e5d42SEmmanuel Vadot        description: Number of DMA requests the controller can handle
100*833e5d42SEmmanuel Vadot
101*833e5d42SEmmanuel Vadot      dma-masters:
102*833e5d42SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/phandle
103*833e5d42SEmmanuel Vadot        description: phandle pointing to the DMA controller
104*833e5d42SEmmanuel Vadot
105*833e5d42SEmmanuel Vadot    required:
106*833e5d42SEmmanuel Vadot      - compatible
107*833e5d42SEmmanuel Vadot      - '#dma-cells'
108*833e5d42SEmmanuel Vadot      - dma-masters
109*833e5d42SEmmanuel Vadot
110*833e5d42SEmmanuel Vadot    additionalProperties: false
111*833e5d42SEmmanuel Vadot
112*833e5d42SEmmanuel Vadotrequired:
113*833e5d42SEmmanuel Vadot  - compatible
114*833e5d42SEmmanuel Vadot  - reg
115*833e5d42SEmmanuel Vadot  - clocks
116*833e5d42SEmmanuel Vadot  - resets
117*833e5d42SEmmanuel Vadot
118*833e5d42SEmmanuel VadotadditionalProperties: false
119*833e5d42SEmmanuel Vadot
120*833e5d42SEmmanuel Vadotexamples:
121*833e5d42SEmmanuel Vadot  - |
122*833e5d42SEmmanuel Vadot    #include <dt-bindings/clock/lpc18xx-ccu.h>
123*833e5d42SEmmanuel Vadot
124*833e5d42SEmmanuel Vadot    syscon@40043000 {
125*833e5d42SEmmanuel Vadot        compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
126*833e5d42SEmmanuel Vadot        reg = <0x40043000 0x1000>;
127*833e5d42SEmmanuel Vadot        clocks = <&ccu1 CLK_CPU_CREG>;
128*833e5d42SEmmanuel Vadot        resets = <&rgu 5>;
129*833e5d42SEmmanuel Vadot
130*833e5d42SEmmanuel Vadot        clock-controller {
131*833e5d42SEmmanuel Vadot            compatible = "nxp,lpc1850-creg-clk";
132*833e5d42SEmmanuel Vadot            clocks = <&xtal32>;
133*833e5d42SEmmanuel Vadot            #clock-cells = <1>;
134*833e5d42SEmmanuel Vadot        };
135*833e5d42SEmmanuel Vadot
136*833e5d42SEmmanuel Vadot        phy {
137*833e5d42SEmmanuel Vadot            compatible = "nxp,lpc1850-usb-otg-phy";
138*833e5d42SEmmanuel Vadot            clocks = <&ccu1 CLK_USB0>;
139*833e5d42SEmmanuel Vadot            #phy-cells = <0>;
140*833e5d42SEmmanuel Vadot        };
141*833e5d42SEmmanuel Vadot
142*833e5d42SEmmanuel Vadot        dma-mux {
143*833e5d42SEmmanuel Vadot            compatible = "nxp,lpc1850-dmamux";
144*833e5d42SEmmanuel Vadot            #dma-cells = <3>;
145*833e5d42SEmmanuel Vadot            dma-requests = <64>;
146*833e5d42SEmmanuel Vadot            dma-masters = <&dmac>;
147*833e5d42SEmmanuel Vadot        };
148*833e5d42SEmmanuel Vadot    };
149