1*fe8b45aaSThierry Reding# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*fe8b45aaSThierry Reding%YAML 1.2 3*fe8b45aaSThierry Reding--- 4*fe8b45aaSThierry Reding$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra124-dpaux.yaml# 5*fe8b45aaSThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml# 6*fe8b45aaSThierry Reding 7*fe8b45aaSThierry Redingtitle: NVIDIA Tegra DisplayPort AUX Interface 8*fe8b45aaSThierry Reding 9*fe8b45aaSThierry Redingmaintainers: 10*fe8b45aaSThierry Reding - Thierry Reding <thierry.reding@gmail.com> 11*fe8b45aaSThierry Reding - Jon Hunter <jonathanh@nvidia.com> 12*fe8b45aaSThierry Reding 13*fe8b45aaSThierry Redingdescription: | 14*fe8b45aaSThierry Reding The Tegra Display Port Auxiliary (DPAUX) pad controller manages two 15*fe8b45aaSThierry Reding pins which can be assigned to either the DPAUX channel or to an I2C 16*fe8b45aaSThierry Reding controller. 17*fe8b45aaSThierry Reding 18*fe8b45aaSThierry Reding When configured for DisplayPort AUX operation, the DPAUX controller 19*fe8b45aaSThierry Reding can also be used to communicate with a DisplayPort device using the 20*fe8b45aaSThierry Reding AUX channel. 21*fe8b45aaSThierry Reding 22*fe8b45aaSThierry Redingproperties: 23*fe8b45aaSThierry Reding $nodename: 24*fe8b45aaSThierry Reding pattern: "^dpaux@[0-9a-f]+$" 25*fe8b45aaSThierry Reding 26*fe8b45aaSThierry Reding compatible: 27*fe8b45aaSThierry Reding oneOf: 28*fe8b45aaSThierry Reding - enum: 29*fe8b45aaSThierry Reding - nvidia,tegra124-dpaux 30*fe8b45aaSThierry Reding - nvidia,tegra210-dpaux 31*fe8b45aaSThierry Reding - nvidia,tegra186-dpaux 32*fe8b45aaSThierry Reding - nvidia,tegra194-dpaux 33*fe8b45aaSThierry Reding 34*fe8b45aaSThierry Reding - items: 35*fe8b45aaSThierry Reding - const: nvidia,tegra132-dpaux 36*fe8b45aaSThierry Reding - const: nvidia,tegra124-dpaux 37*fe8b45aaSThierry Reding 38*fe8b45aaSThierry Reding reg: 39*fe8b45aaSThierry Reding maxItems: 1 40*fe8b45aaSThierry Reding 41*fe8b45aaSThierry Reding interrupts: 42*fe8b45aaSThierry Reding maxItems: 1 43*fe8b45aaSThierry Reding 44*fe8b45aaSThierry Reding clocks: 45*fe8b45aaSThierry Reding items: 46*fe8b45aaSThierry Reding - description: clock input for the DPAUX hardware 47*fe8b45aaSThierry Reding - description: reference clock 48*fe8b45aaSThierry Reding 49*fe8b45aaSThierry Reding clock-names: 50*fe8b45aaSThierry Reding items: 51*fe8b45aaSThierry Reding - const: dpaux 52*fe8b45aaSThierry Reding - const: parent 53*fe8b45aaSThierry Reding 54*fe8b45aaSThierry Reding resets: 55*fe8b45aaSThierry Reding items: 56*fe8b45aaSThierry Reding - description: module reset 57*fe8b45aaSThierry Reding 58*fe8b45aaSThierry Reding reset-names: 59*fe8b45aaSThierry Reding items: 60*fe8b45aaSThierry Reding - const: dpaux 61*fe8b45aaSThierry Reding 62*fe8b45aaSThierry Reding power-domains: 63*fe8b45aaSThierry Reding maxItems: 1 64*fe8b45aaSThierry Reding 65*fe8b45aaSThierry Reding i2c-bus: 66*fe8b45aaSThierry Reding description: Subnode where I2C slave devices are listed. This 67*fe8b45aaSThierry Reding subnode must be always present. If there are no I2C slave 68*fe8b45aaSThierry Reding devices, an empty node should be added. See ../../i2c/i2c.yaml 69*fe8b45aaSThierry Reding for more information. 70*fe8b45aaSThierry Reding type: object 71*fe8b45aaSThierry Reding 72*fe8b45aaSThierry Reding aux-bus: 73*fe8b45aaSThierry Reding $ref: /schemas/display/dp-aux-bus.yaml# 74*fe8b45aaSThierry Reding 75*fe8b45aaSThierry Reding vdd-supply: 76*fe8b45aaSThierry Reding description: phandle of a supply that powers the DisplayPort 77*fe8b45aaSThierry Reding link 78*fe8b45aaSThierry Reding 79*fe8b45aaSThierry RedingpatternProperties: 80*fe8b45aaSThierry Reding "^pinmux-[a-z0-9]+$": 81*fe8b45aaSThierry Reding description: 82*fe8b45aaSThierry Reding Since only three configurations are possible, only three child 83*fe8b45aaSThierry Reding nodes are needed to describe the pin mux'ing options for the 84*fe8b45aaSThierry Reding DPAUX pads. Furthermore, given that the pad functions are only 85*fe8b45aaSThierry Reding applicable to a single set of pads, the child nodes only need 86*fe8b45aaSThierry Reding to describe the pad group the functions are being applied to 87*fe8b45aaSThierry Reding rather than the individual pads. 88*fe8b45aaSThierry Reding type: object 89*fe8b45aaSThierry Reding properties: 90*fe8b45aaSThierry Reding groups: 91*fe8b45aaSThierry Reding const: dpaux-io 92*fe8b45aaSThierry Reding 93*fe8b45aaSThierry Reding function: 94*fe8b45aaSThierry Reding enum: 95*fe8b45aaSThierry Reding - aux 96*fe8b45aaSThierry Reding - i2c 97*fe8b45aaSThierry Reding - off 98*fe8b45aaSThierry Reding 99*fe8b45aaSThierry Reding additionalProperties: false 100*fe8b45aaSThierry Reding 101*fe8b45aaSThierry Reding required: 102*fe8b45aaSThierry Reding - groups 103*fe8b45aaSThierry Reding - function 104*fe8b45aaSThierry Reding 105*fe8b45aaSThierry RedingadditionalProperties: false 106*fe8b45aaSThierry Reding 107*fe8b45aaSThierry Redingrequired: 108*fe8b45aaSThierry Reding - compatible 109*fe8b45aaSThierry Reding - reg 110*fe8b45aaSThierry Reding - interrupts 111*fe8b45aaSThierry Reding - clocks 112*fe8b45aaSThierry Reding - clock-names 113*fe8b45aaSThierry Reding - resets 114*fe8b45aaSThierry Reding - reset-names 115*fe8b45aaSThierry Reding 116*fe8b45aaSThierry Redingexamples: 117*fe8b45aaSThierry Reding - | 118*fe8b45aaSThierry Reding #include <dt-bindings/clock/tegra210-car.h> 119*fe8b45aaSThierry Reding #include <dt-bindings/interrupt-controller/arm-gic.h> 120*fe8b45aaSThierry Reding 121*fe8b45aaSThierry Reding dpaux: dpaux@545c0000 { 122*fe8b45aaSThierry Reding compatible = "nvidia,tegra210-dpaux"; 123*fe8b45aaSThierry Reding reg = <0x545c0000 0x00040000>; 124*fe8b45aaSThierry Reding interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 125*fe8b45aaSThierry Reding clocks = <&tegra_car TEGRA210_CLK_DPAUX>, 126*fe8b45aaSThierry Reding <&tegra_car TEGRA210_CLK_PLL_DP>; 127*fe8b45aaSThierry Reding clock-names = "dpaux", "parent"; 128*fe8b45aaSThierry Reding resets = <&tegra_car 181>; 129*fe8b45aaSThierry Reding reset-names = "dpaux"; 130*fe8b45aaSThierry Reding power-domains = <&pd_sor>; 131*fe8b45aaSThierry Reding 132*fe8b45aaSThierry Reding state_dpaux_aux: pinmux-aux { 133*fe8b45aaSThierry Reding groups = "dpaux-io"; 134*fe8b45aaSThierry Reding function = "aux"; 135*fe8b45aaSThierry Reding }; 136*fe8b45aaSThierry Reding 137*fe8b45aaSThierry Reding state_dpaux_i2c: pinmux-i2c { 138*fe8b45aaSThierry Reding groups = "dpaux-io"; 139*fe8b45aaSThierry Reding function = "i2c"; 140*fe8b45aaSThierry Reding }; 141*fe8b45aaSThierry Reding 142*fe8b45aaSThierry Reding state_dpaux_off: pinmux-off { 143*fe8b45aaSThierry Reding groups = "dpaux-io"; 144*fe8b45aaSThierry Reding function = "off"; 145*fe8b45aaSThierry Reding }; 146*fe8b45aaSThierry Reding 147*fe8b45aaSThierry Reding i2c-bus { 148*fe8b45aaSThierry Reding #address-cells = <1>; 149*fe8b45aaSThierry Reding #size-cells = <0>; 150*fe8b45aaSThierry Reding }; 151*fe8b45aaSThierry Reding }; 152