mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 06:39:05 +00:00

Add mux controller support for when the I2C lines are muxed after signals come out of SoC and before they go to any client. Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20250318103622.29979-2-j-choudhary@ti.com Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
97 lines
2.0 KiB
YAML
97 lines
2.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/i2c/ti,omap4-i2c.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: I2C controllers on TI's OMAP and K3 SoCs
|
|
|
|
maintainers:
|
|
- Vignesh Raghavendra <vigneshr@ti.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- ti,omap2420-i2c
|
|
- ti,omap2430-i2c
|
|
- ti,omap3-i2c
|
|
- ti,omap4-i2c
|
|
- items:
|
|
- enum:
|
|
- ti,am4372-i2c
|
|
- ti,am64-i2c
|
|
- ti,am654-i2c
|
|
- ti,j721e-i2c
|
|
- const: ti,omap4-i2c
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
clock-names:
|
|
const: fck
|
|
|
|
power-domains: true
|
|
|
|
ti,hwmods:
|
|
description:
|
|
Must be "i2c<n>", n being the instance number (1-based).
|
|
This property is applicable only on legacy platforms mainly omap2/3
|
|
and ti81xx and should not be used on other platforms.
|
|
$ref: /schemas/types.yaml#/definitions/string
|
|
deprecated: true
|
|
|
|
mux-states:
|
|
description:
|
|
mux controller node to route the I2C signals from SoC to clients.
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
|
|
allOf:
|
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- ti,omap2420-i2c
|
|
- ti,omap2430-i2c
|
|
- ti,omap3-i2c
|
|
- ti,omap4-i2c
|
|
|
|
then:
|
|
properties:
|
|
ti,hwmods:
|
|
items:
|
|
- pattern: "^i2c([1-9])$"
|
|
|
|
else:
|
|
properties:
|
|
ti,hwmods: false
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
main_i2c0: i2c@2000000 {
|
|
compatible = "ti,j721e-i2c", "ti,omap4-i2c";
|
|
reg = <0x2000000 0x100>;
|
|
interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
mux-states = <&i2c_mux 1>;
|
|
};
|