* [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage @ 2014-05-28 14:49 Thierry Reding 2014-05-28 14:49 ` [PATCH v2 1/5] " Thierry Reding ` (5 more replies) 0 siblings, 6 replies; 8+ messages in thread From: Thierry Reding @ 2014-05-28 14:49 UTC (permalink / raw) To: Stephen Warren, Bjorn Helgaas; +Cc: linux-tegra, linux-pci From: Thierry Reding <treding@nvidia.com> The current device tree binding for the regulator setup on Tegra PCIe is not accurate. While it does work for current use-cases, that's likely by accident rather than design. This series replaces the existing set of power-supply properties with a new set that accurately describes the inputs of the IP block (depending on SoC generation). As a heads-up, this breaks backwards compatibility with prior versions of the device tree bindings, but I don't see a reason why that should keep us from fixing this properly. Not many people are currently using these bindings and those who are are most likely tracking upstream development closely enough not to be impacted by this. I've aimed to keep the series bisectible, which has the downside of interleaving patches to unrelated trees (ARM and PCI). I'm hoping that perhaps we can find a way to merge this as a whole to keep it possible to bisect across the series. Although again, I guess it wouldn't be all that bad if that wasn't the case, given how little PCIe is actually being used. This second version of the series has Bjorn's Acked-by for patch 3 from the RFC. Stephen, it would be great if you can take this through the Tegra tree so that the bisectability can be preserved. I have a bunch of other smaller changes for the PCIe driver (mostly cleanups). I don't think any of them will conflict, but for extra safety Bjorn may want to pull this as a stable branch into his tree. Thanks, Thierry Thierry Reding (5): PCI: tegra: Overhaul regulator usage ARM: tegra: Add new PCIe regulator properties PCI: tegra: Implement accurate power supply scheme PCI: tegra: Remove deprecated power supply properties ARM: tegra: Remove legacy PCIe power supply properties .../bindings/pci/nvidia,tegra20-pcie.txt | 30 ++++- arch/arm/boot/dts/tegra20-harmony.dts | 8 +- arch/arm/boot/dts/tegra20-tamonten.dtsi | 7 +- arch/arm/boot/dts/tegra20-trimslice.dts | 8 +- arch/arm/boot/dts/tegra30-beaver.dts | 12 +- arch/arm/boot/dts/tegra30-cardhu.dtsi | 11 +- drivers/pci/host/pci-tegra.c | 148 ++++++++++++--------- 7 files changed, 148 insertions(+), 76 deletions(-) -- 1.9.2 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/5] PCI: tegra: Overhaul regulator usage 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding @ 2014-05-28 14:49 ` Thierry Reding 2014-05-29 17:48 ` Stephen Warren 2014-05-28 14:49 ` [PATCH v2 2/5] ARM: tegra: Add new PCIe regulator properties Thierry Reding ` (4 subsequent siblings) 5 siblings, 1 reply; 8+ messages in thread From: Thierry Reding @ 2014-05-28 14:49 UTC (permalink / raw) To: Stephen Warren, Bjorn Helgaas; +Cc: linux-tegra, linux-pci From: Thierry Reding <treding@nvidia.com> The current usage of regulators for the Tegra PCIe block is wrong. It doesn't accurately reflect the actual supply inputs of the IP block and therefore isn't as flexible as it should be. Rectify this by describing all possible supply inputs in the device tree binding documentation and deprecate the old supply properties. Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v2: - fix power rail assignment on Tegra30 .../bindings/pci/nvidia,tegra20-pcie.txt | 35 ++++++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt index c300391e8d3e..f56d89998a44 100644 --- a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt +++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt @@ -14,9 +14,6 @@ Required properties: - interrupt-names: Must include the following entries: "intr": The Tegra interrupt that is asserted for controller interrupts "msi": The Tegra interrupt that is asserted when an MSI is received -- pex-clk-supply: Supply voltage for internal reference clock -- vdd-supply: Power supply for controller (1.05V) -- avdd-supply: Power supply for controller (1.05V) (not required for Tegra20) - bus-range: Range of bus numbers associated with this controller - #address-cells: Address representation for root ports (must be 3) - cell 0 specifies the bus and device numbers of the root port: @@ -60,6 +57,38 @@ Required properties: - afi - pcie_x +Power supplies for Tegra20: +- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. +- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. +- avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must + supply 1.05 V. +- avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must + supply 1.05 V. +- vddio-pex-clk-supply: Power supply for PCIe clock. Must supply 3.3 V. + +Power supplies for Tegra30: +- Required: + - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must + supply 1.05 V. + - avdd-plle-supply: Power supply for PLLE, which is shared with SATA. Must + supply 1.05 V. + - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must + supply 1.8 V. + - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. + Must supply 3.3 V. +- Optional: + - If lanes 0 to 3 are used: + - avdd-pexa-supply: Power supply for analog PCIe logic. Must supply 1.05 V. + - vdd-pexa-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. + - If lanes 4 or 5 are used: + - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. + - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. + +Deprecated supplies: +- pex-clk-supply: Supply voltage for internal reference clock +- vdd-supply: Power supply for controller (1.05V) +- avdd-supply: Power supply for controller (1.05V) (not required for Tegra20) + Root ports are defined as subnodes of the PCIe controller node. Required properties: -- 1.9.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/5] PCI: tegra: Overhaul regulator usage 2014-05-28 14:49 ` [PATCH v2 1/5] " Thierry Reding @ 2014-05-29 17:48 ` Stephen Warren 0 siblings, 0 replies; 8+ messages in thread From: Stephen Warren @ 2014-05-29 17:48 UTC (permalink / raw) To: Thierry Reding, Bjorn Helgaas; +Cc: linux-tegra, linux-pci On 05/28/2014 08:49 AM, Thierry Reding wrote: > From: Thierry Reding <treding@nvidia.com> > > The current usage of regulators for the Tegra PCIe block is wrong. It > doesn't accurately reflect the actual supply inputs of the IP block and > therefore isn't as flexible as it should be. Rectify this by describing > all possible supply inputs in the device tree binding documentation and > deprecate the old supply properties. The series looks fine to me at a quick glance. Since Bjorn has ack'd the PCIe driver patch, I'll apply this to the Tegra tree for 3.17. I'll put it into a topic branch in case it needs to be merged into the PCI tree to resolve any conflicts. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 2/5] ARM: tegra: Add new PCIe regulator properties 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding 2014-05-28 14:49 ` [PATCH v2 1/5] " Thierry Reding @ 2014-05-28 14:49 ` Thierry Reding 2014-05-28 14:49 ` [PATCH v2 3/5] PCI: tegra: Implement accurate power supply scheme Thierry Reding ` (3 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Thierry Reding @ 2014-05-28 14:49 UTC (permalink / raw) To: Stephen Warren, Bjorn Helgaas; +Cc: linux-tegra, linux-pci From: Thierry Reding <treding@nvidia.com> These new properties more accurately reflect the real connections of the boards and therefore make it easier to match them up with schematics. Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v2: - reword comment in Cardhu DTS arch/arm/boot/dts/tegra20-harmony.dts | 10 +++++++++- arch/arm/boot/dts/tegra20-tamonten.dtsi | 7 +++++++ arch/arm/boot/dts/tegra20-trimslice.dts | 8 ++++++++ arch/arm/boot/dts/tegra30-beaver.dts | 11 +++++++++++ arch/arm/boot/dts/tegra30-cardhu.dtsi | 10 ++++++++++ 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index f45aad688d9b..c8008247ead7 100644 --- a/arch/arm/boot/dts/tegra20-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts @@ -562,9 +562,17 @@ }; pcie-controller@80003000 { + status = "okay"; + + avdd-pex-supply = <&pci_vdd_reg>; + vdd-pex-supply = <&pci_vdd_reg>; + avdd-pex-pll-supply = <&pci_vdd_reg>; + avdd-plle-supply = <&pci_vdd_reg>; + vddio-pex-clk-supply = <&pci_clk_reg>; + + /* deprecated */ pex-clk-supply = <&pci_clk_reg>; vdd-supply = <&pci_vdd_reg>; - status = "okay"; pci@1,0 { status = "okay"; diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi index a1b0d965757f..0e33577750ae 100644 --- a/arch/arm/boot/dts/tegra20-tamonten.dtsi +++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi @@ -473,6 +473,13 @@ }; pcie-controller@80003000 { + avdd-pex-supply = <&pci_vdd_reg>; + vdd-pex-supply = <&pci_vdd_reg>; + avdd-pex-pll-supply = <&pci_vdd_reg>; + avdd-plle-supply = <&pci_vdd_reg>; + vddio-pex-clk-supply = <&pci_clk_reg>; + + /* deprecated */ pex-clk-supply = <&pci_clk_reg>; vdd-supply = <&pci_vdd_reg>; }; diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts index 216fa6d50c65..401b32e44369 100644 --- a/arch/arm/boot/dts/tegra20-trimslice.dts +++ b/arch/arm/boot/dts/tegra20-trimslice.dts @@ -318,6 +318,14 @@ pcie-controller@80003000 { status = "okay"; + + avdd-pex-supply = <&pci_vdd_reg>; + vdd-pex-supply = <&pci_vdd_reg>; + avdd-pex-pll-supply = <&pci_vdd_reg>; + avdd-plle-supply = <&pci_vdd_reg>; + vddio-pex-clk-supply = <&pci_clk_reg>; + + /* deprecated */ pex-clk-supply = <&pci_clk_reg>; vdd-supply = <&pci_vdd_reg>; diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts index 3189791a9289..d3ddfa067e7d 100644 --- a/arch/arm/boot/dts/tegra30-beaver.dts +++ b/arch/arm/boot/dts/tegra30-beaver.dts @@ -17,6 +17,17 @@ pcie-controller@00003000 { status = "okay"; + + avdd-pexa-supply = <&ldo1_reg>; + vdd-pexa-supply = <&ldo1_reg>; + avdd-pexb-supply = <&ldo1_reg>; + vdd-pexb-supply = <&ldo1_reg>; + avdd-pex-pll-supply = <&ldo1_reg>; + avdd-plle-supply = <&ldo1_reg>; + vddio-pex-ctl-supply = <&sys_3v3_reg>; + hvdd-pex-supply = <&sys_3v3_pexs_reg>; + + /* deprecated */ pex-clk-supply = <&sys_3v3_pexs_reg>; vdd-supply = <&ldo1_reg>; avdd-supply = <&ldo2_reg>; diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index 0cf0848a82d8..636d62e27a6d 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi @@ -38,6 +38,16 @@ pcie-controller@00003000 { status = "okay"; + + /* AVDD_PEXA and VDD_PEXA inputs are grounded on Cardhu. */ + avdd-pexb-supply = <&ldo1_reg>; + vdd-pexb-supply = <&ldo1_reg>; + avdd-pex-pll-supply = <&ldo1_reg>; + hvdd-pex-supply = <&pex_hvdd_3v3_reg>; + vddio-pex-ctl-supply = <&sys_3v3_reg>; + avdd-plle-supply = <&ldo2_reg>; + + /* deprecated */ pex-clk-supply = <&pex_hvdd_3v3_reg>; vdd-supply = <&ldo1_reg>; avdd-supply = <&ldo2_reg>; -- 1.9.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/5] PCI: tegra: Implement accurate power supply scheme 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding 2014-05-28 14:49 ` [PATCH v2 1/5] " Thierry Reding 2014-05-28 14:49 ` [PATCH v2 2/5] ARM: tegra: Add new PCIe regulator properties Thierry Reding @ 2014-05-28 14:49 ` Thierry Reding 2014-05-28 14:49 ` [PATCH v2 4/5] PCI: tegra: Remove deprecated power supply properties Thierry Reding ` (2 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Thierry Reding @ 2014-05-28 14:49 UTC (permalink / raw) To: Stephen Warren, Bjorn Helgaas; +Cc: linux-tegra, linux-pci From: Thierry Reding <treding@nvidia.com> The current description of power supplies doesn't match the hardware. Instead it's designed to support the needs of current designs, which will break as soon as a new design appears that cannot be described using the current assumptions. In order to fully support all possible future designs, all power supply inputs to the PCIe block need to be accurately described and separately configurable. Acked-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v2: - fix typo "enable" -> "disable" drivers/pci/host/pci-tegra.c | 148 +++++++++++++++++++++++++------------------ 1 file changed, 87 insertions(+), 61 deletions(-) diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c index 083cf37ca047..7df5aaf58921 100644 --- a/drivers/pci/host/pci-tegra.c +++ b/drivers/pci/host/pci-tegra.c @@ -233,7 +233,6 @@ struct tegra_pcie_soc_data { bool has_pex_clkreq_en; bool has_pex_bias_ctrl; bool has_intr_prsnt_sense; - bool has_avdd_supply; bool has_cml_clk; }; @@ -272,9 +271,8 @@ struct tegra_pcie { unsigned int num_ports; u32 xbar_config; - struct regulator *pex_clk_supply; - struct regulator *vdd_supply; - struct regulator *avdd_supply; + struct regulator_bulk_data *supplies; + unsigned int num_supplies; const struct tegra_pcie_soc_data *soc_data; }; @@ -894,7 +892,6 @@ static int tegra_pcie_enable_controller(struct tegra_pcie *pcie) static void tegra_pcie_power_off(struct tegra_pcie *pcie) { - const struct tegra_pcie_soc_data *soc = pcie->soc_data; int err; /* TODO: disable and unprepare clocks? */ @@ -905,23 +902,9 @@ static void tegra_pcie_power_off(struct tegra_pcie *pcie) tegra_powergate_power_off(TEGRA_POWERGATE_PCIE); - if (soc->has_avdd_supply) { - err = regulator_disable(pcie->avdd_supply); - if (err < 0) - dev_warn(pcie->dev, - "failed to disable AVDD regulator: %d\n", - err); - } - - err = regulator_disable(pcie->pex_clk_supply); + err = regulator_bulk_disable(pcie->num_supplies, pcie->supplies); if (err < 0) - dev_warn(pcie->dev, "failed to disable pex-clk regulator: %d\n", - err); - - err = regulator_disable(pcie->vdd_supply); - if (err < 0) - dev_warn(pcie->dev, "failed to disable VDD regulator: %d\n", - err); + dev_warn(pcie->dev, "failed to disable regulators: %d\n", err); } static int tegra_pcie_power_on(struct tegra_pcie *pcie) @@ -936,28 +919,9 @@ static int tegra_pcie_power_on(struct tegra_pcie *pcie) tegra_powergate_power_off(TEGRA_POWERGATE_PCIE); /* enable regulators */ - err = regulator_enable(pcie->vdd_supply); - if (err < 0) { - dev_err(pcie->dev, "failed to enable VDD regulator: %d\n", err); - return err; - } - - err = regulator_enable(pcie->pex_clk_supply); - if (err < 0) { - dev_err(pcie->dev, "failed to enable pex-clk regulator: %d\n", - err); - return err; - } - - if (soc->has_avdd_supply) { - err = regulator_enable(pcie->avdd_supply); - if (err < 0) { - dev_err(pcie->dev, - "failed to enable AVDD regulator: %d\n", - err); - return err; - } - } + err = regulator_bulk_enable(pcie->num_supplies, pcie->supplies); + if (err < 0) + dev_err(pcie->dev, "failed to enable regulators: %d\n", err); err = tegra_powergate_sequence_power_up(TEGRA_POWERGATE_PCIE, pcie->pex_clk, @@ -1394,14 +1358,83 @@ static int tegra_pcie_get_xbar_config(struct tegra_pcie *pcie, u32 lanes, return -EINVAL; } +/* + * Obtains the list of regulators required for a particular generation of the + * IP block. + * + * This would've been nice to do simply by providing static tables for use + * with the regulator_bulk_*() API, but unfortunately Tegra30 is a bit quirky + * in that it has two pairs or AVDD_PEX and VDD_PEX supplies (PEXA and PEXB) + * and either seems to be optional depending on which ports are being used. + */ +static int tegra_pcie_get_regulators(struct tegra_pcie *pcie, u32 lane_mask) +{ + struct device_node *np = pcie->dev->of_node; + unsigned int i = 0; + + if (of_device_is_compatible(np, "nvidia,tegra30-pcie")) { + bool need_pexa = false, need_pexb = false; + + /* VDD_PEXA and AVDD_PEXA supply lanes 0 to 3 */ + if (lane_mask & 0x0f) + need_pexa = true; + + /* VDD_PEXB and AVDD_PEXB supply lanes 4 to 5 */ + if (lane_mask & 0x30) + need_pexb = true; + + pcie->num_supplies = 4 + (need_pexa ? 2 : 0) + + (need_pexb ? 2 : 0); + + pcie->supplies = devm_kcalloc(pcie->dev, pcie->num_supplies, + sizeof(*pcie->supplies), + GFP_KERNEL); + if (!pcie->supplies) + return -ENOMEM; + + pcie->supplies[i++].supply = "avdd-pex-pll"; + pcie->supplies[i++].supply = "hvdd-pex"; + pcie->supplies[i++].supply = "vddio-pex-ctl"; + pcie->supplies[i++].supply = "avdd-plle"; + + if (need_pexa) { + pcie->supplies[i++].supply = "avdd-pexa"; + pcie->supplies[i++].supply = "vdd-pexa"; + } + + if (need_pexb) { + pcie->supplies[i++].supply = "avdd-pexb"; + pcie->supplies[i++].supply = "vdd-pexb"; + } + } else if (of_device_is_compatible(np, "nvidia,tegra20-pcie")) { + pcie->num_supplies = 5; + + pcie->supplies = devm_kcalloc(pcie->dev, pcie->num_supplies, + sizeof(*pcie->supplies), + GFP_KERNEL); + if (!pcie->supplies) + return -ENOMEM; + + pcie->supplies[0].supply = "avdd-pex"; + pcie->supplies[1].supply = "vdd-pex"; + pcie->supplies[2].supply = "avdd-pex-pll"; + pcie->supplies[3].supply = "avdd-plle"; + pcie->supplies[4].supply = "vddio-pex-clk"; + } + + return devm_regulator_bulk_get(pcie->dev, pcie->num_supplies, + pcie->supplies); +} + static int tegra_pcie_parse_dt(struct tegra_pcie *pcie) { const struct tegra_pcie_soc_data *soc = pcie->soc_data; struct device_node *np = pcie->dev->of_node, *port; struct of_pci_range_parser parser; struct of_pci_range range; + u32 lanes = 0, mask = 0; + unsigned int lane = 0; struct resource res; - u32 lanes = 0; int err; if (of_pci_range_parser_init(&parser, np)) { @@ -1409,20 +1442,6 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie) return -EINVAL; } - pcie->vdd_supply = devm_regulator_get(pcie->dev, "vdd"); - if (IS_ERR(pcie->vdd_supply)) - return PTR_ERR(pcie->vdd_supply); - - pcie->pex_clk_supply = devm_regulator_get(pcie->dev, "pex-clk"); - if (IS_ERR(pcie->pex_clk_supply)) - return PTR_ERR(pcie->pex_clk_supply); - - if (soc->has_avdd_supply) { - pcie->avdd_supply = devm_regulator_get(pcie->dev, "avdd"); - if (IS_ERR(pcie->avdd_supply)) - return PTR_ERR(pcie->avdd_supply); - } - for_each_of_pci_range(&parser, &range) { of_pci_range_to_resource(&range, np, &res); @@ -1490,8 +1509,13 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie) lanes |= value << (index << 3); - if (!of_device_is_available(port)) + if (!of_device_is_available(port)) { + lane += value; continue; + } + + mask |= ((1 << value) - 1) << lane; + lane += value; rp = devm_kzalloc(pcie->dev, sizeof(*rp), GFP_KERNEL); if (!rp) @@ -1522,6 +1546,10 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie) return err; } + err = tegra_pcie_get_regulators(pcie, mask); + if (err < 0) + return err; + return 0; } @@ -1615,7 +1643,6 @@ static const struct tegra_pcie_soc_data tegra20_pcie_data = { .has_pex_clkreq_en = false, .has_pex_bias_ctrl = false, .has_intr_prsnt_sense = false, - .has_avdd_supply = false, .has_cml_clk = false, }; @@ -1627,7 +1654,6 @@ static const struct tegra_pcie_soc_data tegra30_pcie_data = { .has_pex_clkreq_en = true, .has_pex_bias_ctrl = true, .has_intr_prsnt_sense = true, - .has_avdd_supply = true, .has_cml_clk = true, }; -- 1.9.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/5] PCI: tegra: Remove deprecated power supply properties 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding ` (2 preceding siblings ...) 2014-05-28 14:49 ` [PATCH v2 3/5] PCI: tegra: Implement accurate power supply scheme Thierry Reding @ 2014-05-28 14:49 ` Thierry Reding 2014-05-28 14:49 ` [PATCH v2 5/5] ARM: tegra: Remove legacy PCIe " Thierry Reding 2014-06-16 18:30 ` [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Stephen Warren 5 siblings, 0 replies; 8+ messages in thread From: Thierry Reding @ 2014-05-28 14:49 UTC (permalink / raw) To: Stephen Warren, Bjorn Helgaas; +Cc: linux-tegra, linux-pci From: Thierry Reding <treding@nvidia.com> These power supply properties are no longer needed since the binding now contains the full set properties to accurately describe the power supply inputs of the Tegra PCIe block. Signed-off-by: Thierry Reding <treding@nvidia.com> --- Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt index f56d89998a44..0823362548dc 100644 --- a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt +++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt @@ -84,11 +84,6 @@ Power supplies for Tegra30: - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. -Deprecated supplies: -- pex-clk-supply: Supply voltage for internal reference clock -- vdd-supply: Power supply for controller (1.05V) -- avdd-supply: Power supply for controller (1.05V) (not required for Tegra20) - Root ports are defined as subnodes of the PCIe controller node. Required properties: -- 1.9.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 5/5] ARM: tegra: Remove legacy PCIe power supply properties 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding ` (3 preceding siblings ...) 2014-05-28 14:49 ` [PATCH v2 4/5] PCI: tegra: Remove deprecated power supply properties Thierry Reding @ 2014-05-28 14:49 ` Thierry Reding 2014-06-16 18:30 ` [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Stephen Warren 5 siblings, 0 replies; 8+ messages in thread From: Thierry Reding @ 2014-05-28 14:49 UTC (permalink / raw) To: Stephen Warren, Bjorn Helgaas; +Cc: linux-tegra, linux-pci From: Thierry Reding <treding@nvidia.com> These properties are deprecated and no longer of any use. Signed-off-by: Thierry Reding <treding@nvidia.com> --- arch/arm/boot/dts/tegra20-harmony.dts | 4 ---- arch/arm/boot/dts/tegra20-tamonten.dtsi | 4 ---- arch/arm/boot/dts/tegra20-trimslice.dts | 4 ---- arch/arm/boot/dts/tegra30-beaver.dts | 5 ----- arch/arm/boot/dts/tegra30-cardhu.dtsi | 5 ----- 5 files changed, 22 deletions(-) diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index c8008247ead7..a37279af687c 100644 --- a/arch/arm/boot/dts/tegra20-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts @@ -570,10 +570,6 @@ avdd-plle-supply = <&pci_vdd_reg>; vddio-pex-clk-supply = <&pci_clk_reg>; - /* deprecated */ - pex-clk-supply = <&pci_clk_reg>; - vdd-supply = <&pci_vdd_reg>; - pci@1,0 { status = "okay"; }; diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi index 0e33577750ae..a4914bba1a39 100644 --- a/arch/arm/boot/dts/tegra20-tamonten.dtsi +++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi @@ -478,10 +478,6 @@ avdd-pex-pll-supply = <&pci_vdd_reg>; avdd-plle-supply = <&pci_vdd_reg>; vddio-pex-clk-supply = <&pci_clk_reg>; - - /* deprecated */ - pex-clk-supply = <&pci_clk_reg>; - vdd-supply = <&pci_vdd_reg>; }; usb@c5008000 { diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts index 401b32e44369..5ad87979ab13 100644 --- a/arch/arm/boot/dts/tegra20-trimslice.dts +++ b/arch/arm/boot/dts/tegra20-trimslice.dts @@ -325,10 +325,6 @@ avdd-plle-supply = <&pci_vdd_reg>; vddio-pex-clk-supply = <&pci_clk_reg>; - /* deprecated */ - pex-clk-supply = <&pci_clk_reg>; - vdd-supply = <&pci_vdd_reg>; - pci@1,0 { status = "okay"; }; diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts index d3ddfa067e7d..cee8f2246fdb 100644 --- a/arch/arm/boot/dts/tegra30-beaver.dts +++ b/arch/arm/boot/dts/tegra30-beaver.dts @@ -27,11 +27,6 @@ vddio-pex-ctl-supply = <&sys_3v3_reg>; hvdd-pex-supply = <&sys_3v3_pexs_reg>; - /* deprecated */ - pex-clk-supply = <&sys_3v3_pexs_reg>; - vdd-supply = <&ldo1_reg>; - avdd-supply = <&ldo2_reg>; - pci@1,0 { status = "okay"; nvidia,num-lanes = <2>; diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index 636d62e27a6d..206379546244 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi @@ -47,11 +47,6 @@ vddio-pex-ctl-supply = <&sys_3v3_reg>; avdd-plle-supply = <&ldo2_reg>; - /* deprecated */ - pex-clk-supply = <&pex_hvdd_3v3_reg>; - vdd-supply = <&ldo1_reg>; - avdd-supply = <&ldo2_reg>; - pci@1,0 { nvidia,num-lanes = <4>; }; -- 1.9.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding ` (4 preceding siblings ...) 2014-05-28 14:49 ` [PATCH v2 5/5] ARM: tegra: Remove legacy PCIe " Thierry Reding @ 2014-06-16 18:30 ` Stephen Warren 5 siblings, 0 replies; 8+ messages in thread From: Stephen Warren @ 2014-06-16 18:30 UTC (permalink / raw) To: Thierry Reding, Bjorn Helgaas; +Cc: linux-tegra, linux-pci On 05/28/2014 08:49 AM, Thierry Reding wrote: > From: Thierry Reding <treding@nvidia.com> > > The current device tree binding for the regulator setup on Tegra PCIe is > not accurate. While it does work for current use-cases, that's likely by > accident rather than design. This series replaces the existing set of > power-supply properties with a new set that accurately describes the > inputs of the IP block (depending on SoC generation). > > As a heads-up, this breaks backwards compatibility with prior versions > of the device tree bindings, but I don't see a reason why that should > keep us from fixing this properly. Not many people are currently using > these bindings and those who are are most likely tracking upstream > development closely enough not to be impacted by this. > > I've aimed to keep the series bisectible, which has the downside of > interleaving patches to unrelated trees (ARM and PCI). I'm hoping that > perhaps we can find a way to merge this as a whole to keep it possible > to bisect across the series. Although again, I guess it wouldn't be all > that bad if that wasn't the case, given how little PCIe is actually > being used. > > This second version of the series has Bjorn's Acked-by for patch 3 from > the RFC. Stephen, it would be great if you can take this through the > Tegra tree so that the bisectability can be preserved. I have a bunch of > other smaller changes for the PCIe driver (mostly cleanups). I don't > think any of them will conflict, but for extra safety Bjorn may want to > pull this as a stable branch into his tree. I've applied this series to Tegra's for-3.17/pcie-regulators branch. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-06-16 18:30 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-05-28 14:49 [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Thierry Reding 2014-05-28 14:49 ` [PATCH v2 1/5] " Thierry Reding 2014-05-29 17:48 ` Stephen Warren 2014-05-28 14:49 ` [PATCH v2 2/5] ARM: tegra: Add new PCIe regulator properties Thierry Reding 2014-05-28 14:49 ` [PATCH v2 3/5] PCI: tegra: Implement accurate power supply scheme Thierry Reding 2014-05-28 14:49 ` [PATCH v2 4/5] PCI: tegra: Remove deprecated power supply properties Thierry Reding 2014-05-28 14:49 ` [PATCH v2 5/5] ARM: tegra: Remove legacy PCIe " Thierry Reding 2014-06-16 18:30 ` [PATCH v2 0/5] PCI: tegra: Overhaul regulator usage Stephen Warren
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).