Skip to content

Commit

Permalink
Merge tag 'devicetree-for-5.2' of git://git.kernel.org/pub/scm/linux/…
Browse files Browse the repository at this point in the history
…kernel/git/robh/linux

Pull Devicetree updates from Rob Herring:

 - Fix possible memory leak in reserved-memory failure case

 - Support for DMA parent bus which are not a parent node

 - Clang -Wunsequenced fix

 - Remove some unnecessary prints on memory alloc failures

 - Various printk msg and comment fixes

 - Update DT schema tools repository location

 - Convert simple-framebuffer binding to DT schema

 - Bindings for isl68137 and ir38064 trivial devices

 - New documentation on binding do's and don't's for binding writers to
   ignore

* tag 'devicetree-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (22 commits)
  of: unittest: Remove error printing on OOM
  of: irq: Remove WARN_ON() for kzalloc() failure
  dt-bindings: pinctrl: fix bias-pull,up typo
  dt-bindings: Update schema project location to devicetree.org github group
  of: fix clang -Wunsequenced for be32_to_cpu()
  of/device.c: fix the wrong comments
  dt-bindings: Add isl68137 as a trivial device
  dt-bindings: Add ir38064 as a trivial device
  of: del redundant type conversion
  dt-bindings: mfd: axp20x: Add fallback for axp805
  of: Improve of_phandle_iterator_next() error message
  dt-bindings: connector: Spelling mistake
  dt-bindings: Add schemas for simple-framebuffer
  of: address: Add support for the parent DMA bus
  of: address: Retrieve a parent through a callback in __of_translate_address
  dt-bindings: bus: Add binding for the Allwinner MBUS controller
  dt-bindings: interconnect: Add a dma interconnect name
  of: use correct function prototype for of_overlay_fdt_apply()
  of: reserved_mem: fix reserve memory leak
  of: property: Document that of_graph_get_endpoint_by_regs needs of_node_put
  ...
  • Loading branch information
Linus Torvalds committed May 8, 2019
2 parents dd5001e + 2a656cb commit 82efe43
Show file tree
Hide file tree
Showing 28 changed files with 341 additions and 196 deletions.
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/arm/cpus.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ properties:

patternProperties:
'^cpu@[0-9a-f]+$':
type: object
properties:
device_type:
const: cpu
Expand Down
36 changes: 36 additions & 0 deletions Documentation/devicetree/bindings/arm/sunxi/sunxi-mbus.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Allwinner Memory Bus (MBUS) controller

The MBUS controller drives the MBUS that other devices in the SoC will
use to perform DMA. It also has a register interface that allows to
monitor and control the bandwidth and priorities for masters on that
bus.

Required properties:
- compatible: Must be one of:
- allwinner,sun5i-a13-mbus
- reg: Offset and length of the register set for the controller
- clocks: phandle to the clock driving the controller
- dma-ranges: See section 2.3.9 of the DeviceTree Specification
- #interconnect-cells: Must be one, with the argument being the MBUS
port ID

Each device having to perform their DMA through the MBUS must have the
interconnects and interconnect-names properties set to the MBUS
controller and with "dma-mem" as the interconnect name.

Example:

mbus: dram-controller@1c01000 {
compatible = "allwinner,sun5i-a13-mbus";
reg = <0x01c01000 0x1000>;
clocks = <&ccu CLK_MBUS>;
dma-ranges = <0x00000000 0x40000000 0x20000000>;
#interconnect-cells = <1>;
};

fe0: display-frontend@1e00000 {
compatible = "allwinner,sun5i-a13-display-frontend";
...
interconnects = <&mbus 19>;
interconnect-names = "dma-mem";
};
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Required properties for usb-c-connector with power delivery support:
Required nodes:
- any data bus to the connector should be modeled using the OF graph bindings
specified in bindings/graph.txt, unless the bus is between parent node and
the connector. Since single connector can have multpile data buses every bus
the connector. Since single connector can have multiple data buses every bus
has assigned OF graph port number as follows:
0: High Speed (HS), present in all connectors,
1: Super Speed (SS), present in SS capable connectors,
Expand Down

This file was deleted.

This file was deleted.

91 changes: 0 additions & 91 deletions Documentation/devicetree/bindings/display/simple-framebuffer.txt

This file was deleted.

160 changes: 160 additions & 0 deletions Documentation/devicetree/bindings/display/simple-framebuffer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/simple-framebuffer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Simple Framebuffer Device Tree Bindings

maintainers:
- Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
- Hans de Goede <hdegoede@redhat.com>

description: |+
A simple frame-buffer describes a frame-buffer setup by firmware or
the bootloader, with the assumption that the display hardware has
already been set up to scan out from the memory pointed to by the
reg property.
Since simplefb nodes represent runtime information they must be
sub-nodes of the chosen node (*). Simplefb nodes must be named
framebuffer@<address>.
If the devicetree contains nodes for the display hardware used by a
simplefb, then the simplefb node must contain a property called
display, which contains a phandle pointing to the primary display
hw node, so that the OS knows which simplefb to disable when handing
over control to a driver for the real hardware. The bindings for the
hw nodes must specify which node is considered the primary node.
It is advised to add display# aliases to help the OS determine how
to number things. If display# aliases are used, then if the simplefb
node contains a display property then the /aliases/display# path
must point to the display hw node the display property points to,
otherwise it must point directly to the simplefb node.
If a simplefb node represents the preferred console for user
interaction, then the chosen node stdout-path property should point
to it, or to the primary display hw node, as with display#
aliases. If display aliases are used then it should be set to the
alias instead.
It is advised that devicetree files contain pre-filled, disabled
framebuffer nodes, so that the firmware only needs to update the
mode information and enable them. This way if e.g. later on support
for more display clocks get added, the simplefb nodes will already
contain this info and the firmware does not need to be updated.
If pre-filled framebuffer nodes are used, the firmware may need
extra information to find the right node. In that case an extra
platform specific compatible and platform specific properties should
be used and documented.
properties:
compatible:
items:
- enum:
- allwinner,simple-framebuffer
- amlogic,simple-framebuffer
- const: simple-framebuffer

reg:
description: Location and size of the framebuffer memory

clocks:
description: List of clocks used by the framebuffer.

power-domains:
description: List of power domains used by the framebuffer.

width:
$ref: /schemas/types.yaml#/definitions/uint32
description: Width of the framebuffer in pixels

height:
$ref: /schemas/types.yaml#/definitions/uint32
description: Height of the framebuffer in pixels

stride:
$ref: /schemas/types.yaml#/definitions/uint32
description: Number of bytes of a line in the framebuffer

format:
description: >
Format of the framebuffer:
* `a8b8g8r8` - 32-bit pixels, d[31:24]=a, d[23:16]=b, d[15:8]=g, d[7:0]=r
* `r5g6b5` - 16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b
enum:
- a8b8g8r8
- r5g6b5

display:
$ref: /schemas/types.yaml#/definitions/phandle
description: Primary display hardware node

allwinner,pipeline:
description: Pipeline used by the framebuffer on Allwinner SoCs
enum:
- de_be0-lcd0
- de_be0-lcd0-hdmi
- de_be0-lcd0-tve0
- de_be1-lcd0
- de_be1-lcd1-hdmi
- de_fe0-de_be0-lcd0
- de_fe0-de_be0-lcd0-hdmi
- de_fe0-de_be0-lcd0-tve0
- mixer0-lcd0
- mixer0-lcd0-hdmi
- mixer1-lcd1-hdmi
- mixer1-lcd1-tve

amlogic,pipeline:
description: Pipeline used by the framebuffer on Amlogic SoCs
enum:
- vpu-cvbs
- vpu-hdmi

patternProperties:
"^[a-zA-Z0-9-]+-supply$":
$ref: /schemas/types.yaml#/definitions/phandle
description:
Regulators used by the framebuffer. These should be named
according to the names in the device design.

required:
# The binding requires also reg, width, height, stride and format,
# but usually they will be filled by the bootloader.
- compatible

additionalProperties: false

examples:
- |
aliases {
display0 = &lcdc0;
};
chosen {
#address-cells = <1>;
#size-cells = <1>;
stdout-path = "display0";
framebuffer0: framebuffer@1d385000 {
compatible = "simple-framebuffer";
reg = <0x1d385000 3840000>;
width = <1600>;
height = <1200>;
stride = <3200>;
format = "r5g6b5";
clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
lcd-supply = <&reg_dc1sw>;
display = <&lcdc0>;
};
};
soc@1c00000 {
lcdc0: lcdc@1c0c000 {
compatible = "allwinner,sun4i-a10-lcdc";
};
};
...
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ interconnect-names : List of interconnect path name strings sorted in the same
interconnect-names to match interconnect paths with interconnect
specifier pairs.

Reserved interconnect names:
* dma-mem: Path from the device to the main memory of
the system

Example:

sdhci@7864000 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ required:

patternProperties:
"^v2m@[0-9a-f]+$":
type: object
description: |
* GICv2m extension for MSI/MSI-x support (Optional)
Expand Down
Loading

0 comments on commit 82efe43

Please sign in to comment.