The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/i2c/st,stm32-i2c.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/i2c/st,stm32-i2c.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: I2C controller embedded in STMicroelectronics STM32 I2C platform
    8 
    9 maintainers:
   10   - Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
   11 
   12 allOf:
   13   - $ref: /schemas/i2c/i2c-controller.yaml#
   14   - if:
   15       properties:
   16         compatible:
   17           contains:
   18             enum:
   19               - st,stm32f7-i2c
   20               - st,stm32mp13-i2c
   21               - st,stm32mp15-i2c
   22     then:
   23       properties:
   24         i2c-scl-rising-time-ns:
   25           default: 25
   26 
   27         i2c-scl-falling-time-ns:
   28           default: 10
   29     else:
   30       properties:
   31         st,syscfg-fmp: false
   32 
   33   - if:
   34       properties:
   35         compatible:
   36           contains:
   37             enum:
   38               - st,stm32f4-i2c
   39     then:
   40       properties:
   41         clock-frequency:
   42           enum: [100000, 400000]
   43 
   44 properties:
   45   compatible:
   46     enum:
   47       - st,stm32f4-i2c
   48       - st,stm32f7-i2c
   49       - st,stm32mp13-i2c
   50       - st,stm32mp15-i2c
   51 
   52   reg:
   53     maxItems: 1
   54 
   55   interrupts:
   56     items:
   57       - description: interrupt ID for I2C event
   58       - description: interrupt ID for I2C error
   59 
   60   interrupt-names:
   61     items:
   62       - const: event
   63       - const: error
   64 
   65   resets:
   66     maxItems: 1
   67 
   68   clocks:
   69     maxItems: 1
   70 
   71   dmas:
   72     items:
   73       - description: RX DMA Channel phandle
   74       - description: TX DMA Channel phandle
   75 
   76   dma-names:
   77     items:
   78       - const: rx
   79       - const: tx
   80 
   81   clock-frequency:
   82     description: Desired I2C bus clock frequency in Hz. If not specified,
   83                  the default 100 kHz frequency will be used.
   84                  For STM32F7, STM32H7 and STM32MP1 SoCs, if timing parameters
   85                  match, the bus clock frequency can be from 1Hz to 1MHz.
   86     default: 100000
   87     minimum: 1
   88     maximum: 1000000
   89 
   90   st,syscfg-fmp:
   91     description: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode
   92       Plus speed is selected by slave.
   93     $ref: "/schemas/types.yaml#/definitions/phandle-array"
   94     items:
   95       - items:
   96           - description: phandle to syscfg
   97           - description: register offset within syscfg
   98           - description: register bitmask for FMP bit
   99 
  100   wakeup-source: true
  101 
  102 required:
  103   - compatible
  104   - reg
  105   - interrupts
  106   - resets
  107   - clocks
  108 
  109 unevaluatedProperties: false
  110 
  111 examples:
  112   - |
  113     #include <dt-bindings/mfd/stm32f7-rcc.h>
  114     #include <dt-bindings/clock/stm32fx-clock.h>
  115     //Example 1 (with st,stm32f4-i2c compatible)
  116       i2c@40005400 {
  117           compatible = "st,stm32f4-i2c";
  118           #address-cells = <1>;
  119           #size-cells = <0>;
  120           reg = <0x40005400 0x400>;
  121           interrupts = <31>,
  122                        <32>;
  123           resets = <&rcc 277>;
  124           clocks = <&rcc 0 149>;
  125       };
  126 
  127   - |
  128     #include <dt-bindings/mfd/stm32f7-rcc.h>
  129     #include <dt-bindings/clock/stm32fx-clock.h>
  130     //Example 2 (with st,stm32f7-i2c compatible)
  131       i2c@40005800 {
  132           compatible = "st,stm32f7-i2c";
  133           #address-cells = <1>;
  134           #size-cells = <0>;
  135           reg = <0x40005800 0x400>;
  136           interrupts = <31>,
  137                        <32>;
  138           resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
  139           clocks = <&rcc 1 CLK_I2C1>;
  140       };
  141 
  142   - |
  143     #include <dt-bindings/mfd/stm32f7-rcc.h>
  144     #include <dt-bindings/clock/stm32fx-clock.h>
  145     //Example 3 (with st,stm32mp15-i2c compatible on stm32mp)
  146     #include <dt-bindings/interrupt-controller/arm-gic.h>
  147     #include <dt-bindings/clock/stm32mp1-clks.h>
  148     #include <dt-bindings/reset/stm32mp1-resets.h>
  149       i2c@40013000 {
  150           compatible = "st,stm32mp15-i2c";
  151           #address-cells = <1>;
  152           #size-cells = <0>;
  153           reg = <0x40013000 0x400>;
  154           interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  155                        <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  156           clocks = <&rcc I2C2_K>;
  157           resets = <&rcc I2C2_R>;
  158           i2c-scl-rising-time-ns = <185>;
  159           i2c-scl-falling-time-ns = <20>;
  160           st,syscfg-fmp = <&syscfg 0x4 0x2>;
  161       };

Cache object: 2468ced184a4f24bd95e3c00110fbdf0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.