-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kern…
…el/git/soc/soc Pull ARM SoC driver updates from Arnd Bergmann: "As usual, the drivers/tee and drivers/reset subsystems get merged here, with the expected set of smaller updates and some new hardware support. The tee subsystem now supports device drivers to be attached to a tee, the first example here is a random number driver with its implementation in the secure world. Three new power domain drivers get added for specific chip families: - Broadcom BCM283x chips (used in Raspberry Pi) - Qualcomm Snapdragon phone chips - Xilinx ZynqMP FPGA SoCs One new driver is added to talk to the BPMP firmware on NVIDIA Tegra210 Existing drivers are extended for new SoC variants from NXP, NVIDIA, Amlogic and Qualcomm" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (113 commits) tee: optee: update optee_msg.h and optee_smc.h to dual license tee: add cancellation support to client interface dpaa2-eth: configure the cache stashing amount on a queue soc: fsl: dpio: configure cache stashing destination soc: fsl: dpio: enable frame data cache stashing per software portal soc: fsl: guts: make fsl_guts_get_svr() static hwrng: make symbol 'optee_rng_id_table' static tee: optee: Fix unsigned comparison with less than zero hwrng: Fix unsigned comparison with less than zero tee: fix possible error pointer ctx dereferencing hwrng: optee: Initialize some structs using memset instead of braces tee: optee: Initialize some structs using memset instead of braces soc: fsl: dpio: fix memory leak of a struct qbman on error exit path clk: tegra: dfll: Make symbol 'tegra210_cpu_cvb_tables' static soc: qcom: llcc-slice: Fix typos qcom: soc: llcc-slice: Consolidate some code qcom: soc: llcc-slice: Clear the global drv_data pointer on error drivers: soc: xilinx: Add ZynqMP power domain driver firmware: xilinx: Add APIs to control node status/power dt-bindings: power: Add ZynqMP power domain bindings ...
- Loading branch information
Showing
126 changed files
with
7,122 additions
and
744 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
46 changes: 46 additions & 0 deletions
46
Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
-------------------------------------------------------------------------- | ||
= Zynq UltraScale+ MPSoC nvmem firmware driver binding = | ||
-------------------------------------------------------------------------- | ||
The nvmem_firmware node provides access to the hardware related data | ||
like soc revision, IDCODE... etc, By using the firmware interface. | ||
|
||
Required properties: | ||
- compatible: should be "xlnx,zynqmp-nvmem-fw" | ||
|
||
= Data cells = | ||
Are child nodes of silicon id, bindings of which as described in | ||
bindings/nvmem/nvmem.txt | ||
|
||
------- | ||
Example | ||
------- | ||
firmware { | ||
zynqmp_firmware: zynqmp-firmware { | ||
compatible = "xlnx,zynqmp-firmware"; | ||
method = "smc"; | ||
|
||
nvmem_firmware { | ||
compatible = "xlnx,zynqmp-nvmem-fw"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
/* Data cells */ | ||
soc_revision: soc_revision { | ||
reg = <0x0 0x4>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
= Data consumers = | ||
Are device nodes which consume nvmem data cells. | ||
|
||
For example: | ||
pcap { | ||
... | ||
|
||
nvmem-cells = <&soc_revision>; | ||
nvmem-cell-names = "soc_revision"; | ||
|
||
... | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
Qualcomm RPM/RPMh Power domains | ||
|
||
For RPM/RPMh Power domains, we communicate a performance state to RPM/RPMh | ||
which then translates it into a corresponding voltage on a rail | ||
|
||
Required Properties: | ||
- compatible: Should be one of the following | ||
* qcom,msm8996-rpmpd: RPM Power domain for the msm8996 family of SoC | ||
* qcom,sdm845-rpmhpd: RPMh Power domain for the sdm845 family of SoC | ||
- #power-domain-cells: number of cells in Power domain specifier | ||
must be 1. | ||
- operating-points-v2: Phandle to the OPP table for the Power domain. | ||
Refer to Documentation/devicetree/bindings/power/power_domain.txt | ||
and Documentation/devicetree/bindings/opp/opp.txt for more details | ||
|
||
Refer to <dt-bindings/power/qcom-rpmpd.h> for the level values for | ||
various OPPs for different platforms as well as Power domain indexes | ||
|
||
Example: rpmh power domain controller and OPP table | ||
|
||
#include <dt-bindings/power/qcom-rpmhpd.h> | ||
|
||
opp-level values specified in the OPP tables for RPMh power domains | ||
should use the RPMH_REGULATOR_LEVEL_* constants from | ||
<dt-bindings/power/qcom-rpmhpd.h> | ||
|
||
rpmhpd: power-controller { | ||
compatible = "qcom,sdm845-rpmhpd"; | ||
#power-domain-cells = <1>; | ||
operating-points-v2 = <&rpmhpd_opp_table>; | ||
|
||
rpmhpd_opp_table: opp-table { | ||
compatible = "operating-points-v2"; | ||
|
||
rpmhpd_opp_ret: opp1 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>; | ||
}; | ||
|
||
rpmhpd_opp_min_svs: opp2 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>; | ||
}; | ||
|
||
rpmhpd_opp_low_svs: opp3 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>; | ||
}; | ||
|
||
rpmhpd_opp_svs: opp4 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_SVS>; | ||
}; | ||
|
||
rpmhpd_opp_svs_l1: opp5 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>; | ||
}; | ||
|
||
rpmhpd_opp_nom: opp6 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_NOM>; | ||
}; | ||
|
||
rpmhpd_opp_nom_l1: opp7 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>; | ||
}; | ||
|
||
rpmhpd_opp_nom_l2: opp8 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>; | ||
}; | ||
|
||
rpmhpd_opp_turbo: opp9 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_TURBO>; | ||
}; | ||
|
||
rpmhpd_opp_turbo_l1: opp10 { | ||
opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>; | ||
}; | ||
}; | ||
}; | ||
|
||
Example: rpm power domain controller and OPP table | ||
|
||
rpmpd: power-controller { | ||
compatible = "qcom,msm8996-rpmpd"; | ||
#power-domain-cells = <1>; | ||
operating-points-v2 = <&rpmpd_opp_table>; | ||
|
||
rpmpd_opp_table: opp-table { | ||
compatible = "operating-points-v2"; | ||
|
||
rpmpd_opp_low: opp1 { | ||
opp-level = <1>; | ||
}; | ||
|
||
rpmpd_opp_ret: opp2 { | ||
opp-level = <2>; | ||
}; | ||
|
||
rpmpd_opp_svs: opp3 { | ||
opp-level = <3>; | ||
}; | ||
|
||
rpmpd_opp_normal: opp4 { | ||
opp-level = <4>; | ||
}; | ||
|
||
rpmpd_opp_high: opp5 { | ||
opp-level = <5>; | ||
}; | ||
|
||
rpmpd_opp_turbo: opp6 { | ||
opp-level = <6>; | ||
}; | ||
}; | ||
}; | ||
|
||
Example: Client/Consumer device using OPP table | ||
|
||
leaky-device0@12350000 { | ||
compatible = "foo,i-leak-current"; | ||
reg = <0x12350000 0x1000>; | ||
power-domains = <&rpmhpd SDM845_MX>; | ||
operating-points-v2 = <&leaky_opp_table>; | ||
}; | ||
|
||
|
||
leaky_opp_table: opp-table { | ||
compatible = "operating-points-v2"; | ||
|
||
opp1 { | ||
opp-hz = /bits/ 64 <144000>; | ||
required-opps = <&rpmhpd_opp_low>; | ||
}; | ||
|
||
opp2 { | ||
opp-hz = /bits/ 64 <400000>; | ||
required-opps = <&rpmhpd_opp_ret>; | ||
}; | ||
|
||
opp3 { | ||
opp-hz = /bits/ 64 <20000000>; | ||
required-opps = <&rpmpd_opp_svs>; | ||
}; | ||
|
||
opp4 { | ||
opp-hz = /bits/ 64 <25000000>; | ||
required-opps = <&rpmpd_opp_normal>; | ||
}; | ||
}; |
25 changes: 25 additions & 0 deletions
25
Documentation/devicetree/bindings/power/reset/xlnx,zynqmp-power.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
-------------------------------------------------------------------- | ||
Device Tree Bindings for the Xilinx Zynq MPSoC Power Management | ||
-------------------------------------------------------------------- | ||
The zynqmp-power node describes the power management configurations. | ||
It will control remote suspend/shutdown interfaces. | ||
|
||
Required properties: | ||
- compatible: Must contain: "xlnx,zynqmp-power" | ||
- interrupts: Interrupt specifier | ||
|
||
------- | ||
Example | ||
------- | ||
|
||
firmware { | ||
zynqmp_firmware: zynqmp-firmware { | ||
compatible = "xlnx,zynqmp-firmware"; | ||
method = "smc"; | ||
|
||
zynqmp_power: zynqmp-power { | ||
compatible = "xlnx,zynqmp-power"; | ||
interrupts = <0 35 4>; | ||
}; | ||
}; | ||
}; |
34 changes: 34 additions & 0 deletions
34
Documentation/devicetree/bindings/power/xlnx,zynqmp-genpd.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
----------------------------------------------------------- | ||
Device Tree Bindings for the Xilinx Zynq MPSoC PM domains | ||
----------------------------------------------------------- | ||
The binding for zynqmp-power-controller follow the common | ||
generic PM domain binding[1]. | ||
|
||
[1] Documentation/devicetree/bindings/power/power_domain.txt | ||
|
||
== Zynq MPSoC Generic PM Domain Node == | ||
|
||
Required property: | ||
- Below property should be in zynqmp-firmware node. | ||
- #power-domain-cells: Number of cells in a PM domain specifier. Must be 1. | ||
|
||
Power domain ID indexes are mentioned in | ||
include/dt-bindings/power/xlnx-zynqmp-power.h. | ||
|
||
------- | ||
Example | ||
------- | ||
|
||
firmware { | ||
zynqmp_firmware: zynqmp-firmware { | ||
... | ||
#power-domain-cells = <1>; | ||
... | ||
}; | ||
}; | ||
|
||
sata { | ||
... | ||
power-domains = <&zynqmp_firmware 28>; | ||
... | ||
}; |
27 changes: 27 additions & 0 deletions
27
Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
Broadcom STB SW_INIT-style reset controller | ||
=========================================== | ||
|
||
Broadcom STB SoCs have a SW_INIT-style reset controller with separate | ||
SET/CLEAR/STATUS registers and possibly multiple banks, each of 32 bit | ||
reset lines. | ||
|
||
Please also refer to reset.txt in this directory for common reset | ||
controller binding usage. | ||
|
||
Required properties: | ||
- compatible: should be brcm,brcmstb-reset | ||
- reg: register base and length | ||
- #reset-cells: must be set to 1 | ||
|
||
Example: | ||
|
||
reset: reset-controller@8404318 { | ||
compatible = "brcm,brcmstb-reset"; | ||
reg = <0x8404318 0x30>; | ||
#reset-cells = <1>; | ||
}; | ||
|
||
ðernet_switch { | ||
resets = <&reset>; | ||
reset-names = "switch"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.