WIP: device tree MVP

This commit is contained in:
Daniel Agar
2022-01-06 17:20:17 -05:00
parent 07d75d85cf
commit 1f39b42525
1395 changed files with 68755 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
# Common fields for ADC controllers
include: base.yaml
properties:
label:
required: true
"#io-channel-cells":
type: int
required: true
+34
View File
@@ -0,0 +1,34 @@
# Copyright (C) 2019 Peter Bigot Consulting, LLC
# SPDX-License-Identifier: Apache-2.0
description: |
ADC channels exposed on Arduino Uno (R3) headers.
The Arduino Uno layout provides a 6-pin Analog Input header. This
has analog input signals labeled from A0 at the top through A5 at
the bottom.
This binding provides a nexus mapping for these pins where parent
pins 0 through 5 correspond to A0 through A5.
compatible: "arduino,uno-adc"
include: base.yaml
properties:
io-channel-map:
type: compound
required: true
io-channel-map-mask:
type: compound
required: false
io-channel-map-pass-thru:
type: compound
required: false
"#io-channel-cells":
type: int
required: true
description: Number of items to expect in an ADC specifier
+35
View File
@@ -0,0 +1,35 @@
description: Atmel SAM family AFEC
compatible: "atmel,sam-afec"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
peripheral-id:
type: int
description: peripheral ID
required: true
"#io-channel-cells":
const: 1
pinctrl-0:
type: phandles
required: true
description: |
PIO pin configuration for ADTRG signal. We expect that
the phandles will reference pinctrl nodes. These nodes will
have a nodelabel that matches the Atmel SoC HAL defines and
be of the form p<port><pin><periph>_<inst>_<signal>.
For example the I2C on SAME7x would be
pinctrl-0 = <&pa8b_afec0_adtrg>;
io-channel-cells:
- input
+48
View File
@@ -0,0 +1,48 @@
# Copyright (c) 2019 Derek Hageman <hageman@inthat.cloud>
# SPDX-License-Identifier: Apache-2.0
description: Atmel SAM0 family ADC
compatible: "atmel,sam0-adc"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
clocks:
required: true
clock-names:
required: true
gclk:
type: int
required: true
description: generic clock generator source
prescaler:
type: int
required: true
description: clock prescaler divisor applied to the generic clock
"#io-channel-cells":
const: 1
calib-offset:
type: int
required: false
description: |
bit position offset in NVM SW Calib for start of ADC0 BIASCOMP field.
This property is expected to be set on SAM{D,E}5x family of SoCs.
For ADC0 this should be 0, and for ADC1 this should be 14.
enum:
- 0
- 14
io-channel-cells:
- input
+16
View File
@@ -0,0 +1,16 @@
# Copyright (c) 2020 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
description: ITE it8xxx2 ADC
compatible: "ite,it8xxx2-adc"
include: adc-controller.yaml
properties:
interrupts:
required: true
pinctrl-0:
type: phandles
required: true
+5
View File
@@ -0,0 +1,5 @@
description: Microchip MCP3204
compatible: "microchip,mcp3204"
include: microchip,mcp320x-base.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Microchip MCP3208
compatible: "microchip,mcp3208"
include: microchip,mcp320x-base.yaml
@@ -0,0 +1,10 @@
# Common fields for Microchip MCP3204/MCP3208
include: [adc-controller.yaml, spi-device.yaml]
properties:
"#io-channel-cells":
const: 1
io-channel-cells:
- channel
@@ -0,0 +1,48 @@
# Copyright (c) 2019, Intel Corporation
# Copyright (c) 2021, Microchip Technology Inc.
# SPDX-License-Identifier: Apache-2.0
description: Microchip XEC ADC
compatible: "microchip,xec-adc-v2"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
"#io-channel-cells":
const: 1
girqs:
type: array
required: true
description: Array of pairs of GIRQ number and bit position
pcrs:
type: array
required: true
description: ADC PCR register index and bit position
"#girq-cells":
type: int
const: 2
"#pcr-cells":
type: int
const: 2
io-channel-cells:
- input
girq-cells:
- girqnum
- bitpos
pcr-cells:
- regidx
- bitpos
+26
View File
@@ -0,0 +1,26 @@
# Copyright (c) 2019, Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: Microchip XEC ADC
compatible: "microchip,xec-adc"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
"#io-channel-cells":
const: 1
clktime:
type: int
required: true
description: ADC clock high & low time count value <1:255>
io-channel-cells:
- input
+21
View File
@@ -0,0 +1,21 @@
# Copyright (c) 2018, Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: nRF ADC node
compatible: "nordic,nrf-adc"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
"#io-channel-cells":
const: 1
io-channel-cells:
- input
+21
View File
@@ -0,0 +1,21 @@
# Copyright (c) 2018, Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic Semiconductor nRF family SAADC node
compatible: "nordic,nrf-saadc"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
"#io-channel-cells":
const: 1
io-channel-cells:
- input
+41
View File
@@ -0,0 +1,41 @@
# Copyright (c) 2019 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0
description: NXP Kinetis ADC12
compatible: "nxp,kinetis-adc12"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
clk-source:
type: int
required: true
description: converter clock source
clk-divider:
type: int
required: true
description: clock divider for the converter
alternate-voltage-reference:
type: boolean
required: false
description: use alternate voltage reference source
sample-time:
type: int
required: true
description: sample time in clock cycles
"#io-channel-cells":
const: 1
io-channel-cells:
- input
+63
View File
@@ -0,0 +1,63 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
description: Kinetis ADC16
compatible: "nxp,kinetis-adc16"
include: adc-controller.yaml
properties:
reg:
required: true
channel-mux-b:
type: boolean
required: false
description: |
Use alternate set (b instead of a) of ADC channels
interrupts:
required: true
periodic-trigger:
type: boolean
required: false
description: if periodic trigger enabled
"#io-channel-cells":
const: 1
clk-source:
type: int
required: false
description: use alternate clock reference source
long-sample:
type: int
required: false
enum:
- 0
- 1
- 2
- 3
- 4
description: long sample mode
continuous-convert:
type: boolean
required: false
description: If use continuous convert
high-speed:
type: boolean
required: false
description: If use high speed
hw-trigger-src:
type: int
required: false
description: hardware trigger source (See ADCxTRGSEL field in user manual for more details)
io-channel-cells:
- input
@@ -0,0 +1,31 @@
# Copyright (c) 2019 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0
description: NXP MCUA 12B1MSPS SAR ADC
compatible: "nxp,mcux-12b1msps-sar"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
clk-divider:
type: int
required: true
description: clock divider for the converter
sample-period-mode:
type: int
required: true
description: sample period mode
"#io-channel-cells":
const: 1
io-channel-cells:
- input
+31
View File
@@ -0,0 +1,31 @@
# Copyright (c) 2018, Endre Karlson
# Copyright (c) 2018, Song Qiang <songqiang1304521@gmail.com>
# SPDX-License-Identifier: Apache-2.0
description: ST STM32 family ADC
compatible: "st,stm32-adc"
include: [adc-controller.yaml, pinctrl-device.yaml]
properties:
reg:
required: true
clocks:
required: true
interrupts:
required: true
"#io-channel-cells":
const: 1
pinctrl-0:
required: true
pinctrl-names:
required: true
io-channel-cells:
- input
+21
View File
@@ -0,0 +1,21 @@
# Copyright (c) 2021 Pavlo Hamov <pasha.gamov@gmail.com>
# SPDX-License-Identifier: Apache-2.0
description: cc32xx ADC node
compatible: "ti,cc32xx-adc"
include: adc-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
"#io-channel-cells":
const: 1
io-channel-cells:
- input
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90077 AFE binding
compatible: "ti,lmp90077"
include: ti,lmp90xxx-base.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90078 AFE binding
compatible: "ti,lmp90078"
include: ti,lmp90xxx-current.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90079 AFE binding
compatible: "ti,lmp90079"
include: ti,lmp90xxx-base.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90080 AFE binding
compatible: "ti,lmp90080"
include: ti,lmp90xxx-current.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90097 AFE binding
compatible: "ti,lmp90097"
include: ti,lmp90xxx-base.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90098 AFE binding
compatible: "ti,lmp90098"
include: ti,lmp90xxx-current.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90099 AFE binding
compatible: "ti,lmp90099"
include: ti,lmp90xxx-base.yaml
+5
View File
@@ -0,0 +1,5 @@
description: Texas Instruments LMP90100 AFE binding
compatible: "ti,lmp90100"
include: ti,lmp90xxx-current.yaml
+18
View File
@@ -0,0 +1,18 @@
# Common fields for Texas Instruments LMP90xxx AFEs
include: [adc-controller.yaml, spi-device.yaml]
bus: lmp90xxx
properties:
drdyb-gpios:
type: phandle-array
required: false
description: Data Ready Bar
"#io-channel-cells":
const: 2
io-channel-cells:
- positive
- negative
@@ -0,0 +1,9 @@
# Common fields for Texas Instruments LMP90xxx AFEs with current sources
include: ti,lmp90xxx-base.yaml
properties:
rtd-current:
type: int
required: false
description: RTD current in microampere
+40
View File
@@ -0,0 +1,40 @@
# Copyright (c) 2019, Peter Bigot Consulting, LLC
# SPDX-License-Identifier: Apache-2.0
description: |
Description for a voltage divider, with optional ability to measure
resistance of the upper leg.
compatible: "voltage-divider"
include: base.yaml
properties:
io-channels:
required: true
description: |
Channels available with this divider configuration.
output-ohms:
type: int
required: true
description: |
Resistance of the lower leg of the voltage divider
full-ohms:
type: int
required: false
description: |
Resistance of the full path through the voltage divider.
If absent or zero the driver assumes that the upper leg is a
resistance-based sensor.
power-gpios:
type: phandle-array
required: false
description: |
Control power to the voltage divider inputs.
If present the corresponding GPIO must be set to an active level
to enable the divider input.
+46
View File
@@ -0,0 +1,46 @@
# Copyright 2021 Google LLC
# SPDX-License-Identifier: Apache-2.0
description: Zephyr ADC Emulator
compatible: "zephyr,adc-emul"
include: adc-controller.yaml
properties:
nchannels:
type: int
required: true
description: Number of emulated ADC channels. Should be in 1-32 range.
ref-internal-mv:
type: int
required: false
default: 0
description:
Internal reference voltage in mV. If not provided or set to zero,
channel setup with ADC_REF_INTERNAL will fail.
ref-vdd-mv:
type: int
required: false
default: 0
description:
VDD reference voltage in mV. If not provided or set to zero,
channel setup with ADC_REF_VDD_X will fail.
ref-external0-mv:
type: int
required: false
default: 0
description:
External 0 reference voltage in mV. If not provided or set to zero,
channel setup with ADC_REF_EXTERNAL0 will fail.
ref-external1-mv:
type: int
required: false
default: 0
description:
External 1 reference voltage in mV. If not provided or set to zero,
channel setup with ADC_REF_EXTERNAL1 will fail.
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2017, synopsy
# SPDX-License-Identifier: Apache-2.0
description: ARC DCCM
compatible: "arc,dccm"
include: base.yaml
properties:
reg:
required: true
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2017, synopsys
# SPDX-License-Identifier: Apache-2.0
description: ARC ICCM
compatible: "arc,iccm"
include: base.yaml
properties:
reg:
required: true
+11
View File
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: Apache-2.0
description: Cortex-M DTCM (Data Tightly Coupled Memory)
compatible: "arm,dtcm"
include: [base.yaml, mem-region.yaml]
properties:
reg:
required: true
+11
View File
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: Apache-2.0
description: Cortex-M ITCM (Instruction Tightly Coupled Memory)
compatible: "arm,itcm"
include: [base.yaml, mem-region.yaml]
properties:
reg:
required: true
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: ARM Serial Configuration Control (SCC)
compatible: "arm,scc"
include: base.yaml
properties:
reg:
required: true
+52
View File
@@ -0,0 +1,52 @@
# Copyright (c) 2020, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: Atmel SAM SSC (Synchronous Serial Controller) controller
compatible: "atmel,sam-ssc"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
peripheral-id:
type: int
description: peripheral ID
required: true
pinctrl-0:
type: phandles
description: |
PIO pin configuration for RF, RK, RD, TF, TK, & TD signals.
We expect that the phandles will reference pinctrl nodes.
These nodes will have a nodelabel that matches the Atmel SoC HAL
defines and be of the form p<port><pin><periph>_<inst>_<signal>.
For example the SSC on SAME7x would be
pinctrl-0 = <&pd24b_ssc_rf &pa22a_ssc_rk &pa10c_ssc_rd
&pb0d_ssc_tf &pb1d_ssc_tk &pb5d_ssc_td>;
required: true
dmas:
required: true
description: |
TX & RX dma specifiers. Each specifier will have a phandle
reference to the dma controller, the channel number, and peripheral
trigger source.
For example dmas for TX, RX would look like
dmas = <&xdmac 22 DMA_PERID_SSC_TX>, <&xdmac 23 DMA_PERID_SSC_RX>;
dma-names:
required: true
description: |
This should be "tx" and "rx" to match the dmas property.
For example
dma-names = "tx", "rx";
+10
View File
@@ -0,0 +1,10 @@
description: |
For locating the Device ID (serial number) on Atmel SAM0 devices
compatible: "atmel,sam0-id"
include: base.yaml
properties:
reg:
required: true
+15
View File
@@ -0,0 +1,15 @@
description: Atmel SAM0 multi-protocol (UART, SPI, I2C) SERCOM unit
compatible: "atmel,sam0-sercom"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
clocks:
required: true
+19
View File
@@ -0,0 +1,19 @@
# Copyright (c) 2020, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: Atmel SAMD2x Power Manger (PM)
compatible: "atmel,samd2x-pm"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
"#clock-cells":
const: 2
clock-cells:
- offset
- bit
+13
View File
@@ -0,0 +1,13 @@
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: |
Nordic DPPIC (Distributed Programmable Peripheral Interconnect Controller)
compatible: "nordic,nrf-dppic"
include: base.yaml
properties:
reg:
required: true
+15
View File
@@ -0,0 +1,15 @@
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic EGU (Event Generator Unit)
compatible: "nordic,nrf-egu"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
+9
View File
@@ -0,0 +1,9 @@
description: Nordic FICR (Factory Information Configuration Registers)
compatible: "nordic,nrf-ficr"
include: base.yaml
properties:
reg:
required: true
+15
View File
@@ -0,0 +1,15 @@
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic KMU (Key Management Unit)
compatible: "nordic,nrf-kmu"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
+12
View File
@@ -0,0 +1,12 @@
description: Nordic SPU (System Protection Unit)
compatible: "nordic,nrf-spu"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
+9
View File
@@ -0,0 +1,9 @@
description: Nordic UICR (User Information Configuration Registers)
compatible: "nordic,nrf-uicr"
include: base.yaml
properties:
reg:
required: true
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: i.MX DTCM (Data Tightly Coupled Memory)
compatible: "nxp,imx-dtcm"
include: [base.yaml, mem-region.yaml]
properties:
reg:
required: true
+28
View File
@@ -0,0 +1,28 @@
# Copyright (c) 2018, NXP
# SPDX-License-Identifier: Apache-2.0
description: i.MX Enhanced Periodic Interrupt Timer (EPIT)
compatible: "nxp,imx-epit"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
prescaler:
type: int
required: true
description: Set the EPIT prescaler between 0 and 4095
rdc:
type: int
required: true
description: Set the RDC permission for this peripheral
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: i.MX ITCM (Instruction Tightly Coupled Memory)
compatible: "nxp,imx-itcm"
include: [base.yaml, mem-region.yaml]
properties:
reg:
required: true
+23
View File
@@ -0,0 +1,23 @@
# Copyright (c) 2018, NXP
# SPDX-License-Identifier: Apache-2.0
description: i.MX Messaging Unit
compatible: "nxp,imx-mu"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
rdc:
type: int
required: true
description: Set the RDC permission for this peripheral
+29
View File
@@ -0,0 +1,29 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
description: Kinetis FTM
compatible: "nxp,kinetis-ftm"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
prescaler:
type: int
required: true
enum:
- 1
- 2
- 4
- 8
- 16
- 32
- 64
- 128
description: Input clock prescaler
@@ -0,0 +1,25 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
description: Kinetis KE1xF System Integration Module (SIM) IP node
compatible: "nxp,kinetis-ke1xf-sim"
include: base.yaml
properties:
reg:
required: true
label:
required: true
clkout-source:
type: int
required: false
description: clkout clock source
clkout-divider:
type: int
required: false
description: clkout divider
+21
View File
@@ -0,0 +1,21 @@
# Copyright (c) 2019 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0
description: NXP Kinetis Multipurpose Clock generator (MCG) IP node
compatible: "nxp,kinetis-mcg"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#clock-cells":
const: 1
clock-cells:
- name
+22
View File
@@ -0,0 +1,22 @@
# Copyright (c) 2019 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0
description: NXP Kinetis PCC (Peripheral Clock Controller) IP node
compatible: "nxp,kinetis-pcc"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#clock-cells":
const: 2
clock-cells:
- name
- ip-source
+26
View File
@@ -0,0 +1,26 @@
# Copyright (c) 2019-2021 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0
description: NXP Kinetis SCG (System Clock Generator) IP node
compatible: "nxp,kinetis-scg"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
sosc-mode:
type: int
description: system oscillator mode
required: false
"#clock-cells":
const: 1
clock-cells:
- name
+45
View File
@@ -0,0 +1,45 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
description: Kinetis System Integration Module (SIM) IP node
compatible: "nxp,kinetis-sim"
include: base.yaml
properties:
reg:
required: true
label:
required: true
pllfll-select:
type: int
required: true
description: pll/fll selection for clock system
er32k-select:
type: int
required: true
description: er32k selection for clock system
clkout-source:
type: int
required: false
description: clkout clock source
clkout-divider:
type: int
required: false
description: clkout divider
"#clock-cells":
type: int
required: false
const: 3
clock-cells:
- name
- offset
- bits
+15
View File
@@ -0,0 +1,15 @@
# Copyright (c) 2020 NXP
# SPDX-License-Identifier: Apache-2.0
description: LPC Flexcomm node
compatible: "nxp,lpc-flexcomm"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
+11
View File
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: Apache-2.0
description: STM32 CCM (Core Coupled Memory)
compatible: "st,stm32-ccm"
include: [base.yaml, mem-region.yaml]
properties:
reg:
required: true
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: Intel Digital PDM Microphone (DMIC) node
compatible: "intel,dmic"
include: base.yaml
properties:
label:
required: true
+52
View File
@@ -0,0 +1,52 @@
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic PDM (Pulse Density Modulation interface)
compatible: "nordic,nrf-pdm"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
clk-pin:
type: int
required: true
description: CLK pin
din-pin:
type: int
required: true
description: DIN pin
clock-source:
type: string
required: false
default: "PCLK32M_HFXO"
description: |
Clock source to be used by the PDM peripheral. The following options
are available:
- "PCLK32M": 32 MHz peripheral clock, synchronous to HFCLK
- "PCLK32M_HFXO": PCLK32M running off the 32 MHz crystal oscillator
(HFXO) for better clock accuracy and jitter performance
- "ACLK": Audio PLL clock with configurable frequency (frequency for
this clock must be set via the "hfclkaudio-frequency" property
in the "nordic,nrf-clock" node); this clock source is only available
in the nRF53 Series SoCs and it requires the use of HFXO
enum:
- "PCLK32M"
- "PCLK32M_HFXO"
- "ACLK"
queue-size:
type: int
required: false
default: 4
description: |
Size of the queue of received audio data blocks to be used
by the driver.
+12
View File
@@ -0,0 +1,12 @@
# Copyright (c) 2018 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0
description: STMicroelectronics MPXXDTYY digital PDM microphone family
compatible: "st,mpxxdtyy"
include: i2s-device.yaml
properties:
label:
required: true
+13
View File
@@ -0,0 +1,13 @@
# Copyright (c) 2018, Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: Texas Instruments TLV320DAC310x Audio DAC
compatible: "ti,tlv320dac"
include: i2c-device.yaml
properties:
reset-gpios:
type: phandle-array
required: true
+110
View File
@@ -0,0 +1,110 @@
# Common fields for all devices
include: [pm.yaml]
properties:
status:
type: string
required: false
description: indicates the operational status of a device
enum:
- "ok" # Deprecated form
- "okay"
- "disabled"
- "reserved"
- "fail"
- "fail-sss"
compatible:
type: string-array
required: true
description: compatible strings
reg:
type: array
description: register space
required: false
reg-names:
type: string-array
description: name of each register space
required: false
interrupts:
type: array
required: false
description: interrupts for device
# Does not follow the 'type: phandle-array' scheme, but gets type-checked
# by the code. Declare it here just so that other bindings can make it
# 'required: true' easily if they want to.
interrupts-extended:
type: compound
required: false
description: extended interrupt specifier for device
interrupt-names:
type: string-array
required: false
description: name of each interrupt
interrupt-parent:
type: phandle
required: false
description: phandle to interrupt controller node
label:
type: string
required: false
description: Human readable string describing the device (used as device_get_binding() argument)
clocks:
type: phandle-array
required: false
description: Clock gate information
clock-names:
type: string-array
required: false
description: name of each clock
"#address-cells":
type: int
required: false
description: number of address cells in reg property
"#size-cells":
type: int
required: false
description: number of size cells in reg property
dmas:
required: false
type: phandle-array
description: DMA channels specifiers
dma-names:
required: false
type: string-array
description: Provided names of DMA channel specifiers
io-channels:
required: false
type: phandle-array
description: IO channels specifiers
io-channel-names:
required: false
type: string-array
description: Provided names of IO channel specifiers
mboxes:
required: false
type: phandle-array
description: mailbox / IPM channels specifiers
specifier-space: mbox
mbox-names:
required: false
type: string-array
description: Provided names of mailbox / IPM channel specifiers
+13
View File
@@ -0,0 +1,13 @@
# Copyright (c) 2021, CSIRO
# SPDX-License-Identifier: Apache-2.0
# Common fields for devices resulting in linker memory regions
properties:
zephyr,memory-region:
type: string
required: false
description: |
Signify that this node should result in a dedicated linker script
memory region in the final executable. The region address and size
is taken from the <reg> property, while the name is the value of
this property.
+18
View File
@@ -0,0 +1,18 @@
# Copyright (c) 2021 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0
# Properties for Power Management (PM)
properties:
wakeup-source:
required: false
type: boolean
description: |
Property to identify that a device can be used as wake up source.
When this property is provided a specific flag is set into the
device that tells the system that the device is capable of
wake up the system.
Wake up capable devices are disabled (interruptions will not wake up
the system) by default but they can be enabled at runtime if necessary.
+33
View File
@@ -0,0 +1,33 @@
# Copyright (c) 2020, Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
# Properties for nodes with controllable power supplies.
properties:
supply-gpios:
type: phandle-array
required: false
description: |
GPIO specifier that controls power to the device.
This property should be provided when the device has a dedicated
switch that controls power to the device. The supply state is
entirely the responsibility of the device driver.
Contrast with vin-supply.
vin-supply:
type: phandle
required: false
description: |
Reference to the regulator that controls power to the device.
The referenced devicetree node must have a regulator compatible.
This property should be provided when device power is supplied
by a shared regulator. The supply state is dependent on the
request status of all devices fed by the regulator.
Contrast with supply-gpios. If both properties are provided
then the regulator must be requested before the supply GPIOS is
set to an active state, and the supply GPIOS must be set to an
inactive state before releasing the regulator.
@@ -0,0 +1,34 @@
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: |
Configures SPI slave settings for a Bluetooth controller that uses
Zephyr's Bluetooth Host Controller Interface SPI (HCI SPI) driver.
A node defined via devicetree overlay should look like this:
&myspi {
bt-hci@0 {
compatible = "zephyr,bt-hci-spi-slave";
reg = <0>;
irq-gpios = <&gpio1 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
};
};
The bt-hci@0 node configures an HCI SPI slave on SPI slave
interface myspi.
The host interrupt GPIO is set to gpio1 pin 2 via irq-gpios. The
GPIO flags are just for example and may be different depending on
hardware.
compatible: "zephyr,bt-hci-spi-slave"
include: base.yaml
on-bus: spi
properties:
irq-gpios:
type: phandle-array
required: true
@@ -0,0 +1,19 @@
# Copyright (c) 2018, I-SENSE group of ICCS
# SPDX-License-Identifier: Apache-2.0
description: |
Bluetooth module that uses Zephyr's Bluetooth Host Controller Interface SPI
driver (e.g. nRF51822)
compatible: "zephyr,bt-hci-spi"
include: spi-device.yaml
properties:
irq-gpios:
type: phandle-array
required: true
reset-gpios:
type: phandle-array
required: true
+28
View File
@@ -0,0 +1,28 @@
description: Bosch m_can CAN-FD controller base
compatible: "bosch,m-can-base"
properties:
std-filter-elements:
type: int
required: true
ext-filter-elements:
type: int
required: true
rx-fifo0-elements:
type: int
required: true
rx-fifo1-elements:
type: int
required: true
rx-buffer-elements:
type: int
required: true
tx-buffer-elements:
type: int
required: true
+12
View File
@@ -0,0 +1,12 @@
description: Bosch m_can CAN-FD controller
compatible: "bosch,m-can"
include: can-fd-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
+36
View File
@@ -0,0 +1,36 @@
# Common fields for CAN controllers
include: base.yaml
bus: can
properties:
label:
required: true
bus-speed:
type: int
required: true
description: bus speed in Baud/s
sjw:
type: int
required: true
description: Resynchronization jump width (ISO 11898-1)
prop-seg:
type: int
required: false
description: Time quantums of propagation segment (ISO 11898-1)
phase-seg1:
type: int
required: false
description: Time quantums of phase buffer 1 segment (ISO 11898-1)
phase-seg2:
type: int
required: false
description: Time quantums of phase buffer 2 segment (ISO 11898-1)
sample-point:
type: int
required: false
description: >
Sample point in permille.
This param is required if segments are not given.
If the sample point is given, the segments are ignored.
+14
View File
@@ -0,0 +1,14 @@
# Copyright (c) 2018 Alexander Wachter
# SPDX-License-Identifier: Apache-2.0
# Common fields for CAN devices
include: base.yaml
on-bus: can
properties:
reg:
required: true
label:
required: true
+36
View File
@@ -0,0 +1,36 @@
# Common fields for CAN-FD controllers
include: can-controller.yaml
properties:
bus-speed-data:
type: int
required: true
description: data phase bus speed in Baud/s
sjw-data:
type: int
required: true
description: Resynchronization jump width for the data phase. (ISO11898-1:2015)
prop-seg-data:
type: int
required: false
description: Time quantums of propagation segment for the data phase. (ISO11898-1:2015)
phase-seg1-data:
type: int
required: false
description: Time quantums of phase buffer 1 segment for the data phase. (ISO11898-1:2015)
phase-seg2-data:
type: int
required: false
description: Time quantums of phase buffer 2 segment for the data phase. (ISO11898-1:2015)
sample-point-data:
type: int
required: false
description: >
Sample point in permille for the data phase.
This param is required if segments are not given.
If the sample point is given, the segments are ignored.
tx-delay-comp-offset:
type: int
required: false
default: 0
+26
View File
@@ -0,0 +1,26 @@
# Copyright (c) 2019 Karsten Koenig
# SPDX-License-Identifier: Apache-2.0
description: MCP2515 SPI CAN controller
compatible: "microchip,mcp2515"
include: [spi-device.yaml, can-controller.yaml]
properties:
osc-freq:
type: int
required: true
description: Frequency of the external oscillator
int-gpios:
type: phandle-array
required: true
description: |
Interrupt pin.
This pin signals active low when produced by the controller. The
property value should ensure the flags properly describe the signal
that is presented to the driver.
reg:
type: array
required: true
+23
View File
@@ -0,0 +1,23 @@
# Copyright (c) 2019 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0
description: NXP FlexCAN controller
compatible: "nxp,kinetis-flexcan"
include: can-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
clocks:
required: true
clk-source:
type: int
required: true
description: CAN engine clock source
+15
View File
@@ -0,0 +1,15 @@
description: Renesas R-Car CAN controller
compatible: "renesas,rcar-can"
include: can-controller.yaml
properties:
reg:
required: true
interrupts:
required: true
clocks:
required: true
+26
View File
@@ -0,0 +1,26 @@
description: STM32 CAN controller
compatible: "st,stm32-can"
include: [can-controller.yaml, pinctrl-device.yaml]
properties:
reg:
required: true
interrupts:
required: true
clocks:
required: true
pinctrl-0:
required: true
pinctrl-names:
required: true
master-can-reg:
type: int
required: false
description: master can reg when different from current instance
+5
View File
@@ -0,0 +1,5 @@
description: Bosch m_can CAN-FD controller
compatible: "st,stm32-fdcan"
include: ["bosch,m-can.yaml", "pinctrl-device.yaml"]
+18
View File
@@ -0,0 +1,18 @@
# Copyright (c) 2020, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: Atmel SAMD2x Generic Clock Controller (GCLK)
compatible: "atmel,samd2x-gclk"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
"#clock-cells":
const: 1
clock-cells:
- clkctrl_id
+18
View File
@@ -0,0 +1,18 @@
# Copyright (c) 2020, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: Atmel SAMD5x Generic Clock Controller (GCLK)
compatible: "atmel,samd5x-gclk"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
"#clock-cells":
const: 1
clock-cells:
- periph_ch
+19
View File
@@ -0,0 +1,19 @@
# Copyright (c) 2020, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: Atmel SAMD5x Generic Clock Controller (MCLK)
compatible: "atmel,samd5x-mclk"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
"#clock-cells":
const: 2
clock-cells:
- offset
- bit
+10
View File
@@ -0,0 +1,10 @@
# Copyright (c) 2019, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
# Common fields for clock controllers
properties:
"#clock-cells":
type: int
required: true
description: Number of items to expect in a Clock specifier
@@ -0,0 +1,31 @@
# Copyright (c) 2020, Mohamed ElShahawi
# SPDX-License-Identifier: Apache-2.0
description: ESP32 RTC (Power & Clock Controller Module) Module
compatible: "espressif,esp32-rtc"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
xtal-freq:
type: int
required: true
description: Value of the external XTAL connected to ESP32.
xtal-div:
type: int
required: false
description: Divisor value for XTAL Clock, CPU_CLK = XTAL_FREQ / xtal-div
"#clock-cells":
const: 1
clock-cells:
- offset # Index of the peripheral in esp32 modules list (Check esp32_clock.h)
+27
View File
@@ -0,0 +1,27 @@
# Copyright (c) 2019 Derek Hageman <hageman@inthat.cloud>
# SPDX-License-Identifier: Apache-2.0
description: Generic fixed-rate clock provider
compatible: "fixed-clock"
include: clock-controller.yaml
properties:
label:
type: string
required: false
description: Human readable string describing the device (used as device_get_binding() argument)
clock-frequency:
type: int
description: output clock frequency (Hz)
required: true
clocks:
type: array
required: false
description: input clock source
"#clock-cells":
const: 0
@@ -0,0 +1,24 @@
# Copyright (c) 2021 Prevas A/S
# SPDX-License-Identifier: Apache-2.0
description: Generic fixed factor clock provider
compatible: "fixed-factor-clock"
include: clock-controller.yaml
properties:
clock-div:
type: int
description: fixed clock divider
clock-mult:
type: int
description: fixed clock multiplier
clocks:
type: phandle-array
description: input clock source
"#clock-cells":
const: 0
+93
View File
@@ -0,0 +1,93 @@
# Copyright (c) 2020 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0
include: [clock-controller.yaml, base.yaml]
description: |
LiteX Mixed Mode Clock Manager
Common clock driver with MMCM unit for dynamic reconfiguration
of up to 7 clock outputs with ability to change frequency, duty
cycle and phase offset
compatible: "litex,clk"
clock-cells:
- id
properties:
reg:
description: Base address and lengths of the register space
"#clock-cells":
required: true
const: 1
clock-output-names:
required: true
type: string-array
description: |
List of strings of clock output signal names indexed
by the first cell in the clock specifier.
litex,lock-timeout:
required: true
type: int
description: |
Number of ms to wait for MMCM to assert LOCK signal
litex,drdy-timeout:
required: true
type: int
description: |
Number of ms to wait for MMCM to assert DRDY signal
litex,sys-clock-frequency:
required: true
type: int
description: |
System clock frequency
litex,divclk-divide-min:
required: true
type: int
description: |
minimal global divider
litex,divclk-divide-max:
required: true
type: int
description: |
maximal global divider
litex,clkfbout-mult-min:
required: true
type: int
description: |
minimal global multiplier
litex,clkfbout-mult-max:
required: true
type: int
description: |
maximal global multiplier
litex,vco-freq-min:
required: true
type: int
description: |
minimal frequency after global divider and multiplier
litex,vco-freq-max:
required: true
type: int
description: |
maximal frequency after global divider and multiplier
litex,clkout-divide-min:
required: true
type: int
description: |
minimal clock output divider
litex,clkout-divide-max:
required: true
type: int
description: |
maximal clock output divider
litex,vco-margin:
required: true
type: int
description: |
tolerancy for vco frequency
const: 0
+67
View File
@@ -0,0 +1,67 @@
# Copyright (c) 2020 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0
include: base.yaml
description: |
LiteX Mixed Mode Clock Manager clock output binding
compatible: "litex,clkout"
properties:
"#clock-cells":
required: true
type: int
description: |
Number of cells in a clock specifier;
Typically 0 for nodes with a single clock output
and 1 for nodes with multiple clock outputs.
const: 1
clock-output-names:
required: true
type: string
description: |
string of clock output signal name.
litex,clock-frequency:
required: true
type: int
description: |
default frequency in Hz for clock output
litex,clock-phase:
required: true
type: int
description: |
default phase offset given in degrees
litex,clock-duty-num:
required: true
type: int
description: |
default duty cycle numerator value
litex,clock-duty-den:
required: true
type: int
description: |
default duty cycle denominator value
litex,clock-margin:
required: true
type: int
description: |
clock output margin coefficient
litex,clock-margin-exp:
required: true
type: int
description: |
exponent for clkout margin
effective clkout margin shall be
margin * 10^(-exponent) * 100%
clock-cells:
- id
+52
View File
@@ -0,0 +1,52 @@
# Copyright (c) 2021, Microchip Technology Inc.
# SPDX-License-Identifier: Apache-2.0
description: Microchip XEC Power Clock Reset and VBAT register (PCR)
compatible: "microchip,xec-pcr"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
core-clock-div:
type: int
required: true
description: Divide 96 MHz PLL clock to produce Cortex-M4 core clock
slow-clock-div:
type: int
required: false
description: |
PWM and TACH clock domain divided down from 48 MHz AHB clock. The
default value is 480 for 100 kHz.
pll-32k-src:
type: int
required: true
description: 32 KHz clock source for PLL
periph-32k-src:
type: int
required: true
description: 32 KHz clock source for peripherals
xtal-single-ended:
type: boolean
required: false
description: Use single ended crystal connection to XTAL2 pin.
"#clock-cells":
const: 2
clock-cells:
- regidx
- bitpos
+27
View File
@@ -0,0 +1,27 @@
# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: Nordic nRF clock control node
compatible: "nordic,nrf-clock"
include: base.yaml
properties:
label:
required: true
reg:
required: true
interrupts:
required: true
hfclkaudio-frequency:
type: int
required: false
description: |
Frequency of the HFCLKAUDIO clock in Hz. Adjustable with 3.3 ppm
resolution in two frequency bands - 11.176 MHz to 11.402 MHz, and
12.165 MHz to 12.411 MHz (refer to the relevant Product Specification).
The HFCLKAUDIO clock is only available in the nRF53 Series SoCs.
+224
View File
@@ -0,0 +1,224 @@
# Copyright (c) 2020 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description: |
Nuvoton, NPCX PCC (Power and Clock Controller) node.
Besides power management, this node is also in charge of configuring the
Oscillator Frequency Multiplier Clock (OFMCLK), which is derived from
High-Frequency Clock Generator (HFCG), is the source clock of Cortex-M4 core
and most of NPCX hardware modules.
Here is an example of configuring OFMCLK and the other clock sources derived
from it in board dts file.
&pcc {
clock-frequency = <DT_FREQ_M(100)>; /* OFMCLK runs at 100MHz */
core-prescaler = <5>; /* CORE_CLK runs at 20MHz */
apb1-prescaler = <5>; /* APB1_CLK runs at 20MHz */
apb2-prescaler = <5>; /* APB2_CLK runs at 20MHz */
apb3-prescaler = <5>; /* APB3_CLK runs at 20MHz */
};
compatible: "nuvoton,npcx-pcc"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
clock-frequency:
required: true
type: int
description: |
Default frequency in Hz for HFCG output clock (OFMCLK). Currently,
only the following values are allowed:
100000000, 100 MHz
96000000, 96 MHz
90000000, 90 MHz
80000000, 80 MHz
66000000, 66 MHz
50000000, 50 MHz
48000000, 48 MHz
40000000, 40 MHz (default value after reset)
33000000, 33 MHz
enum:
- 100000000
- 96000000
- 90000000
- 80000000
- 66000000
- 50000000
- 48000000
- 40000000
- 33000000
core-prescaler:
type: int
required: true
description: |
Core clock prescaler (FPRED). It sets the Core frequency, CORE_CLK, by
dividing OFMCLK(MCLK) and needs to meet the following requirements.
- CORE_CLK must be set to 4MHz <= CORE_CLK <= 100MHz.
= Only the following values are allowed:
1, CORE_CLK = OFMCLK
2, CORE_CLK = OFMCLK / 2
3, CORE_CLK = OFMCLK / 3
4, CORE_CLK = OFMCLK / 4
5, CORE_CLK = OFMCLK / 5
6, CORE_CLK = OFMCLK / 6
7, CORE_CLK = OFMCLK / 7
8, CORE_CLK = OFMCLK / 8
9, CORE_CLK = OFMCLK / 9
10, CORE_CLK = OFMCLK / 10
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
apb1-prescaler:
type: int
required: true
description: |
APB1 prescaler. It sets the APB1 bus frequency, APB1_CLK, by dividing
OFMCLK(MCLK) and needs to meet the following requirements.
- APB1_CLK must be set to 4MHz <= APB1_CLK <= 50MHz.
- APB1_CLK must be an integer division (including 1) of CORE_CLK.
= Only the following values are allowed:
1, APB1_CLK = OFMCLK
2, APB1_CLK = OFMCLK / 2
3, APB1_CLK = OFMCLK / 3
4, APB1_CLK = OFMCLK / 4
5, APB1_CLK = OFMCLK / 5
6, APB1_CLK = OFMCLK / 6
7, APB1_CLK = OFMCLK / 7
8, APB1_CLK = OFMCLK / 8
9, APB1_CLK = OFMCLK / 9
10, APB1_CLK = OFMCLK / 10
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
apb2-prescaler:
type: int
required: true
description: |
APB2 prescaler. It sets the APB2 bus frequency, APB2_CLK, by dividing
OFMCLK(MCLK) and needs to meet the following requirements.
- APB2_CLK must be set to 8MHz <= APB2_CLK <= 50MHz.
- APB2_CLK must be an integer division (including 1) of CORE_CLK.
= Only the following values are allowed:
1, APB2_CLK = OFMCLK
2, APB2_CLK = OFMCLK / 2
3, APB2_CLK = OFMCLK / 3
4, APB2_CLK = OFMCLK / 4
5, APB2_CLK = OFMCLK / 5
6, APB2_CLK = OFMCLK / 6
7, APB2_CLK = OFMCLK / 7
8, APB2_CLK = OFMCLK / 8
9, APB2_CLK = OFMCLK / 9
10, APB2_CLK = OFMCLK / 10
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
apb3-prescaler:
type: int
required: true
description: |
APB3 prescaler. It sets the APB3 bus frequency, APB3_CLK, by dividing
OFMCLK(MCLK) and needs to meet the following requirements.
- APB3_CLK must be set to 12.5MHz <= APB3_CLK <= 50MHz.
- APB3_CLK must be an integer division (including 1) of CORE_CLK.
= Only the following values are allowed:
1, APB3_CLK = OFMCLK
2, APB3_CLK = OFMCLK / 2
3, APB3_CLK = OFMCLK / 3
4, APB3_CLK = OFMCLK / 4
5, APB3_CLK = OFMCLK / 5
6, APB3_CLK = OFMCLK / 6
7, APB3_CLK = OFMCLK / 7
8, APB3_CLK = OFMCLK / 8
9, APB3_CLK = OFMCLK / 9
10, APB3_CLK = OFMCLK / 10
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
apb4-prescaler:
type: int
required: false
description: |
APB4 prescaler. It sets the APB4 bus frequency, APB4_CLK, by dividing
OFMCLK(MCLK) and needs to meet the following requirements.
- APB4_CLK must be set to 8MHz <= APB4_CLK <= 50MHz.
- APB4_CLK must be an integer division (including 1) of CORE_CLK.
= Only the following values are allowed:
1, APB4_CLK = OFMCLK
2, APB4_CLK = OFMCLK / 2
3, APB4_CLK = OFMCLK / 3
4, APB4_CLK = OFMCLK / 4
5, APB4_CLK = OFMCLK / 5
6, APB4_CLK = OFMCLK / 6
7, APB4_CLK = OFMCLK / 7
8, APB4_CLK = OFMCLK / 8
9, APB4_CLK = OFMCLK / 9
10, APB4_CLK = OFMCLK / 10
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ram-pd-depth:
required: false
type: int
enum:
- 12
- 15
description: |
Valid bit-depth of RAM block Power-Down control (RAM_PD) registers.
Each bit in RAM_PDn can power down the relevant RAM block by setting
itself to 1 for better power consumption and this valid bit-depth
varies in different NPCX series.
clock-cells:
- bus
- ctl
- bit
+38
View File
@@ -0,0 +1,38 @@
# Copyright (c) 2021, NXP
# SPDX-License-Identifier: Apache-2.0
description: i.MX ANATOP (Analog Clock Controller Module) IP node
compatible: "nxp,imx-anatop"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#clock-cells":
type: int
const: 4
required: true
description: Number of items to expect in a clock specifier
"#pll-clock-cells":
type: int
const: 3
required: true
description: Number of items to expect in a PLL specifier
clock-cells:
- name
- offset
- bits
- value
pll-clock-cells:
- offset
- bits
- value
+23
View File
@@ -0,0 +1,23 @@
# Copyright (c) 2021, NXP
# SPDX-License-Identifier: Apache-2.0
description: i.MX CCM Rev2 (Clock Controller Module) IP node
compatible: "nxp,imx-ccm-rev2"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#clock-cells":
const: 3
clock-cells:
- name
- offset
- bits
+23
View File
@@ -0,0 +1,23 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
description: i.MX CCM (Clock Controller Module) IP node
compatible: "nxp,imx-ccm"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#clock-cells":
const: 3
clock-cells:
- name
- offset
- bits
+21
View File
@@ -0,0 +1,21 @@
# Copyright (c) 2020, NXP
# SPDX-License-Identifier: Apache-2.0
description: LPC SYSCON & CLKCTL IP node
compatible: "nxp,lpc-syscon"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#clock-cells":
const: 1
clock-cells:
- name
@@ -0,0 +1,31 @@
# Copyright (c) 2020, Seagate
# SPDX-License-Identifier: Apache-2.0
description: LPC11U6X clock controller node
compatible: "nxp,lpc11u6x-syscon"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
pinmuxs:
type: phandle-array
required: true
description: system oscillator pinmux configuration
pinmux-names:
type: string-array
required: false
description: system oscillator pins names
"#clock-cells":
const: 1
clock-cells:
- clkid
@@ -0,0 +1,19 @@
# Copyright (c) 2020, IoT.bzh
# SPDX-License-Identifier: Apache-2.0
description: Renesas Clock Pulse Generator / Module Standby and Software Reset
compatible: "renesas,rcar-cpg-mssr"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
"#clock-cells":
const: 2
clock-cells:
- domain
- module
@@ -0,0 +1,16 @@
# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0
description: STM32 HSE Clock
compatible: "st,stm32-hse-clock"
include: [fixed-clock.yaml]
properties:
hse-bypass:
type: boolean
required: false
description: |
HSE crystal oscillator bypass
Set to the property to by-pass the oscillator with an external clock.
@@ -0,0 +1,36 @@
# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0
description: STM32 MSI Clock
compatible: "st,stm32-msi-clock"
include: [clock-controller.yaml, base.yaml]
properties:
msi-range:
required: true
type: int
default: 6
description: |
MSI clock ranges
enum:
- 0 # range 0 around 100 kHz
- 1 # range 1 around 200 kHz
- 2 # range 2 around 400 kHz
- 3 # range 3 around 800 kHz
- 4 # range 4 around 1M Hz
- 5 # range 5 around 2 MHz
- 6 # range 6 around 4 MHz (reset value)
- 7 # range 7 around 8 MHz
- 8 # range 8 around 16 MHz
- 9 # range 9 around 24 MHz
- 10 # range 10 around 32 MHz
- 11 # range 11 around 48 MHz
msi-pll-mode:
type: boolean
required: false
description: |
MSI clock PLL enable
Enables the PLL part of the MSI clock source.
+96
View File
@@ -0,0 +1,96 @@
# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0
description: |
STM32 Reset and Clock controller node.
This node is in charge of system clock ('SYSCLK') source selection and controlling
clocks for AHB (Advanced High Performance) and APB (Advanced Peripheral) bus domains.
Configuring STM32 Reset and Clock controller node:
System clock source should be selected amongst the clock nodes available in "clocks"
node (typically 'clk_hse, clk_hsi', 'pll', ...).
As part of this node configuration, SYSCLK frequency should also be defined, using
"clock-frequency" property.
Last, bus clocks (typically HCLK, PCLK1, PCLK2) should be configured using matching
prescaler properties.
Here is an example of correctly configured rcc node:
&rcc {
clocks = <&pll>; /* Set pll as SYSCLK source */
clock-frequency = <DT_FREQ_M(80)>; /* SYSCLK runs at 80MHz */
ahb-prescaler = <1>;
apb1-presacler = <1>;
apb2-presacler = <1>;
}
Specifying a gated clock:
To specify a gated clock, a peripheral should define a "clocks" property encoded
in the following way:
... {
...
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000020>;
...
}
After the phandle referring to rcc node, the first index specifies the registers of
the bus controlling the peripheral and the second index specifies the bit used to
control the peripheral clock in that bus register.
compatible: "st,stm32-rcc"
include: [clock-controller.yaml, base.yaml]
properties:
reg:
required: true
"#clock-cells":
const: 2
clock-frequency:
required: true
type: int
description: |
default frequency in Hz for clock output
ahb-prescaler:
type: int
required: true
enum:
- 1
- 2
- 4
- 8
- 16
- 64
- 128
- 256
- 512
description: |
AHB prescaler. Sets a HCLK frequency (feeding Cortex-M Systick)
lower than SYSCLK frequency (actual core frequency).
The HCLK clocks CPU, AHB, memories and DMA.
apb1-prescaler:
type: int
required: true
enum:
- 1
- 2
- 4
- 8
- 16
apb2-prescaler:
type: int
required: true
enum:
- 1
- 2
- 4
- 8
- 16
clock-cells:
- bus
- bits
@@ -0,0 +1,40 @@
# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0
description: |
Main PLL node binding for STM32F0 and STM32F3 devices.
Takes one of clk_hse or clk_hsi as input clock.
Note: Some STM32F0 SoC variants (STM32072 for instance) may also support HSI48
as input clock. This case is not supported yet.
Frequency calculation for output clock is as follows:
f(PLLCLK) = f(PLLIN) x PLLMUL --> SYSCLK (System Clock)
with, depending on the case:
If input_clk = clk_hse
f(PLLIN) = f(input_clk) / PREDIV
If input_clk = clk_hsi
On STM32F3, STM32F03x, STM32F05x, STM32F030x4, STM32F030x6 and STM32F030x8
f(PLLIN) = f(input_clk) / 2
On STM32F04x, STM32F07x, STM32F09x, STM32F070x6, STM32F070xB and STM32F030xC
f(PLLIN) = f(input_clk) / PREDIV
The PLL output frequency must be set in range 16-48MHz
compatible: "st,stm32f0-pll-clock"
include:
- name: st,stm32f105-pll-clock.yaml
property-blocklist:
- mul
properties:
mul:
type: int
required: true
description: |
PLL multiplication factor for output clock
Valid range: 2 - 16
+13
View File
@@ -0,0 +1,13 @@
# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0
description: |
STM32F0 and G0 Reset and Clock controller node.
For more description confere st,stm32-rcc.yaml
compatible: "st,stm32f0-rcc"
include:
- name: st,stm32-rcc.yaml
property-blocklist:
- apb2-prescaler
@@ -0,0 +1,47 @@
# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0
description: |
Main PLL node binding for low-, medium-, high- and XL-density STM32F1 devices.
Takes one of 'clk_hse', 'clk_hse / 2' (when 'xtpre' is set) or 'clk_hsi / 2'
as input clock.
Up to 2 output clocks could be supported and for each output clock, the
frequency can be computed with the following formula:
f(PLLCLK) = f(input clk) x PLLMUL --> SYSCLK (System Clock)
f(USBCLK) = f(PLLCLK) / USBPRE --> USB
The PLL output frequency must not exceed 72 MHz.
compatible: "st,stm32f1-pll-clock"
include: [clock-controller.yaml, base.yaml]
properties:
"#clock-cells":
const: 0
clocks:
required: true
mul:
type: int
required: true
description: |
Main PLL multiplication factor for VCO
Valid range: 2 - 16
xtpre:
type: boolean
required: false
description: |
Otpional HSE divider for PLL entry
usbpre:
type: int
required: false
description: |
Otpional HSE divider for PLL entry

Some files were not shown because too many files have changed in this diff Show More