Documentation / devicetree / bindings / soc / fsl / cpm_qe / fsl,ucc-hdlc.yaml


Based on kernel version 6.12.4. Page generated on 2024-12-12 21:01 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,ucc-hdlc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: High-Level Data Link Control(HDLC)

description: HDLC part in Universal communication controllers (UCCs)

maintainers:
  - Frank Li <Frank.Li@nxp.com>

properties:
  compatible:
    const: fsl,ucc-hdlc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  cell-index:
    $ref: /schemas/types.yaml#/definitions/uint32

  rx-clock-name:
    $ref: /schemas/types.yaml#/definitions/string
    oneOf:
      - pattern: "^brg([0-9]|1[0-6])$"
      - pattern: "^clk([0-9]|1[0-9]|2[0-4])$"

  tx-clock-name:
    $ref: /schemas/types.yaml#/definitions/string
    oneOf:
      - pattern: "^brg([0-9]|1[0-6])$"
      - pattern: "^clk([0-9]|1[0-9]|2[0-4])$"

  fsl,tdm-interface:
    $ref: /schemas/types.yaml#/definitions/flag
    description: Specify that hdlc is based on tdm-interface

  fsl,rx-sync-clock:
    $ref: /schemas/types.yaml#/definitions/string
    description: rx-sync
    enum:
      - none
      - rsync_pin
      - brg9
      - brg10
      - brg11
      - brg13
      - brg14
      - brg15

  fsl,tx-sync-clock:
    $ref: /schemas/types.yaml#/definitions/string
    description: tx-sync
    enum:
      - none
      - tsync_pin
      - brg9
      - brg10
      - brg11
      - brg13
      - brg14
      - brg15

  fsl,tdm-framer-type:
    $ref: /schemas/types.yaml#/definitions/string
    description: required for tdm interface
    enum: [e1, t1]

  fsl,tdm-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: number of TDM ID

  fsl,tx-timeslot-mask:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      required for tdm interface.
      time slot mask for TDM operation. Indicates which time
      slots used for transmitting and receiving.

  fsl,rx-timeslot-mask:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      required for tdm interface.
      time slot mask for TDM operation. Indicates which time
      slots used for transmitting and receiving.

  fsl,siram-entry-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      required for tdm interface
      Must be 0,2,4...64. the number of TDM entry.

  fsl,tdm-internal-loopback:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      optional for tdm interface
      Internal loopback connecting on TDM layer.

  fsl,hmask:
    $ref: /schemas/types.yaml#/definitions/uint16
    description: |
      HDLC address recognition. Set to zero to disable
      address filtering of packets:
      fsl,hmask = /bits/ 16 <0x0000>;

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    communication@2000 {
        compatible = "fsl,ucc-hdlc";
        reg = <0x2000 0x200>;
        rx-clock-name = "clk8";
        tx-clock-name = "clk9";
        fsl,rx-sync-clock = "rsync_pin";
        fsl,tx-sync-clock = "tsync_pin";
        fsl,tx-timeslot-mask = <0xfffffffe>;
        fsl,rx-timeslot-mask = <0xfffffffe>;
        fsl,tdm-framer-type = "e1";
        fsl,tdm-id = <0>;
        fsl,siram-entry-id = <0>;
        fsl,tdm-interface;
    };

  - |
    communication@2000 {
        compatible = "fsl,ucc-hdlc";
        reg = <0x2000 0x200>;
        rx-clock-name = "brg1";
        tx-clock-name = "brg1";
    };