Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) # SPDX-License-Identifier: GPL-2.0
^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/simple-framebuffer.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: Simple Framebuffer Device Tree Bindings
^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)   - Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)   - Hans de Goede <hdegoede@redhat.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) description: |+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)   A simple frame-buffer describes a frame-buffer setup by firmware or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)   the bootloader, with the assumption that the display hardware has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)   already been set up to scan out from the memory pointed to by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)   reg property.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)   Since simplefb nodes represent runtime information they must be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)   sub-nodes of the chosen node (*). Simplefb nodes must be named
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)   framebuffer@<address>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)   If the devicetree contains nodes for the display hardware used by a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)   simplefb, then the simplefb node must contain a property called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)   display, which contains a phandle pointing to the primary display
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)   hw node, so that the OS knows which simplefb to disable when handing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)   over control to a driver for the real hardware. The bindings for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)   hw nodes must specify which node is considered the primary node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)   It is advised to add display# aliases to help the OS determine how
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)   to number things. If display# aliases are used, then if the simplefb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)   node contains a display property then the /aliases/display# path
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)   must point to the display hw node the display property points to,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)   otherwise it must point directly to the simplefb node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)   If a simplefb node represents the preferred console for user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)   interaction, then the chosen node stdout-path property should point
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)   to it, or to the primary display hw node, as with display#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)   aliases. If display aliases are used then it should be set to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)   alias instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)   It is advised that devicetree files contain pre-filled, disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)   framebuffer nodes, so that the firmware only needs to update the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)   mode information and enable them. This way if e.g. later on support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)   for more display clocks get added, the simplefb nodes will already
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)   contain this info and the firmware does not need to be updated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)   If pre-filled framebuffer nodes are used, the firmware may need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)   extra information to find the right node. In that case an extra
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)   platform specific compatible and platform specific properties should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)   be used and documented.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)   compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)       - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)           - allwinner,simple-framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)           - amlogic,simple-framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)       - const: simple-framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)   reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)     description: Location and size of the framebuffer memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)   clocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)     description: List of clocks used by the framebuffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)   power-domains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)     description: List of power domains used by the framebuffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)   width:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)     $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)     description: Width of the framebuffer in pixels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)   height:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)     $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)     description: Height of the framebuffer in pixels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)   stride:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)     $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)     description: Number of bytes of a line in the framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)   format:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)     description: >
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)       Format of the framebuffer:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)         * `a8b8g8r8` - 32-bit pixels, d[31:24]=a, d[23:16]=b, d[15:8]=g, d[7:0]=r
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)         * `r5g6b5` - 16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)     enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)       - a8b8g8r8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)       - r5g6b5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)   display:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)     $ref: /schemas/types.yaml#/definitions/phandle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)     description: Primary display hardware node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)   allwinner,pipeline:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)     description: Pipeline used by the framebuffer on Allwinner SoCs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97)     enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)       - de_be0-lcd0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)       - de_be0-lcd0-hdmi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)       - de_be0-lcd0-tve0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)       - de_be1-lcd0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)       - de_be1-lcd1-hdmi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)       - de_fe0-de_be0-lcd0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)       - de_fe0-de_be0-lcd0-hdmi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)       - de_fe0-de_be0-lcd0-tve0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)       - mixer0-lcd0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)       - mixer0-lcd0-hdmi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)       - mixer1-lcd1-hdmi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)       - mixer1-lcd1-tve
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)   amlogic,pipeline:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)     description: Pipeline used by the framebuffer on Amlogic SoCs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)     enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)       - vpu-cvbs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)       - vpu-hdmi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)   "^[a-zA-Z0-9-]+-supply$":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)     $ref: /schemas/types.yaml#/definitions/phandle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)     description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)       Regulators used by the framebuffer. These should be named
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)       according to the names in the device design.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)   # The binding requires also reg, width, height, stride and format,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)   # but usually they will be filled by the bootloader.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)   - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) allOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)   - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)       properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)         compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)           contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)             const: allwinner,simple-framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)     then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)       required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)         - allwinner,pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)   - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)       properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)         compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)           contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)             const: amlogic,simple-framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)     then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)       required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)         - amlogic,pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)   - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)     / {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)         compatible = "foo";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)         model = "foo";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)         #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)         #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)         chosen {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)             #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)             #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)             framebuffer0: framebuffer@1d385000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)                 compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)                 allwinner,pipeline = "de_be0-lcd0";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)                 reg = <0x1d385000 3840000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)                 width = <1600>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)                 height = <1200>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)                 stride = <3200>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)                 format = "r5g6b5";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)                 clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)                 lcd-supply = <&reg_dc1sw>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)                 display = <&lcdc0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)             };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)         };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)     };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) ...