# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,qe-ucc-qmc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: PowerQUICC QE QUICC Multichannel Controller (QMC) maintainers: - Herve Codina description: The QMC (QUICC Multichannel Controller) emulates up to 64 channels within one serial controller using the same TDM physical interface routed from TSA. properties: compatible: items: - enum: - fsl,mpc8321-ucc-qmc - const: fsl,qe-ucc-qmc reg: items: - description: UCC (Unified communication controller) register base - description: Dual port ram base reg-names: items: - const: ucc_regs - const: dpram interrupts: maxItems: 1 description: UCC interrupt line in the QE interrupt controller fsl,tsa-serial: $ref: /schemas/types.yaml#/definitions/phandle-array items: - items: - description: phandle to TSA node - enum: [1, 2, 3, 4, 5] description: | TSA serial interface (dt-bindings/soc/qe-fsl,tsa.h defines these values) - 1: UCC1 - 2: UCC2 - 3: UCC3 - 4: UCC4 - 5: UCC5 description: Should be a phandle/number pair. The phandle to TSA node and the TSA serial interface to use. fsl,soft-qmc: $ref: /schemas/types.yaml#/definitions/string description: Soft QMC firmware name to load. If this property is omitted, no firmware are used. '#address-cells': const: 1 '#size-cells': const: 0 patternProperties: '^channel@([0-9]|[1-5][0-9]|6[0-3])$': description: A channel managed by this controller type: object additionalProperties: false properties: compatible: items: - enum: - fsl,mpc8321-ucc-qmc-hdlc - const: fsl,qe-ucc-qmc-hdlc - const: fsl,qmc-hdlc reg: minimum: 0 maximum: 63 description: The channel number fsl,operational-mode: $ref: /schemas/types.yaml#/definitions/string enum: [transparent, hdlc] default: transparent description: | The channel operational mode - hdlc: The channel handles HDLC frames - transparent: The channel handles raw data without any processing fsl,reverse-data: $ref: /schemas/types.yaml#/definitions/flag description: The bit order as seen on the channels is reversed, transmitting/receiving the MSB of each octet first. This flag is used only in 'transparent' mode. fsl,tx-ts-mask: $ref: /schemas/types.yaml#/definitions/uint64 description: Channel assigned Tx time-slots within the Tx time-slots routed by the TSA to this cell. fsl,rx-ts-mask: $ref: /schemas/types.yaml#/definitions/uint64 description: Channel assigned Rx time-slots within the Rx time-slots routed by the TSA to this cell. fsl,framer: $ref: /schemas/types.yaml#/definitions/phandle description: phandle to the framer node. The framer is in charge of an E1/T1 line interface connected to the TDM bus. It can be used to get the E1/T1 line status such as link up/down. allOf: - if: properties: compatible: not: contains: const: fsl,qmc-hdlc then: properties: fsl,framer: false required: - reg - fsl,tx-ts-mask - fsl,rx-ts-mask required: - compatible - reg - reg-names - interrupts - fsl,tsa-serial - '#address-cells' - '#size-cells' additionalProperties: false examples: - | #include qmc@a60 { compatible = "fsl,mpc8321-ucc-qmc", "fsl,qe-ucc-qmc"; reg = <0x3200 0x200>, <0x10000 0x1000>; reg-names = "ucc_regs", "dpram"; interrupts = <35>; interrupt-parent = <&qeic>; fsl,soft-qmc = "fsl_qe_ucode_qmc_8321_11.bin"; #address-cells = <1>; #size-cells = <0>; fsl,tsa-serial = <&tsa FSL_QE_TSA_UCC4>; channel@16 { /* Ch16 : First 4 even TS from all routed from TSA */ reg = <16>; fsl,operational-mode = "transparent"; fsl,reverse-data; fsl,tx-ts-mask = <0x00000000 0x000000aa>; fsl,rx-ts-mask = <0x00000000 0x000000aa>; }; channel@17 { /* Ch17 : First 4 odd TS from all routed from TSA */ reg = <17>; fsl,operational-mode = "transparent"; fsl,reverse-data; fsl,tx-ts-mask = <0x00000000 0x00000055>; fsl,rx-ts-mask = <0x00000000 0x00000055>; }; channel@19 { /* Ch19 : 8 TS (TS 8..15) from all routed from TSA */ compatible = "fsl,mpc8321-ucc-qmc-hdlc", "fsl,qe-ucc-qmc-hdlc", "fsl,qmc-hdlc"; reg = <19>; fsl,operational-mode = "hdlc"; fsl,tx-ts-mask = <0x00000000 0x0000ff00>; fsl,rx-ts-mask = <0x00000000 0x0000ff00>; fsl,framer = <&framer>; }; };