1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/i2c/snps,designware-i2c.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Synopsys DesignWare APB I2C Controller 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Jarkko Nikula <jarkko.nikula@linux.intel.com> 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunallOf: 13*4882a593Smuzhiyun - $ref: /schemas/i2c/i2c-controller.yaml# 14*4882a593Smuzhiyun - if: 15*4882a593Smuzhiyun properties: 16*4882a593Smuzhiyun compatible: 17*4882a593Smuzhiyun not: 18*4882a593Smuzhiyun contains: 19*4882a593Smuzhiyun const: mscc,ocelot-i2c 20*4882a593Smuzhiyun then: 21*4882a593Smuzhiyun properties: 22*4882a593Smuzhiyun reg: 23*4882a593Smuzhiyun maxItems: 1 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunproperties: 26*4882a593Smuzhiyun compatible: 27*4882a593Smuzhiyun oneOf: 28*4882a593Smuzhiyun - description: Generic Synopsys DesignWare I2C controller 29*4882a593Smuzhiyun const: snps,designware-i2c 30*4882a593Smuzhiyun - description: Microsemi Ocelot SoCs I2C controller 31*4882a593Smuzhiyun items: 32*4882a593Smuzhiyun - const: mscc,ocelot-i2c 33*4882a593Smuzhiyun - const: snps,designware-i2c 34*4882a593Smuzhiyun - description: Baikal-T1 SoC System I2C controller 35*4882a593Smuzhiyun const: baikal,bt1-sys-i2c 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun reg: 38*4882a593Smuzhiyun minItems: 1 39*4882a593Smuzhiyun items: 40*4882a593Smuzhiyun - description: DW APB I2C controller memory mapped registers 41*4882a593Smuzhiyun - description: | 42*4882a593Smuzhiyun ICPU_CFG:TWI_DELAY registers to setup the SDA hold time. 43*4882a593Smuzhiyun This registers are specific to the Ocelot I2C-controller. 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun interrupts: 46*4882a593Smuzhiyun maxItems: 1 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun clocks: 49*4882a593Smuzhiyun minItems: 1 50*4882a593Smuzhiyun items: 51*4882a593Smuzhiyun - description: I2C controller reference clock source 52*4882a593Smuzhiyun - description: APB interface clock source 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun clock-names: 55*4882a593Smuzhiyun minItems: 1 56*4882a593Smuzhiyun items: 57*4882a593Smuzhiyun - const: ref 58*4882a593Smuzhiyun - const: pclk 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun resets: 61*4882a593Smuzhiyun maxItems: 1 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun clock-frequency: 64*4882a593Smuzhiyun description: Desired I2C bus clock frequency in Hz 65*4882a593Smuzhiyun enum: [100000, 400000, 1000000, 3400000] 66*4882a593Smuzhiyun default: 400000 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun i2c-sda-hold-time-ns: 69*4882a593Smuzhiyun maxItems: 1 70*4882a593Smuzhiyun description: | 71*4882a593Smuzhiyun The property should contain the SDA hold time in nanoseconds. This option 72*4882a593Smuzhiyun is only supported in hardware blocks version 1.11a or newer or on 73*4882a593Smuzhiyun Microsemi SoCs. 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun i2c-scl-falling-time-ns: 76*4882a593Smuzhiyun maxItems: 1 77*4882a593Smuzhiyun description: | 78*4882a593Smuzhiyun The property should contain the SCL falling time in nanoseconds. 79*4882a593Smuzhiyun This value is used to compute the tLOW period. 80*4882a593Smuzhiyun default: 300 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun i2c-sda-falling-time-ns: 83*4882a593Smuzhiyun maxItems: 1 84*4882a593Smuzhiyun description: | 85*4882a593Smuzhiyun The property should contain the SDA falling time in nanoseconds. 86*4882a593Smuzhiyun This value is used to compute the tHIGH period. 87*4882a593Smuzhiyun default: 300 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun dmas: 90*4882a593Smuzhiyun items: 91*4882a593Smuzhiyun - description: TX DMA Channel 92*4882a593Smuzhiyun - description: RX DMA Channel 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun dma-names: 95*4882a593Smuzhiyun items: 96*4882a593Smuzhiyun - const: tx 97*4882a593Smuzhiyun - const: rx 98*4882a593Smuzhiyun 99*4882a593SmuzhiyununevaluatedProperties: false 100*4882a593Smuzhiyun 101*4882a593Smuzhiyunrequired: 102*4882a593Smuzhiyun - compatible 103*4882a593Smuzhiyun - reg 104*4882a593Smuzhiyun - "#address-cells" 105*4882a593Smuzhiyun - "#size-cells" 106*4882a593Smuzhiyun - interrupts 107*4882a593Smuzhiyun 108*4882a593Smuzhiyunexamples: 109*4882a593Smuzhiyun - | 110*4882a593Smuzhiyun i2c@f0000 { 111*4882a593Smuzhiyun compatible = "snps,designware-i2c"; 112*4882a593Smuzhiyun reg = <0xf0000 0x1000>; 113*4882a593Smuzhiyun #address-cells = <1>; 114*4882a593Smuzhiyun #size-cells = <0>; 115*4882a593Smuzhiyun interrupts = <11>; 116*4882a593Smuzhiyun clock-frequency = <400000>; 117*4882a593Smuzhiyun }; 118*4882a593Smuzhiyun - | 119*4882a593Smuzhiyun i2c@1120000 { 120*4882a593Smuzhiyun compatible = "snps,designware-i2c"; 121*4882a593Smuzhiyun reg = <0x1120000 0x1000>; 122*4882a593Smuzhiyun #address-cells = <1>; 123*4882a593Smuzhiyun #size-cells = <0>; 124*4882a593Smuzhiyun interrupts = <12 1>; 125*4882a593Smuzhiyun clock-frequency = <400000>; 126*4882a593Smuzhiyun i2c-sda-hold-time-ns = <300>; 127*4882a593Smuzhiyun i2c-sda-falling-time-ns = <300>; 128*4882a593Smuzhiyun i2c-scl-falling-time-ns = <300>; 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun - | 131*4882a593Smuzhiyun i2c@2000 { 132*4882a593Smuzhiyun compatible = "snps,designware-i2c"; 133*4882a593Smuzhiyun reg = <0x2000 0x100>; 134*4882a593Smuzhiyun #address-cells = <1>; 135*4882a593Smuzhiyun #size-cells = <0>; 136*4882a593Smuzhiyun clock-frequency = <400000>; 137*4882a593Smuzhiyun clocks = <&i2cclk>; 138*4882a593Smuzhiyun interrupts = <0>; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun eeprom@64 { 141*4882a593Smuzhiyun compatible = "atmel,24c02"; 142*4882a593Smuzhiyun reg = <0x64>; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun - | 146*4882a593Smuzhiyun i2c@100400 { 147*4882a593Smuzhiyun compatible = "mscc,ocelot-i2c", "snps,designware-i2c"; 148*4882a593Smuzhiyun reg = <0x100400 0x100>, <0x198 0x8>; 149*4882a593Smuzhiyun pinctrl-0 = <&i2c_pins>; 150*4882a593Smuzhiyun pinctrl-names = "default"; 151*4882a593Smuzhiyun #address-cells = <1>; 152*4882a593Smuzhiyun #size-cells = <0>; 153*4882a593Smuzhiyun interrupts = <8>; 154*4882a593Smuzhiyun clocks = <&ahb_clk>; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun... 157