Skip to content

Commit

Permalink
Merge tag 'xilinx-v2021.2' of https://github.com/Xilinx/linux-xlnx.git
Browse files Browse the repository at this point in the history
Move master to xilinx tag 2021.2. The merge was pretty straight with
'drivers/spi/spi-cadence-quadspi.c' being the one file with a minor
conflict to handle.

* tag 'xilinx-v2021.2': (231 commits)
  iio: adc: versal-sysmon: Add runtime resume function for sysmon
  nvmem: Add driver for BBRAM and volatile user keys access
  dt-bindings: nvmem: Added nodes for BBRAM and volatile user keys
  firmware: xilinx: Add support to access BBRAM and volatile user keys
  spi: spi-zynzmp-gqspi: Increase timeout interval during data transfer
  phy: xilinx-hdmi: Add xhdmiphy_clk_srcsel and xhdmiphy_set_lrate functions
  phy: xilinx-hdmi: Implement GT linerate and rxch4_gpio dt properties
  dt: bindings: phy: Add dt entries for max GT linerates
  mtd: rawnand: onfi: Fix endianness when reading NV-DDR values
  drm: xlnx: pl_disp: Update max number of supported planes
  engine: xilinx: frmbuf: Correct ADDR3 register offset to support 3 planar yuv444
  phy: xilinx-xhdmiphy: Add clock detector module reset
  phy: xilinx-xhdmiphy: Fix macro values
  phy: xilinx-xhdmiphy: Fix return values
  phy: Fix comments for nchannels reset_gt and linerate options
  drm: xlnx: dptx: Fix extended receiver capability field read
  clocking-wizard: Support higher frequency accuracy
  drm: xlnx: hdmi: Add FRL support in PIO interrupt handler
  drm: xlnx: hdmi: Add FRL interrupt handler
  drm: xlnx: hdmi: Add FRL mode support in mode set
  ...

Signed-off-by: Nuno Sá <[email protected]>
  • Loading branch information
nunojsa committed Sep 6, 2022
2 parents ff59950 + f95c570 commit 8290da6
Show file tree
Hide file tree
Showing 191 changed files with 19,129 additions and 1,803 deletions.
84 changes: 84 additions & 0 deletions Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,87 @@ Description:
# cat /sys/devices/platform/firmware\:zynqmp-firmware/last_reset_reason

Users: Xilinx

What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_*
Date: Jul 2021
KernelVersion: TBD
Contact: "Ronak Jain" <[email protected]>
Description:
This sysfs interface allows to configure features at runtime.
The user can enable or disable features running at firmware.
Also, the user can configure the parameters of the features
at runtime. The supported features are over temperature and
external watchdog. Here, the external watchdog is completely
different than the /dev/watchdog as the external watchdog is
running on the firmware and it is used to monitor the health
of firmware not APU(Linux). Also, the external watchdog is
interfaced outside of the zynqmp soc.

By default the features are disabled in the firmware. The user
can enable features by querying appropriate config id of the
features.

The default limit for the over temperature is 90 Degree Celsius.
The default timer interval for the external watchdog is 570ms.

The supported config ids are for the feature configuration is,
1. PM_FEATURE_OVERTEMP_STATUS = 1, the user can enable or
disable the over temperature feature.
2. PM_FEATURE_OVERTEMP_VALUE = 2, the user can configure the
over temperature limit in Degree Celsius.
3. PM_FEATURE_EXTWDT_STATUS = 3, the user can enable or disable
the external watchdog feature.
4. PM_FEATURE_EXTWDT_VALUE = 4, the user can configure the
external watchdog feature.

Usage:

Enable over temperature feature
# echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
# echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

Check whether the over temperature feature is enabled or not
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
The expected result is 1.

Disable over temperature feature
# echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
# echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

Check whether the over temperature feature is disabled or not
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
The expected result is 0.

Configure over temperature limit to 50 Degree Celsius
# echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
# echo 50 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

Check whether the over temperature limit is configured or not
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
The expected result is 50.

Enable external watchdog feature
# echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
# echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

Check whether the external watchdog feature is enabled or not
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
The expected result is 1.

Disable external watchdog feature
# echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
# echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

Check whether the external watchdog feature is disabled or not
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
The expected result is 0.

Configure external watchdog timer interval to 500ms
# echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
# echo 500 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

Check whether the external watchdog timer interval is configured or not
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
The expected result is 500.

Users: Xilinx
25 changes: 19 additions & 6 deletions Documentation/devicetree/bindings/display/xlnx/xlnx,dp-tx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ maintainers:
description: |
The Xilinx DisplayPort Tx Subsystem contains several subcores to implement
a DisplayPort Transmitter and outputs video data using DisplayPort protocol.
For more details, please refer to PG199 at https://www.xilinx.com/support/documentation/ip_documentation/dp_tx_subsystem/v2_1/pg199-displayport-tx-subsystem.pdf
For more details, please refer to PG199 at
https://www.xilinx.com/support/documentation/ip_documentation/dp_tx_subsystem/v2_1/pg199-displayport-tx-subsystem.pdf
properties:
compatible:
Expand All @@ -21,12 +22,13 @@ properties:
- xlnx,v-dp-txss-3.0

reg:
maxItems: 1
maxItems: 2
description: DisplayPort Transmitter Subsystem registers

reg-names:
items:
- const: dp_base
- const: gt_quad_base

interrupts:
maxItems: 1
Expand Down Expand Up @@ -88,6 +90,15 @@ properties:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [2, 3, 4, 5, 6, 7, 8]

xlnx,versal-gt:
type: boolean
description: |
Boolean property present when versal GT is present in design.
xlnx,xilinx-vfmc:
description: phandle of xilinx video FMC node
$ref: /schemas/types.yaml#/definitions/phandle

ports:
type: object

Expand Down Expand Up @@ -133,22 +144,24 @@ required:
additionalProperties: false

examples:
- |
- |
bus {
#address-cells = <2>;
#size-cells = <2>;
v_dp_txss1@a0100000 {
compatible = "xlnx,v-dp-txss-3.0";
reg = <0x0 0xa0100000 0x0 0x40000>;
reg-names = "dp_base";
reg = <0x0 0xa0100000 0x0 0x40000>, <0x0 0xa4080000 0x0 0x10000>;
reg-names = "dp_base", "gt_quad_base";
clock-names = "s_axi_aclk", "tx_vid_clk";
clocks = <&zynqmp_clk 71>, <&si570_1>;
interrupts = <0 92 4>;
xlnx,max-lanes = <4>;
xlnx,max-link-rate = <810000>;
xlnx,bpc = <8>;
xlnx,audio-chan = <2>;
xlnx,audio-channels = <2>;
xlnx,versal-gt;
xlnx,xilinx-vfmc = <&xfmc>;
phy-names = "dp-phy0", "dp-phy1", "dp-phy2", "dp-phy3";
phys = <&vphy_lane0 0 1 1 0>, <&vphy_lane1 0 1 1 0>,
<&vphy_lane2 0 1 1 0>, <&vphy_lane3 0 1 1 0>;
Expand Down
156 changes: 156 additions & 0 deletions Documentation/devicetree/bindings/display/xlnx/xlnx,v-hdmi-txss1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/xlnx/xlnx,v-hdmi-txss1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Xilinx HDMI Transmitter Subsystem

maintainers:
- Venkateshwar Rao Gannavarapu <[email protected]>

description: |
The Xilinx HDMI Tx Subsystem contains several subcores to implement
a HDMI Transmitter and outputs video data using HDMI protocol.
For more details refer to PG350 Xilinx HDMI-2.1 Tx Subsystem.
properties:
compatible:
items:
- enum:
- xlnx,v-hdmi-txss1-1.1

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
description: List of clock specifiers
items:
- description: AXI Lite CPU clock
- description: Link clock
- description: Video clock
- description: Fixed Rate Link clock
- description: AXI4-Stream Video clock

clock-names:
items:
- const: s_axi_cpu_aclk
- const: link_clk
- const: video_clk
- const: frl_clk
- const: s_axis_video_aclk

phys:
description: This denotes phandles for phy lanes registered
for HDMI protocol. HDMI always require 4 lanes

phy-names:
items:
- const: hdmi-phy0
- const: hdmi-phy1
- const: hdmi-phy2
- const: hdmi-phy3

xlnx,input-pixels-per-clock:
description: Configurable samples per clock.
Possible values are 4, 8.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [4, 8]

xlnx,max-bits-per-component:
description: |
Max BPC value that IP configured with. For example if IP is configured
with 12 BPC means it supports (8, 10, 12) up to 12bpc.
Possible values are 8, 10, 12, 16.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [8, 10, 12, 16]

xlnx,vid-interface:
description: Supported video interface.
Possible values are 0 for AXI4-Stream,
1 for Native and 2 for Native-IDE interface.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [0, 1, 2]

xlnx,max-frl-rate:
description: Maximum FRL Rate.
Possible values are 0 for TMDS mode,
1 to 6 for FRL mode of operation.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [0, 1, 2, 3, 4, 5, 6]

ports:
type: object

properties:
port@0:
type: object
description: |
Output / source port node, endpoint describing modules
connected the HDMI transmitter
properties:
reg:
const: 0

endpoint:
type: object

properties:

remote-endpoint: true

required:
- remote-endpoint

required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- phys
- phy-names
- xlnx,input-pixels-per-clock
- xlnx,max-bits-per-component
- xlnx,vid-interface
- xlnx,max-frl-rate
- ports

additionalProperties: false

examples:
- |
v_hdmi_txss1@80020000 {
compatible = "xlnx,v-hdmi-txss1-1.1";
reg = <0x80020000 0x20000>;
interrupts = <0 91 4>;
clock-names = "s_axi_cpu_aclk", "link_clk", "video_clk", "frl_clk", "s_axis_video_aclk";
clocks = <&zynqmp_clk 71>, <&misc_clk_1>, <&misc_clk_3>, <&misc_clk_4>, <&misc_clk_5>;
xlnx,input-pixels-per-clock = <4>;
xlnx,max-bits-per-component = <0x8>;
xlnx,vid-interface = <0>;
xlnx,max-frl-rate = <0x6>;
phy-names = "hdmi-phy0", "hdmi-phy1", "hdmi-phy2", "hdmi-phy3";
phys = <&hdmiphy_lane0 0 1 1 1>, <&hdmiphy_lane1 0 1 1 1>,
<&hdmiphy_lane2 0 1 1 1>, <&hdmiphy_lane3 0 1 1 1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
hdmi_encoder: endpoint {
remote-endpoint = <&dmaengine_crtc>;
};
};
};
};
...
6 changes: 5 additions & 1 deletion Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,11 @@ axi_vdma_0: axivdma@40030000 {
Required properties:
- dmas: a list of <[Video DMA device phandle] [Channel ID]> pairs,
where Channel ID is '0' for write/tx and '1' for read/rx
channel.
channel. For MCMDA, MM2S channel(write/tx) ID start from
'0' and is in [0-15] range. S2MM channel(read/rx) ID start
from '16' and is in [16-31] range. These channels ID are
fixed irrespective of IP configuration.

- dma-names: a list of DMA channel names, one per "dmas" entry

Example:
Expand Down
11 changes: 7 additions & 4 deletions Documentation/devicetree/bindings/dma/xilinx/xilinx_frmbuf.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ is format aware, only one buffer pointer is needed by the IP blocks even
when planar or semi-planar format are used.

FB Read Required propertie(s):
- compatible : Should be "xlnx,axi-frmbuf-rd-v2.1". Older string
- compatible : Should be "xlnx,axi-frmbuf-rd-v2.1" or
"xlnx,axi-frmbuf-rd-v2.2". Older string
"xlnx,axi-frmbuf-rd-v2" is now deprecated.

Note: Compatible string "xlnx,axi-frmbuf-rd" and the hardware it
represented is no longer supported.

FB Write Required propertie(s):
- compatible : Should be "xlnx,axi-frmbuf-wr-v2.1". Older string
- compatible : Should be "xlnx,axi-frmbuf-wr-v2.1" or
"xlnx,axi-frmbuf-wr-v2.2". Older string
"xlnx,axi-frmbuf-wr-v2" is now deprecated.

Note: Compatible string "xlnx,axi-frmbuf-wr" and the hardware it
Expand All @@ -37,9 +39,9 @@ Required Properties Common to both FB Read and FB Write for v2.1:
- clocks: Reference to the AXI Streaming clock feeding the AP_CLK
- clock-names: Must have "ap_clk"
- xlnx,max-height : Maximum number of lines.
Valid range from 64 to 4320.
Valid range from 64 to 8640.
- xlnx,max-width : Maximum number of pixels in a line.
Valid range from 64 to 8192.
Valid range from 64 to 15360.

Optional Properties Common to both FB Read and FB Write for v2.1:
- xlnx,dma-align : DMA alignment required in bytes.
Expand Down Expand Up @@ -71,6 +73,7 @@ RGBX12 xbgr2121212 V4L2_PIX_FMT_XBGR40 <not supported>
RGBX16 rgb16 V4L2_PIX_FMT_BGR40 <not supported>
YUV8 vuy888 V4L2_PIX_FMT_VUY24 DRM_FORMAT_VUY888
YUVX8 xvuy8888 V4L2_PIX_FMT_XVUY32 DRM_FORMAT_XVUY8888
Y_U_V8 y_u_v8 V4L2_PIX_FMT_YUV444M DRM_FORMAT_YUV444
YUYV8 yuyv V4L2_PIX_FMT_YUYV DRM_FORMAT_YUYV
UYVY8 uyvy V4L2_PIX_FMT_UYVY DRM_FORMAT_UYVY
YUVA8 avuy8888 <not supported> DRM_FORMAT_AVUY
Expand Down
19 changes: 0 additions & 19 deletions Documentation/devicetree/bindings/fpga/xilinx-zynq-fpga-mgr.txt

This file was deleted.

Loading

0 comments on commit 8290da6

Please sign in to comment.