Back to home page

OSCL-LXR

 
 

    


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     };