mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-18 04:47:17 +07:00
193c9d23a0
Align compatible strings for several IP blocks present on Tegra chips with the latest doctrine from the DT maintainers: http://marc.info/?l=devicetree&m=142255654213019&w=2 The primary objective here is to avoid checkpatch warnings, per: http://marc.info/?l=linux-tegra&m=142201349727836&w=2 DT binding text files have been updated for the following IP blocks: - PCIe - SOR - SoC timers - AHB "gizmo" - APB_MISC - pinmux control - UART - PWM - I2C - SPI - RTC - PMC - eFuse - AHCI - HDA - XUSB_PADCTRL - SDHCI - SOC_THERM - AHUB - I2S - EHCI - USB PHY N.B. The nvidia,tegra20-timer compatible string is removed from the nvidia,tegra30-timer.txt documentation file because it's already mentioned in the nvidia,tegra20-timer.txt documentation file. This second version takes into account the following requests from Rob Herring <robherring2@gmail.com>: - Per-IP block patches have been combined into a single patch - Explicit documentation about which compatible strings are actually matched by the driver has been removed. In its place is implicit documentation that loosely follows Rob's prescribed format: "Must contain '"nvidia,<chip>-pcie", "nvidia,tegra20-pcie"' where <chip> is tegra30, tegra132, ..." [...] "You should attempt to document known values of <chip> if you use it" Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Alexandre Courbot <gnurou@gmail.com> Cc: Dylan Reid <dgreid@chromium.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Jingchang Lu <jingchang.lu@freescale.com> Cc: John Crispin <blogic@openwrt.org> Cc: Kumar Gala <galak@codeaurora.org> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mikko Perttunen <mperttunen@nvidia.com> Cc: Murali Karicheri <m-karicheri2@ti.com> Cc: Paul Walmsley <pwalmsley@nvidia.com> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Peter De Schrijver <pdeschrijver@nvidia.com> Cc: Peter Hurley <peter@hurleysoftware.com> Cc: Sean Paul <seanpaul@chromium.org> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Takashi Iwai <tiwai@suse.de> Cc: Tejun Heo <tj@kernel.org> Cc: "Terje Bergström" <tbergstrom@nvidia.com> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Tuomas Tynkkynen <ttynkkynen@nvidia.com> Cc: Wolfram Sang <wsa@the-dreams.de> Cc: Zhang Rui <rui.zhang@intel.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-i2c@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: linux-pwm@vger.kernel.org Cc: linux-tegra@vger.kernel.org Acked-by: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
90 lines
3.4 KiB
Plaintext
90 lines
3.4 KiB
Plaintext
NVIDIA Tegra Power Management Controller (PMC)
|
|
|
|
The PMC block interacts with an external Power Management Unit. The PMC
|
|
mostly controls the entry and exit of the system from different sleep
|
|
modes. It provides power-gating controllers for SoC and CPU power-islands.
|
|
|
|
Required properties:
|
|
- name : Should be pmc
|
|
- compatible : For Tegra20, must contain "nvidia,tegra20-pmc". For Tegra30,
|
|
must contain "nvidia,tegra30-pmc". For Tegra114, must contain
|
|
"nvidia,tegra114-pmc". For Tegra124, must contain "nvidia,tegra124-pmc".
|
|
Otherwise, must contain "nvidia,<chip>-pmc", plus at least one of the
|
|
above, where <chip> is tegra132.
|
|
- reg : Offset and length of the register set for the device
|
|
- clocks : Must contain an entry for each entry in clock-names.
|
|
See ../clocks/clock-bindings.txt for details.
|
|
- clock-names : Must include the following entries:
|
|
"pclk" (The Tegra clock of that name),
|
|
"clk32k_in" (The 32KHz clock input to Tegra).
|
|
|
|
Optional properties:
|
|
- nvidia,invert-interrupt : If present, inverts the PMU interrupt signal.
|
|
The PMU is an external Power Management Unit, whose interrupt output
|
|
signal is fed into the PMC. This signal is optionally inverted, and then
|
|
fed into the ARM GIC. The PMC is not involved in the detection or
|
|
handling of this interrupt signal, merely its inversion.
|
|
- nvidia,suspend-mode : The suspend mode that the platform should use.
|
|
Valid values are 0, 1 and 2:
|
|
0 (LP0): CPU + Core voltage off and DRAM in self-refresh
|
|
1 (LP1): CPU voltage off and DRAM in self-refresh
|
|
2 (LP2): CPU voltage off
|
|
- nvidia,core-power-req-active-high : Boolean, core power request active-high
|
|
- nvidia,sys-clock-req-active-high : Boolean, system clock request active-high
|
|
- nvidia,combined-power-req : Boolean, combined power request for CPU & Core
|
|
- nvidia,cpu-pwr-good-en : Boolean, CPU power good signal (from PMIC to PMC)
|
|
is enabled.
|
|
|
|
Required properties when nvidia,suspend-mode is specified:
|
|
- nvidia,cpu-pwr-good-time : CPU power good time in uS.
|
|
- nvidia,cpu-pwr-off-time : CPU power off time in uS.
|
|
- nvidia,core-pwr-good-time : <Oscillator-stable-time Power-stable-time>
|
|
Core power good time in uS.
|
|
- nvidia,core-pwr-off-time : Core power off time in uS.
|
|
|
|
Required properties when nvidia,suspend-mode=<0>:
|
|
- nvidia,lp0-vec : <start length> Starting address and length of LP0 vector
|
|
The LP0 vector contains the warm boot code that is executed by AVP when
|
|
resuming from the LP0 state. The AVP (Audio-Video Processor) is an ARM7
|
|
processor and always being the first boot processor when chip is power on
|
|
or resume from deep sleep mode. When the system is resumed from the deep
|
|
sleep mode, the warm boot code will restore some PLLs, clocks and then
|
|
bring up CPU0 for resuming the system.
|
|
|
|
Example:
|
|
|
|
/ SoC dts including file
|
|
pmc@7000f400 {
|
|
compatible = "nvidia,tegra20-pmc";
|
|
reg = <0x7000e400 0x400>;
|
|
clocks = <&tegra_car 110>, <&clk32k_in>;
|
|
clock-names = "pclk", "clk32k_in";
|
|
nvidia,invert-interrupt;
|
|
nvidia,suspend-mode = <1>;
|
|
nvidia,cpu-pwr-good-time = <2000>;
|
|
nvidia,cpu-pwr-off-time = <100>;
|
|
nvidia,core-pwr-good-time = <3845 3845>;
|
|
nvidia,core-pwr-off-time = <458>;
|
|
nvidia,core-power-req-active-high;
|
|
nvidia,sys-clock-req-active-high;
|
|
nvidia,lp0-vec = <0xbdffd000 0x2000>;
|
|
};
|
|
|
|
/ Tegra board dts file
|
|
{
|
|
...
|
|
clocks {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
clk32k_in: clock {
|
|
compatible = "fixed-clock";
|
|
reg=<0>;
|
|
#clock-cells = <0>;
|
|
clock-frequency = <32768>;
|
|
};
|
|
};
|
|
...
|
|
};
|