152 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra124-dpaux.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: NVIDIA Tegra DisplayPort AUX Interface8 9maintainers:10 - Thierry Reding <thierry.reding@gmail.com>11 - Jon Hunter <jonathanh@nvidia.com>12 13description: |14 The Tegra Display Port Auxiliary (DPAUX) pad controller manages two15 pins which can be assigned to either the DPAUX channel or to an I2C16 controller.17 18 When configured for DisplayPort AUX operation, the DPAUX controller19 can also be used to communicate with a DisplayPort device using the20 AUX channel.21 22properties:23 $nodename:24 pattern: "^dpaux@[0-9a-f]+$"25 26 compatible:27 oneOf:28 - enum:29 - nvidia,tegra124-dpaux30 - nvidia,tegra210-dpaux31 - nvidia,tegra186-dpaux32 - nvidia,tegra194-dpaux33 34 - items:35 - const: nvidia,tegra132-dpaux36 - const: nvidia,tegra124-dpaux37 38 reg:39 maxItems: 140 41 interrupts:42 maxItems: 143 44 clocks:45 items:46 - description: clock input for the DPAUX hardware47 - description: reference clock48 49 clock-names:50 items:51 - const: dpaux52 - const: parent53 54 resets:55 items:56 - description: module reset57 58 reset-names:59 items:60 - const: dpaux61 62 power-domains:63 maxItems: 164 65 i2c-bus:66 description: Subnode where I2C slave devices are listed. This67 subnode must be always present. If there are no I2C slave68 devices, an empty node should be added. See ../../i2c/i2c.yaml69 for more information.70 type: object71 72 aux-bus:73 $ref: /schemas/display/dp-aux-bus.yaml#74 75 vdd-supply:76 description: phandle of a supply that powers the DisplayPort77 link78 79patternProperties:80 "^pinmux-[a-z0-9]+$":81 description:82 Since only three configurations are possible, only three child83 nodes are needed to describe the pin mux'ing options for the84 DPAUX pads. Furthermore, given that the pad functions are only85 applicable to a single set of pads, the child nodes only need86 to describe the pad group the functions are being applied to87 rather than the individual pads.88 type: object89 properties:90 groups:91 const: dpaux-io92 93 function:94 enum:95 - aux96 - i2c97 - off98 99 additionalProperties: false100 101 required:102 - groups103 - function104 105additionalProperties: false106 107required:108 - compatible109 - reg110 - interrupts111 - clocks112 - clock-names113 - resets114 - reset-names115 116examples:117 - |118 #include <dt-bindings/clock/tegra210-car.h>119 #include <dt-bindings/interrupt-controller/arm-gic.h>120 121 dpaux: dpaux@545c0000 {122 compatible = "nvidia,tegra210-dpaux";123 reg = <0x545c0000 0x00040000>;124 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;125 clocks = <&tegra_car TEGRA210_CLK_DPAUX>,126 <&tegra_car TEGRA210_CLK_PLL_DP>;127 clock-names = "dpaux", "parent";128 resets = <&tegra_car 181>;129 reset-names = "dpaux";130 power-domains = <&pd_sor>;131 132 state_dpaux_aux: pinmux-aux {133 groups = "dpaux-io";134 function = "aux";135 };136 137 state_dpaux_i2c: pinmux-i2c {138 groups = "dpaux-io";139 function = "i2c";140 };141 142 state_dpaux_off: pinmux-off {143 groups = "dpaux-io";144 function = "off";145 };146 147 i2c-bus {148 #address-cells = <1>;149 #size-cells = <0>;150 };151 };152