0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/display/tegra/nvidia,tegra124-dpaux.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: NVIDIA Tegra DisplayPort AUX Interface
0008
0009 maintainers:
0010 - Thierry Reding <thierry.reding@gmail.com>
0011 - Jon Hunter <jonathanh@nvidia.com>
0012
0013 description: |
0014 The Tegra Display Port Auxiliary (DPAUX) pad controller manages two
0015 pins which can be assigned to either the DPAUX channel or to an I2C
0016 controller.
0017
0018 When configured for DisplayPort AUX operation, the DPAUX controller
0019 can also be used to communicate with a DisplayPort device using the
0020 AUX channel.
0021
0022 properties:
0023 $nodename:
0024 pattern: "^dpaux@[0-9a-f]+$"
0025
0026 compatible:
0027 oneOf:
0028 - enum:
0029 - nvidia,tegra124-dpaux
0030 - nvidia,tegra210-dpaux
0031 - nvidia,tegra186-dpaux
0032 - nvidia,tegra194-dpaux
0033
0034 - items:
0035 - const: nvidia,tegra132-dpaux
0036 - const: nvidia,tegra124-dpaux
0037
0038 reg:
0039 maxItems: 1
0040
0041 interrupts:
0042 maxItems: 1
0043
0044 clocks:
0045 items:
0046 - description: clock input for the DPAUX hardware
0047 - description: reference clock
0048
0049 clock-names:
0050 items:
0051 - const: dpaux
0052 - const: parent
0053
0054 resets:
0055 items:
0056 - description: module reset
0057
0058 reset-names:
0059 items:
0060 - const: dpaux
0061
0062 power-domains:
0063 maxItems: 1
0064
0065 i2c-bus:
0066 description: Subnode where I2C slave devices are listed. This
0067 subnode must be always present. If there are no I2C slave
0068 devices, an empty node should be added. See ../../i2c/i2c.yaml
0069 for more information.
0070 type: object
0071
0072 aux-bus:
0073 $ref: /schemas/display/dp-aux-bus.yaml#
0074
0075 vdd-supply:
0076 description: phandle of a supply that powers the DisplayPort
0077 link
0078
0079 patternProperties:
0080 "^pinmux-[a-z0-9]+$":
0081 description:
0082 Since only three configurations are possible, only three child
0083 nodes are needed to describe the pin mux'ing options for the
0084 DPAUX pads. Furthermore, given that the pad functions are only
0085 applicable to a single set of pads, the child nodes only need
0086 to describe the pad group the functions are being applied to
0087 rather than the individual pads.
0088 type: object
0089 properties:
0090 groups:
0091 const: dpaux-io
0092
0093 function:
0094 enum:
0095 - aux
0096 - i2c
0097 - off
0098
0099 additionalProperties: false
0100
0101 required:
0102 - groups
0103 - function
0104
0105 additionalProperties: false
0106
0107 required:
0108 - compatible
0109 - reg
0110 - interrupts
0111 - clocks
0112 - clock-names
0113 - resets
0114 - reset-names
0115
0116 examples:
0117 - |
0118 #include <dt-bindings/clock/tegra210-car.h>
0119 #include <dt-bindings/interrupt-controller/arm-gic.h>
0120
0121 dpaux: dpaux@545c0000 {
0122 compatible = "nvidia,tegra210-dpaux";
0123 reg = <0x545c0000 0x00040000>;
0124 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
0125 clocks = <&tegra_car TEGRA210_CLK_DPAUX>,
0126 <&tegra_car TEGRA210_CLK_PLL_DP>;
0127 clock-names = "dpaux", "parent";
0128 resets = <&tegra_car 181>;
0129 reset-names = "dpaux";
0130 power-domains = <&pd_sor>;
0131 status = "disabled";
0132
0133 state_dpaux_aux: pinmux-aux {
0134 groups = "dpaux-io";
0135 function = "aux";
0136 };
0137
0138 state_dpaux_i2c: pinmux-i2c {
0139 groups = "dpaux-io";
0140 function = "i2c";
0141 };
0142
0143 state_dpaux_off: pinmux-off {
0144 groups = "dpaux-io";
0145 function = "off";
0146 };
0147
0148 i2c-bus {
0149 #address-cells = <1>;
0150 #size-cells = <0>;
0151 };
0152 };