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