forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'soc_fsl-6.12-2' of https://github.com/chleroy/linux into s…
…oc/drivers - A series from Hervé Codina that bring support for the newer version of QMC (QUICC Multi-channel Controller) and TSA (Time Slots Assigner) found on MPC 83xx micro-controllers. - Misc changes for qbman freescale drivers for removing a redundant warning and using iommu_paging_domain_alloc() * tag 'soc_fsl-6.12-2' of https://github.com/chleroy/linux: (38 commits) soc: fsl: qbman: Remove redundant warnings soc: fsl: qbman: Use iommu_paging_domain_alloc() MAINTAINERS: Add QE files related to the Freescale QMC controller soc: fsl: cpm1: qmc: Handle QUICC Engine (QE) soft-qmc firmware soc: fsl: cpm1: qmc: Add support for QUICC Engine (QE) implementation soc: fsl: qe: Add missing PUSHSCHED command soc: fsl: qe: Add resource-managed muram allocators soc: fsl: cpm1: qmc: Introduce qmc_version soc: fsl: cpm1: qmc: Rename SCC_GSMRL_MODE_QMC soc: fsl: cpm1: qmc: Handle RPACK initialization soc: fsl: cpm1: qmc: Rename qmc_chan_command() soc: fsl: cpm1: qmc: Introduce qmc_{init,exit}_xcc() and their CPM1 version soc: fsl: cpm1: qmc: Introduce qmc_init_resource() and its CPM1 version soc: fsl: cpm1: qmc: Re-order probe() operations soc: fsl: cpm1: qmc: Introduce qmc_data structure dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) QMC controller soc: fsl: cpm1: qmc: Add missing spinlock comment soc: fsl: cpm1: qmc: Fix 'transmiter' typo soc: fsl: cpm1: qmc: Remove unneeded parenthesis soc: fsl: cpm1: qmc: Fix blank line and spaces ... Link: https://lore.kernel.org/r/326d9a7d-7674-4c28-aa40-dd2c190244dd@csgroup.eu Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- Loading branch information
Showing
12 changed files
with
1,552 additions
and
328 deletions.
There are no files selected for viewing
210 changes: 210 additions & 0 deletions
210
Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,qe-tsa.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,210 @@ | ||
# 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-tsa.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: PowerQUICC QE Time-slot assigner (TSA) controller | ||
|
||
maintainers: | ||
- Herve Codina <herve.codina@bootlin.com> | ||
|
||
description: | ||
The TSA is the time-slot assigner that can be found on some PowerQUICC SoC. | ||
Its purpose is to route some TDM time-slots to other internal serial | ||
controllers. | ||
|
||
properties: | ||
compatible: | ||
items: | ||
- enum: | ||
- fsl,mpc8321-tsa | ||
- const: fsl,qe-tsa | ||
|
||
reg: | ||
items: | ||
- description: SI (Serial Interface) register base | ||
- description: SI RAM base | ||
|
||
reg-names: | ||
items: | ||
- const: si_regs | ||
- const: si_ram | ||
|
||
'#address-cells': | ||
const: 1 | ||
|
||
'#size-cells': | ||
const: 0 | ||
|
||
patternProperties: | ||
'^tdm@[0-3]$': | ||
description: | ||
The TDM managed by this controller | ||
type: object | ||
|
||
additionalProperties: false | ||
|
||
properties: | ||
reg: | ||
minimum: 0 | ||
maximum: 3 | ||
description: | ||
The TDM number for this TDM, 0 for TDMa, 1 for TDMb, 2 for TDMc and 3 | ||
for TDMd. | ||
|
||
fsl,common-rxtx-pins: | ||
$ref: /schemas/types.yaml#/definitions/flag | ||
description: | ||
The hardware can use four dedicated pins for Tx clock, Tx sync, Rx | ||
clock and Rx sync or use only two pins, Tx/Rx clock and Tx/Rx sync. | ||
Without the 'fsl,common-rxtx-pins' property, the four pins are used. | ||
With the 'fsl,common-rxtx-pins' property, two pins are used. | ||
|
||
clocks: | ||
minItems: 2 | ||
items: | ||
- description: Receive sync clock | ||
- description: Receive data clock | ||
- description: Transmit sync clock | ||
- description: Transmit data clock | ||
|
||
clock-names: | ||
minItems: 2 | ||
items: | ||
- const: rsync | ||
- const: rclk | ||
- const: tsync | ||
- const: tclk | ||
|
||
fsl,rx-frame-sync-delay-bits: | ||
enum: [0, 1, 2, 3] | ||
default: 0 | ||
description: | | ||
Receive frame sync delay in number of bits. | ||
Indicates the delay between the Rx sync and the first bit of the Rx | ||
frame. | ||
fsl,tx-frame-sync-delay-bits: | ||
enum: [0, 1, 2, 3] | ||
default: 0 | ||
description: | | ||
Transmit frame sync delay in number of bits. | ||
Indicates the delay between the Tx sync and the first bit of the Tx | ||
frame. | ||
fsl,clock-falling-edge: | ||
$ref: /schemas/types.yaml#/definitions/flag | ||
description: | ||
Data is sent on falling edge of the clock (and received on the rising | ||
edge). If not present, data is sent on the rising edge (and received | ||
on the falling edge). | ||
|
||
fsl,fsync-rising-edge: | ||
$ref: /schemas/types.yaml#/definitions/flag | ||
description: | ||
Frame sync pulses are sampled with the rising edge of the channel | ||
clock. If not present, pulses are sampled with the falling edge. | ||
|
||
fsl,fsync-active-low: | ||
$ref: /schemas/types.yaml#/definitions/flag | ||
description: | ||
Frame sync signals are active on low logic level. | ||
If not present, sync signals are active on high level. | ||
|
||
fsl,double-speed-clock: | ||
$ref: /schemas/types.yaml#/definitions/flag | ||
description: | ||
The channel clock is twice the data rate. | ||
|
||
patternProperties: | ||
'^fsl,[rt]x-ts-routes$': | ||
$ref: /schemas/types.yaml#/definitions/uint32-matrix | ||
description: | | ||
A list of tuple that indicates the Tx or Rx time-slots routes. | ||
items: | ||
items: | ||
- description: | ||
The number of time-slots | ||
minimum: 1 | ||
maximum: 64 | ||
- description: | | ||
The source (Tx) or destination (Rx) serial interface | ||
(dt-bindings/soc/qe-fsl,tsa.h defines these values) | ||
- 0: No destination | ||
- 1: UCC1 | ||
- 2: UCC2 | ||
- 3: UCC3 | ||
- 4: UCC4 | ||
- 5: UCC5 | ||
enum: [0, 1, 2, 3, 4, 5] | ||
minItems: 1 | ||
maxItems: 64 | ||
|
||
allOf: | ||
# If fsl,common-rxtx-pins is present, only 2 clocks are needed. | ||
# Else, the 4 clocks must be present. | ||
- if: | ||
required: | ||
- fsl,common-rxtx-pins | ||
then: | ||
properties: | ||
clocks: | ||
maxItems: 2 | ||
clock-names: | ||
maxItems: 2 | ||
else: | ||
properties: | ||
clocks: | ||
minItems: 4 | ||
clock-names: | ||
minItems: 4 | ||
|
||
required: | ||
- reg | ||
- clocks | ||
- clock-names | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- reg-names | ||
- '#address-cells' | ||
- '#size-cells' | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/soc/qe-fsl,tsa.h> | ||
tsa@ae0 { | ||
compatible = "fsl,mpc8321-tsa", "fsl,qe-tsa"; | ||
reg = <0xae0 0x10>, | ||
<0xc00 0x200>; | ||
reg-names = "si_regs", "si_ram"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
tdm@0 { | ||
/* TDMa */ | ||
reg = <0>; | ||
clocks = <&clk_l1rsynca>, <&clk_l1rclka>; | ||
clock-names = "rsync", "rclk"; | ||
fsl,common-rxtx-pins; | ||
fsl,fsync-rising-edge; | ||
fsl,tx-ts-routes = <2 0>, /* TS 0..1 */ | ||
<24 FSL_QE_TSA_UCC4>, /* TS 2..25 */ | ||
<1 0>, /* TS 26 */ | ||
<5 FSL_QE_TSA_UCC3>; /* TS 27..31 */ | ||
fsl,rx-ts-routes = <2 0>, /* TS 0..1 */ | ||
<24 FSL_QE_TSA_UCC4>, /* 2..25 */ | ||
<1 0>, /* TS 26 */ | ||
<5 FSL_QE_TSA_UCC3>; /* TS 27..31 */ | ||
}; | ||
}; |
Oops, something went wrong.