1*28c9c3d3SPaul Cercueil# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*28c9c3d3SPaul Cercueil%YAML 1.2
3*28c9c3d3SPaul Cercueil---
4*28c9c3d3SPaul Cercueil$id: http://devicetree.org/schemas/serial/ingenic,uart.yaml#
5*28c9c3d3SPaul Cercueil$schema: http://devicetree.org/meta-schemas/core.yaml#
6*28c9c3d3SPaul Cercueil
7*28c9c3d3SPaul Cercueiltitle: Ingenic SoCs UART controller devicetree bindings
8*28c9c3d3SPaul Cercueil
9*28c9c3d3SPaul Cercueilmaintainers:
10*28c9c3d3SPaul Cercueil  - Paul Cercueil <paul@crapouillou.net>
11*28c9c3d3SPaul Cercueil
12*28c9c3d3SPaul Cercueilproperties:
13*28c9c3d3SPaul Cercueil  $nodename:
14*28c9c3d3SPaul Cercueil    pattern: "^serial@[0-9a-f]+$"
15*28c9c3d3SPaul Cercueil
16*28c9c3d3SPaul Cercueil  compatible:
17*28c9c3d3SPaul Cercueil    oneOf:
18*28c9c3d3SPaul Cercueil      - enum:
19*28c9c3d3SPaul Cercueil        - ingenic,jz4740-uart
20*28c9c3d3SPaul Cercueil        - ingenic,jz4760-uart
21*28c9c3d3SPaul Cercueil        - ingenic,jz4780-uart
22*28c9c3d3SPaul Cercueil        - ingenic,x1000-uart
23*28c9c3d3SPaul Cercueil      - items:
24*28c9c3d3SPaul Cercueil        - enum:
25*28c9c3d3SPaul Cercueil          - ingenic,jz4770-uart
26*28c9c3d3SPaul Cercueil          - ingenic,jz4775-uart
27*28c9c3d3SPaul Cercueil        - const: ingenic,jz4760-uart
28*28c9c3d3SPaul Cercueil      - items:
29*28c9c3d3SPaul Cercueil        - const: ingenic,jz4725b-uart
30*28c9c3d3SPaul Cercueil        - const: ingenic,jz4740-uart
31*28c9c3d3SPaul Cercueil
32*28c9c3d3SPaul Cercueil  reg:
33*28c9c3d3SPaul Cercueil    maxItems: 1
34*28c9c3d3SPaul Cercueil
35*28c9c3d3SPaul Cercueil  interrupts:
36*28c9c3d3SPaul Cercueil    maxItems: 1
37*28c9c3d3SPaul Cercueil
38*28c9c3d3SPaul Cercueil  clocks:
39*28c9c3d3SPaul Cercueil    items:
40*28c9c3d3SPaul Cercueil      - description: Baud clock
41*28c9c3d3SPaul Cercueil      - description: UART module clock
42*28c9c3d3SPaul Cercueil
43*28c9c3d3SPaul Cercueil  clock-names:
44*28c9c3d3SPaul Cercueil    items:
45*28c9c3d3SPaul Cercueil      - const: baud
46*28c9c3d3SPaul Cercueil      - const: module
47*28c9c3d3SPaul Cercueil
48*28c9c3d3SPaul Cercueil  dmas:
49*28c9c3d3SPaul Cercueil    items:
50*28c9c3d3SPaul Cercueil      - description: DMA controller phandle and request line for RX
51*28c9c3d3SPaul Cercueil      - description: DMA controller phandle and request line for TX
52*28c9c3d3SPaul Cercueil
53*28c9c3d3SPaul Cercueil  dma-names:
54*28c9c3d3SPaul Cercueil    items:
55*28c9c3d3SPaul Cercueil      - const: rx
56*28c9c3d3SPaul Cercueil      - const: tx
57*28c9c3d3SPaul Cercueil
58*28c9c3d3SPaul Cercueilrequired:
59*28c9c3d3SPaul Cercueil  - compatible
60*28c9c3d3SPaul Cercueil  - reg
61*28c9c3d3SPaul Cercueil  - interrupts
62*28c9c3d3SPaul Cercueil  - clocks
63*28c9c3d3SPaul Cercueil  - clock-names
64*28c9c3d3SPaul Cercueil  - dmas
65*28c9c3d3SPaul Cercueil  - dma-names
66*28c9c3d3SPaul Cercueil
67*28c9c3d3SPaul Cercueilexamples:
68*28c9c3d3SPaul Cercueil  - |
69*28c9c3d3SPaul Cercueil    #include <dt-bindings/clock/jz4780-cgu.h>
70*28c9c3d3SPaul Cercueil    #include <dt-bindings/dma/jz4780-dma.h>
71*28c9c3d3SPaul Cercueil    #include <dt-bindings/gpio/gpio.h>
72*28c9c3d3SPaul Cercueil    serial@10032000 {
73*28c9c3d3SPaul Cercueil      compatible = "ingenic,jz4780-uart";
74*28c9c3d3SPaul Cercueil      reg = <0x10032000 0x100>;
75*28c9c3d3SPaul Cercueil
76*28c9c3d3SPaul Cercueil      interrupt-parent = <&intc>;
77*28c9c3d3SPaul Cercueil      interrupts = <49>;
78*28c9c3d3SPaul Cercueil
79*28c9c3d3SPaul Cercueil      clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
80*28c9c3d3SPaul Cercueil      clock-names = "baud", "module";
81*28c9c3d3SPaul Cercueil
82*28c9c3d3SPaul Cercueil      dmas = <&dma JZ4780_DMA_UART2_RX 0xffffffff>,
83*28c9c3d3SPaul Cercueil             <&dma JZ4780_DMA_UART2_TX 0xffffffff>;
84*28c9c3d3SPaul Cercueil      dma-names = "rx", "tx";
85*28c9c3d3SPaul Cercueil
86*28c9c3d3SPaul Cercueil      bluetooth {
87*28c9c3d3SPaul Cercueil        compatible = "brcm,bcm4330-bt";
88*28c9c3d3SPaul Cercueil        reset-gpios = <&gpf 8 GPIO_ACTIVE_HIGH>;
89*28c9c3d3SPaul Cercueil        vcc-supply = <&wlan0_power>;
90*28c9c3d3SPaul Cercueil        device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>;
91*28c9c3d3SPaul Cercueil        host-wakeup-gpios = <&gpf 6 GPIO_ACTIVE_HIGH>;
92*28c9c3d3SPaul Cercueil        shutdown-gpios = <&gpf 4 GPIO_ACTIVE_LOW>;
93*28c9c3d3SPaul Cercueil      };
94*28c9c3d3SPaul Cercueil    };
95