6fdc6e23a7
This doesn't yet do anything in the tools, but make it explicit so we can check either 'unevaluatedProperties' or 'additionalProperties' is present in schemas. 'unevaluatedProperties' is appropriate when including another schema (via '$ref') and all possible properties and/or child nodes are not explicitly listed in the schema with the '$ref'. This is in preparation to add a meta-schema to check for missing 'unevaluatedProperties' or 'additionalProperties'. This has been a constant source of review issues. Acked-by: Mark Brown <broonie@kernel.org> Acked-by: Wolfram Sang <wsa@kernel.org> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-By: Vinod Koul <vkoul@kernel.org> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Link: https://lore.kernel.org/r/20201005183830.486085-2-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
139 lines
3.6 KiB
YAML
139 lines
3.6 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/i2c/i2c-rk3x.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Rockchip RK3xxx I2C controller
|
|
|
|
description:
|
|
This driver interfaces with the native I2C controller present in Rockchip
|
|
RK3xxx SoCs.
|
|
|
|
allOf:
|
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
|
|
|
maintainers:
|
|
- Heiko Stuebner <heiko@sntech.de>
|
|
|
|
# Everything else is described in the common file
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- const: rockchip,rv1108-i2c
|
|
- const: rockchip,rk3066-i2c
|
|
- const: rockchip,rk3188-i2c
|
|
- const: rockchip,rk3228-i2c
|
|
- const: rockchip,rk3288-i2c
|
|
- const: rockchip,rk3399-i2c
|
|
- items:
|
|
- enum:
|
|
- rockchip,rk3036-i2c
|
|
- rockchip,rk3368-i2c
|
|
- const: rockchip,rk3288-i2c
|
|
- items:
|
|
- enum:
|
|
- rockchip,px30-i2c
|
|
- rockchip,rk3308-i2c
|
|
- rockchip,rk3328-i2c
|
|
- const: rockchip,rk3399-i2c
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 1
|
|
items:
|
|
- description:
|
|
For older hardware (rk3066, rk3188, rk3228, rk3288)
|
|
there is one clock that is used both to derive the functional clock
|
|
for the device and as the bus clock.
|
|
For newer hardware (rk3399) this clock is used to derive
|
|
the functional clock
|
|
- description:
|
|
For newer hardware (rk3399) this is the bus clock
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
items:
|
|
- const: i2c
|
|
- const: pclk
|
|
|
|
rockchip,grf:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
Required on RK3066, RK3188 the phandle of the syscon node for
|
|
the general register file (GRF)
|
|
On those SoCs an alias with the correct I2C bus ID
|
|
(bit offset in the GRF) is also required.
|
|
|
|
clock-frequency:
|
|
default: 100000
|
|
description:
|
|
SCL frequency to use (in Hz). If omitted, 100kHz is used.
|
|
|
|
i2c-scl-rising-time-ns:
|
|
default: 1000
|
|
description:
|
|
Number of nanoseconds the SCL signal takes to rise
|
|
(t(r) in I2C specification). If not specified this is assumed to be
|
|
the maximum the specification allows(1000 ns for Standard-mode,
|
|
300 ns for Fast-mode) which might cause slightly slower communication.
|
|
|
|
i2c-scl-falling-time-ns:
|
|
default: 300
|
|
description:
|
|
Number of nanoseconds the SCL signal takes to fall
|
|
(t(f) in the I2C specification). If not specified this is assumed to
|
|
be the maximum the specification allows (300 ns) which might cause
|
|
slightly slower communication.
|
|
|
|
i2c-sda-falling-time-ns:
|
|
default: 300
|
|
description:
|
|
Number of nanoseconds the SDA signal takes to fall
|
|
(t(f) in the I2C specification). If not specified we will use the SCL
|
|
value since they are the same in nearly all cases.
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
|
|
if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- rockchip,rk3066-i2c
|
|
- rockchip,rk3188-i2c
|
|
|
|
then:
|
|
required:
|
|
- rockchip,grf
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/rk3188-cru-common.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
i2c0: i2c@2002d000 {
|
|
compatible = "rockchip,rk3188-i2c";
|
|
reg = <0x2002d000 0x1000>;
|
|
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&cru PCLK_I2C0>;
|
|
clock-names = "i2c";
|
|
rockchip,grf = <&grf>;
|
|
i2c-scl-falling-time-ns = <100>;
|
|
i2c-scl-rising-time-ns = <800>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|