From patchwork Mon Nov 23 09:29:00 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanimir Varbanov X-Patchwork-Id: 7678521 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id EAF27BF90C for ; Mon, 23 Nov 2015 09:32:17 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C843E20445 for ; Mon, 23 Nov 2015 09:32:16 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A38842041F for ; Mon, 23 Nov 2015 09:32:15 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1a0nS1-0005AL-Jh; Mon, 23 Nov 2015 09:30:21 +0000 Received: from mail-wm0-x22d.google.com ([2a00:1450:400c:c09::22d]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1a0nRi-00040p-4c for linux-arm-kernel@lists.infradead.org; Mon, 23 Nov 2015 09:30:04 +0000 Received: by wmvv187 with SMTP id v187so151090942wmv.1 for ; Mon, 23 Nov 2015 01:29:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=RlTLoF2MWcbTEZz3muq/C/Uek/3SycT/gYwiUKwuSV8=; b=zqsoUJ/QdbCzR8zpyDREEEq96V0C9T5PznczYEjxirpCI6P6mP88j1tbSa7p8EoFr5 mcCDQzdzf6OjOsC+B9jSvZBkFrPGOeehdUrz1ghMPydHHcBRGAbosZArB6mFZw6qmdsG AqD6dz2kvDcScetxIic3r3C3qibbTAdfm5oL1Zs/drXYqvJgqBGYqze6l+e808XaO2sN nkmdR1SPYZHFHwzV5PPmNH2oIHbs4Fv0fgWx2G6qu22EvjpjyBz0ALvTGHJ9qdmGdJKF Uq67sVYkZJrmpjkTnqTf2gfLMprh9dG1zuB+9PItn8sU0RPjz/CAjvPLSpMc4paZ5CIt uXQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=RlTLoF2MWcbTEZz3muq/C/Uek/3SycT/gYwiUKwuSV8=; b=YXJG3o3+S7K5vVf2MenrmS5IbGOi7ileRyTX67+HhReMOcKJrSPQ5PGYc9NJ8uHatF qv+YweMsmQGCdfHK/bfOC+ZlNELK5FjwmimRqIPgq5uP6yLDzqGVsjT1aSY+HP6XlIzf JMMVZpkm9bVj7JpW5xm9AhQCllmhCoQzAUaZI1We5F/AextCpyPuOEaUJF/cXaH+vfFj v5WvW6MTT6/VvtFezVabFu/DOuAtKUG783XR7LNBFsJk5Dv9lMGiE+GGJu59Aj6xMy2C OooI3yyf/Y3eLWtwGiW0U8Ll8nh2rWjJb7Kw/J4W7OFplxCmx9SGwWBEhYskXXbz8Ao2 kGCg== X-Gm-Message-State: ALoCoQk5LQfG83s2zdaqYa8h632iOTfgJLFqFjSXIcXWXEIZjsauKswHXgdWhF+hrhpwYeqSzjd4 X-Received: by 10.28.1.8 with SMTP id 8mr17196583wmb.40.1448270980757; Mon, 23 Nov 2015 01:29:40 -0800 (PST) Received: from mms734.qualcomm.mm-sol.com ([37.157.136.206]) by smtp.gmail.com with ESMTPSA id k125sm5547508wmf.2.2015.11.23.01.29.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Nov 2015 01:29:40 -0800 (PST) From: Stanimir Varbanov To: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, Bjorn Helgaas Subject: [PATCH v3 3/6] DT: PCI: qcom: Document PCIe devicetree bindings Date: Mon, 23 Nov 2015 11:29:00 +0200 Message-Id: <8fd3e7d1662f37abe549127d179c315dff3210d8.1448270813.git.stanimir.varbanov@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151123_013002_549225_894E80C8 X-CRM114-Status: GOOD ( 15.91 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Arnd Bergmann , Pawel Moll , Ian Campbell , Jingoo Han , Pratyush Anand , Stanimir Varbanov , Stanimir Varbanov , Rob Herring , Srinivas Kandagatla , Bjorn Andersson MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Stanimir Varbanov Document Qualcomm PCIe driver devicetree bindings. Signed-off-by: Stanimir Varbanov Signed-off-by: Stanimir Varbanov --- .../devicetree/bindings/pci/qcom,pcie.txt | 231 ++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie.txt diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.txt b/Documentation/devicetree/bindings/pci/qcom,pcie.txt new file mode 100644 index 000000000000..d7640d45fa31 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.txt @@ -0,0 +1,231 @@ +* Qualcomm PCI express root complex + +- compatible: + Usage: required + Value type: + Definition: Value shall include + - "qcom,pcie-v0" for apq/ipq8064 + - "qcom,pcie-v1" for apq8084 + +- reg: + Usage: required + Value type: + Definition: Register ranges as listed in the reg-names property + +- reg-names: + Usage: required + Value type: + Definition: Must include the following entries + - "parf" Qualcomm specific registers + - "dbi" Designware PCIe registers + - "elbi" External local bus interface registers + - "config" PCIe configuration space + +- device_type: + Usage: required + Value type: + Definition: Should be "pci". As specified in designware-pcie.txt + +- #address-cells: + Usage: required + Value type: + Definition: Should be set to 3. As specified in designware-pcie.txt + +- #size-cells: + Usage: required + Value type: + Definition: Should be set 2. As specified in designware-pcie.txt + +- ranges: + Usage: required + Value type: + Definition: As specified in designware-pcie.txt + +- interrupts: + Usage: required + Value type: + Definition: MSI interrupt + +- interrupt-names: + Usage: required + Value type: + Definition: Should contain "msi" + +- #interrupt-cells: + Usage: required + Value type: + Definition: Should be 1. As specified in designware-pcie.txt + +- interrupt-map-mask: + Usage: required + Value type: + Definition: As specified in designware-pcie.txt + +- interrupt-map: + Usage: required + Value type: + Definition: As specified in designware-pcie.txt + +- clocks: + Usage: required + Value type: + Definition: List of phandle and clock specifier pairs as listed + in clock-names property + +- clock-names: + Usage: required + Value type: + Definition: Should contain the following entries + * should be populated for v0 and v1 + - "iface" Configuration AHB clock + + * should be populated for v0 + - "core" Clocks the pcie hw block + - "phy" Clocks the pcie PHY block + + * should be populated for v1 + - "aux" Auxiliary (AUX) clock + - "bus_master" Master AXI clock + - "bus_slave" Slave AXI clock + +- resets: + Usage: required + Value type: + Definition: List of phandle and reset specifier pairs as listed + in reset-names property + +- reset-names: + Usage: required + Value type: + Definition: Should contain the following entries + * should be populated for v0 + - "axi" AXI reset + - "ahb" AHB reset + - "por" POR reset + - "pci" PCI reset + - "phy" PHY reset + + * should be populated for v1 + - "core" Core reset + +- power-domains: + Usage: required (for v1 only) + Value type: + Definition: A phandle and power domain specifier pair to the + power domain which is responsible for collapsing + and restoring power to the peripheral + +- -supply: + Usage: required + Value type: + Definition: List of phandles to the power supply regulator(s) + * should be populated for v0 and v1 + - "vdda" core analog power supply + + * should be populated for v0 + - "vdda_phy" analog power supply for PHY + - "vdda_refclk" analog power supply for IC which generate + reference clock + +- phys: + Usage: required (for v1 only) + Value type: + Definition: List of phandle(s) as listed in phy-names property + +- phy-names: + Usage: required (for v1 only) + Value type: + Definition: Should contain "pciephy" + +- -gpio: + Usage: optional + Value type: + Definition: List of phandle and gpio specifier pairs. Should contain + - "perst" PCIe endpoint reset signal line + - "pewake" PCIe endpoint wake signal line + +- pinctrl-0: + Usage: required + Value type: + Definition: List of phandles pointing at a pin(s) configuration + +- pinctrl-names + Usage: required + Value type: + Definition: List of names of pinctrl-0 state + +* Example for v0 + pcie0: pci@1b500000 { + compatible = "qcom,pcie-v0", "snps,dw-pcie"; + reg = <0x1b500000 0x1000 + 0x1b502000 0x80 + 0x1b600000 0x100 + 0x0ff00000 0x100000>; + reg-names = "dbi", "elbi", "parf", "config"; + device_type = "pci"; + linux,pci-domain = <0>; + bus-range = <0x00 0xff>; + num-lanes = <1>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000 /* I/O */ + 0x82000000 0 0x00000000 0x08000000 0 0x07e00000>; /* memory */ + interrupts = ; + interrupt-names = "msi"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + clocks = <&gcc PCIE_A_CLK>, + <&gcc PCIE_H_CLK>, + <&gcc PCIE_PHY_CLK>; + clock-names = "core", "iface", "phy"; + resets = <&gcc PCIE_ACLK_RESET>, + <&gcc PCIE_HCLK_RESET>, + <&gcc PCIE_POR_RESET>, + <&gcc PCIE_PCI_RESET>, + <&gcc PCIE_PHY_RESET>; + reset-names = "axi", "ahb", "por", "pci", "phy"; + }; + +* Example for v1 + pcie0@fc520000 { + compatible = "qcom,pcie-v1", "snps,dw-pcie"; + reg = <0xfc520000 0x2000>, + <0xff000000 0x1000>, + <0xff001000 0x1000>, + <0xff002000 0x2000>; + reg-names = "parf", "dbi", "elbi", "config"; + device_type = "pci"; + linux,pci-domain = <0>; + bus-range = <0x00 0xff>; + num-lanes = <1>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x81000000 0 0 0xff200000 0 0x00100000 /* I/O */ + 0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; /* memory */ + interrupts = ; + interrupt-names = "msi"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_AXI_CLK>, + <&gcc GCC_PCIE_0_AUX_CLK>; + clock-names = "iface", "master_bus", "slave_bus", "aux"; + resets = <&gcc GCC_PCIE_0_BCR>; + reset-names = "core"; + power-domains = <&gcc PCIE0_GDSC>; + vdda-supply = <&pma8084_l3>; + phys = <&pciephy0>; + phy-names = "pciephy"; + perst-gpio = <&tlmm 70 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&pcie0_pins_default>; + pinctrl-names = "default"; + };