7677fdbc03
Tesla FSD is a derivative of Samsung Exynos SoC, thus just like the others it reuses several devices from older designs. Historically we kept the old (block's) compatible only. This works fine and there is no bug here, however guidelines expressed in Documentation/devicetree/bindings/writing-bindings.rst state that: 1. Compatibles should be specific. 2. We should add new compatibles in case of bugs or features. Add Tesla FSD compatible specific to be used with an existing fallback. Acked-by: Rob Herring <robh@kernel.org> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20231205092229.19135-2-krzysztof.kozlowski@linaro.org Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
143 lines
3.5 KiB
YAML
143 lines
3.5 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/i2c/i2c-exynos5.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Samsung's High Speed I2C controller
|
|
|
|
maintainers:
|
|
- Krzysztof Kozlowski <krzk@kernel.org>
|
|
|
|
description: |
|
|
The Samsung's High Speed I2C controller is used to interface with I2C devices
|
|
at various speeds ranging from 100kHz to 3.4MHz.
|
|
|
|
In case the HSI2C controller is encapsulated within USI block (it's the case
|
|
e.g. for Exynos850 and Exynos Auto V9 SoCs), it might be also necessary to
|
|
define USI node in device tree file, choosing "i2c" configuration. Please see
|
|
Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml for details.
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- samsung,exynos5250-hsi2c # Exynos5250 and Exynos5420
|
|
- samsung,exynos5260-hsi2c # Exynos5260
|
|
- samsung,exynos7-hsi2c # Exynos7
|
|
- samsung,exynosautov9-hsi2c
|
|
- items:
|
|
- enum:
|
|
- samsung,exynos5433-hsi2c
|
|
- tesla,fsd-hsi2c
|
|
- const: samsung,exynos7-hsi2c
|
|
- items:
|
|
- enum:
|
|
- samsung,exynos850-hsi2c
|
|
- const: samsung,exynosautov9-hsi2c
|
|
- const: samsung,exynos5-hsi2c # Exynos5250 and Exynos5420
|
|
deprecated: true
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clock-frequency:
|
|
default: 100000
|
|
description:
|
|
Desired operating frequency in Hz of the bus.
|
|
|
|
If not specified, the bus operates in fast-speed mode at 100kHz.
|
|
|
|
If specified, the bus operates in high-speed mode only if the
|
|
clock-frequency is >= 1MHz.
|
|
|
|
clocks:
|
|
minItems: 1
|
|
items:
|
|
- description: I2C operating clock
|
|
- description: Bus clock (APB)
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
items:
|
|
- const: hsi2c
|
|
- const: hsi2c_pclk
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
|
|
allOf:
|
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- samsung,exynosautov9-hsi2c
|
|
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 2
|
|
|
|
clock-names:
|
|
minItems: 2
|
|
|
|
required:
|
|
- clock-names
|
|
|
|
else:
|
|
properties:
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/exynos5420.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
hsi2c_8: i2c@12e00000 {
|
|
compatible = "samsung,exynos5250-hsi2c";
|
|
reg = <0x12e00000 0x1000>;
|
|
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clock-frequency = <100000>;
|
|
clocks = <&clock CLK_USI4>;
|
|
clock-names = "hsi2c";
|
|
|
|
pmic@66 {
|
|
/* compatible = "samsung,s2mps11-pmic"; */
|
|
reg = <0x66>;
|
|
};
|
|
};
|
|
|
|
- |
|
|
#include <dt-bindings/clock/exynos850.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
hsi2c_2: i2c@138c0000 {
|
|
compatible = "samsung,exynosautov9-hsi2c";
|
|
reg = <0x138c0000 0xc0>;
|
|
interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&cmu_peri CLK_GOUT_HSI2C2_IPCLK>,
|
|
<&cmu_peri CLK_GOUT_HSI2C2_PCLK>;
|
|
clock-names = "hsi2c", "hsi2c_pclk";
|
|
|
|
pmic@66 {
|
|
/* compatible = "samsung,s2mps11-pmic"; */
|
|
reg = <0x66>;
|
|
};
|
|
};
|