2020-05-28 12:33:11 +03:00
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id : http://devicetree.org/schemas/i2c/snps,designware-i2c.yaml#
$schema : http://devicetree.org/meta-schemas/core.yaml#
title : Synopsys DesignWare APB I2C Controller
maintainers :
- Jarkko Nikula <jarkko.nikula@linux.intel.com>
allOf :
- $ref : /schemas/i2c/i2c-controller.yaml#
- if :
properties :
compatible :
not :
contains :
const : mscc,ocelot-i2c
then :
properties :
reg :
maxItems : 1
properties :
compatible :
oneOf :
- description : Generic Synopsys DesignWare I2C controller
const : snps,designware-i2c
- description : Microsemi Ocelot SoCs I2C controller
items :
- const : mscc,ocelot-i2c
- const : snps,designware-i2c
2020-05-28 12:33:13 +03:00
- description : Baikal-T1 SoC System I2C controller
const : baikal,bt1-sys-i2c
2020-05-28 12:33:11 +03:00
reg :
minItems : 1
items :
- description : DW APB I2C controller memory mapped registers
- description : |
ICPU_CFG:TWI_DELAY registers to setup the SDA hold time.
This registers are specific to the Ocelot I2C-controller.
interrupts :
maxItems : 1
clocks :
minItems : 1
items :
- description : I2C controller reference clock source
- description : APB interface clock source
clock-names :
minItems : 1
items :
- const : ref
- const : pclk
resets :
maxItems : 1
clock-frequency :
description : Desired I2C bus clock frequency in Hz
enum : [ 100000 , 400000 , 1000000 , 3400000 ]
default : 400000
i2c-sda-hold-time-ns :
description : |
The property should contain the SDA hold time in nanoseconds. This option
is only supported in hardware blocks version 1.11a or newer or on
Microsemi SoCs.
i2c-scl-falling-time-ns :
description : |
The property should contain the SCL falling time in nanoseconds.
This value is used to compute the tLOW period.
default : 300
i2c-sda-falling-time-ns :
description : |
The property should contain the SDA falling time in nanoseconds.
This value is used to compute the tHIGH period.
default : 300
dmas :
items :
- description : TX DMA Channel
- description : RX DMA Channel
dma-names :
items :
- const : tx
- const : rx
unevaluatedProperties : false
required :
- compatible
- reg
- interrupts
examples :
- |
i2c@f0000 {
compatible = "snps,designware-i2c";
reg = <0xf0000 0x1000>;
interrupts = <11>;
clock-frequency = <400000>;
};
- |
i2c@1120000 {
compatible = "snps,designware-i2c";
reg = <0x1120000 0x1000>;
interrupts = <12 1>;
clock-frequency = <400000>;
i2c-sda-hold-time-ns = <300>;
i2c-sda-falling-time-ns = <300>;
i2c-scl-falling-time-ns = <300>;
};
- |
i2c@2000 {
compatible = "snps,designware-i2c";
reg = <0x2000 0x100>;
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <400000>;
clocks = <&i2cclk>;
interrupts = <0>;
eeprom@64 {
2020-05-28 12:33:12 +03:00
compatible = "atmel,24c02";
reg = <0x64>;
2020-05-28 12:33:11 +03:00
};
};
- |
i2c@100400 {
compatible = "mscc,ocelot-i2c", "snps,designware-i2c";
reg = <0x100400 0x100>, <0x198 0x8>;
pinctrl-0 = <&i2c_pins>;
pinctrl-names = "default";
interrupts = <8>;
clocks = <&ahb_clk>;
};
...