^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/display/dsi-controller.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: Common Properties for DSI Display Panels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Linus Walleij <linus.walleij@linaro.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) This document defines device tree properties common to DSI, Display
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Serial Interface controllers and attached panels. It doesn't constitute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) a device tree binding specification by itself but is meant to be referenced
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) by device tree bindings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) When referenced from panel device tree bindings the properties defined in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) this document are defined as follows. The panel device tree bindings are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) responsible for defining whether each property is required or optional.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Notice: this binding concerns DSI panels connected directly to a master
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) without any intermediate port graph to the panel. Each DSI master
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) can control one to four virtual channels to one panel. Each virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) channel should have a node "panel" for their virtual channel with their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) reg-property set to the virtual channel number, usually there is just
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) one virtual channel, number 0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) $nodename:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) pattern: "^dsi(@.*)?$"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) "#address-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) const: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) "#size-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) const: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) "^panel@[0-3]$":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) description: Panels connected to the DSI link
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) type: object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) minimum: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) maximum: 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) The virtual channel number of a DSI peripheral. Must be in the range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) from 0 to 3, as DSI uses a 2-bit addressing scheme. Some DSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) peripherals respond to more than a single virtual channel. In that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) case the reg property can take multiple entries, one for each virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) channel that the peripheral responds to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) clock-master:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) type: boolean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) Should be enabled if the host is being used in conjunction with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) another DSI host to drive the same peripheral. Hardware supporting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) such a configuration generally requires the data on both the busses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) to be driven by the same clock. Only the DSI host instance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) controlling this clock should contain this property.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) enforce-video-mode:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) type: boolean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) The best option is usually to run a panel in command mode, as this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) gives better control over the panel hardware. However for different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) reasons like broken hardware, missing features or testing, it may be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) useful to be able to force a command mode-capable panel into video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) additionalProperties: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) #include <dt-bindings/gpio/gpio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) dsi@a0351000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) reg = <0xa0351000 0x1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) panel@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) compatible = "sony,acx424akp";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) reg = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) vddi-supply = <&ab8500_ldo_aux1_reg>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) ...