* [PATCH v8 0/2 RESEND] add the Amlogic Meson PCIe controller driver @ 2018-12-18 8:04 Hanjie Lin 2018-12-18 8:04 ` [PATCH v8 1/2] dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller Hanjie Lin 0 siblings, 1 reply; 4+ messages in thread From: Hanjie Lin @ 2018-12-18 8:04 UTC (permalink / raw) To: Lorenzo Pieralisi, Bjorn Helgaas Cc: Hanjie Lin, Kevin Hilman, Carlo Caione, Jerome Brunet, Rob Herring, Gustavo Pimentel, Shawn Lin, Philippe Ombredanne, Cyrille Pitchen, linux-kernel, linux-pci, linux-arm-kernel, linux-amlogic, Yixun Lan, Liang Yang, Jianxin Pan, Qiufang Dai, Jian Hu, devicetree The Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. This patchset add the driver and dt-bindings of the controller. Changes since v7: [6] - include files in alphabetical order - get rid of unused MACROs and variables - optimize meson_pcie_link_up() while loop - correct cover-letter version Changes since v6: [5] - fix bad usage of ERR_PTR(ENXIO) - fix meson_pcie_rd_own_conf() when read PCI_CLASS_DEVICE reg Changes since v5: [4] - update MAINTAINER file in alphabetical order - remove meaningless comment - use ERR_PTR function instead of (void *) cast - use is_power_of_2(size) instead of size & (size - 1) - add comment for PCI_CLASS_REVISION register operation Changes since v4: [3] - fix kbuild test robot and compile warnings Changes since v3: [2] - modify subject format - update Kconfig - update MAINTAINER file - add comment and error handle for meson_pcie_get_mem_shared() - drop useless initialization code - add comment for meson_size_to_payload() - optimize meson_pcie_establish_link() return code - optimize meson_pcie_enable_interrupts() redundant function - drop device_attch related code - drop dw_pcie_ops read_dbi and write_dbi function - add error handle for meson_add_pcie_port() when probe Changes since v2: [1] - abandon phy driver, move reset to the controller - use devm_add_action_or_reset() to use clock res - format correcting Changes since v1: [0] - use gpio lib instead open code - move 'apb' and 'port' reset from phy driver - format correcting [0] : https://lkml.kernel.org/r/1534227522-186798-1-git-send-email-hanjie.lin@amlogic.com [1] : https://lkml.kernel.org/r/1535096165-45827-1-git-send-email-hanjie.lin@amlogic.com [2] : https://lkml.kernel.org/r/1537509820-52040-1-git-send-email-hanjie.lin@amlogic.com [3] : https://lkml.kernel.org/r/1538999834-156423-3-git-send-email-hanjie.lin@amlogic.com [4] : https://lkml.kernel.org/r/1539049990-30810-1-git-send-email-hanjie.lin@amlogic.com [5] : https://lkml.kernel.org/r/1542876836-191355-1-git-send-email-hanjie.lin@amlogic.com [6] : https://lkml.kernel.org/r/1544097760-85834-1-git-send-email-hanjie.lin@amlogic.com Yue Wang (2): dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller PCI: amlogic: Add the Amlogic Meson PCIe controller driver .../devicetree/bindings/pci/amlogic,meson-pcie.txt | 70 +++ MAINTAINERS | 7 + drivers/pci/controller/dwc/Kconfig | 10 + drivers/pci/controller/dwc/Makefile | 1 + drivers/pci/controller/dwc/pci-meson.c | 595 +++++++++++++++++++++ 5 files changed, 683 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt create mode 100644 drivers/pci/controller/dwc/pci-meson.c -- 2.7.4 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v8 1/2] dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller 2018-12-18 8:04 [PATCH v8 0/2 RESEND] add the Amlogic Meson PCIe controller driver Hanjie Lin @ 2018-12-18 8:04 ` Hanjie Lin 2018-12-18 23:14 ` Martin Blumenstingl 0 siblings, 1 reply; 4+ messages in thread From: Hanjie Lin @ 2018-12-18 8:04 UTC (permalink / raw) To: Lorenzo Pieralisi, Bjorn Helgaas Cc: Yue Wang, Hanjie Lin, Kevin Hilman, Carlo Caione, Jerome Brunet, Rob Herring, Gustavo Pimentel, Shawn Lin, Philippe Ombredanne, Cyrille Pitchen, linux-kernel, linux-pci, linux-arm-kernel, linux-amlogic, Yixun Lan, Liang Yang, Jianxin Pan, Qiufang Dai, Jian Hu, devicetree From: Yue Wang <yue.wang@amlogic.com> The Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. This patch adds documentation for the DT bindings in Meson PCIe controller. Signed-off-by: Yue Wang <yue.wang@amlogic.com> Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com> Reviewed-by: Rob Herring <robh@kernel.org> --- .../devicetree/bindings/pci/amlogic,meson-pcie.txt | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt diff --git a/Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt b/Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt new file mode 100644 index 0000000..12b18f8 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt @@ -0,0 +1,70 @@ +Amlogic Meson AXG DWC PCIE SoC controller + +Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. +It shares common functions with the PCIe DesignWare core driver and +inherits common properties defined in +Documentation/devicetree/bindings/pci/designware-pci.txt. + +Additional properties are described here: + +Required properties: +- compatible: + should contain "amlogic,axg-pcie" to identify the core. +- reg: + should contain the configuration address space. +- reg-names: Must be + - "elbi" External local bus interface registers + - "cfg" Meson specific registers + - "phy" Meson PCIE PHY registers + - "config" PCIe configuration space +- reset-gpios: The GPIO to generate PCIe PERST# assert and deassert signal. +- clocks: Must contain an entry for each entry in clock-names. +- clock-names: Must include the following entries: + - "pclk" PCIe GEN 100M PLL clock + - "port" PCIe_x(A or B) RC clock gate + - "general" PCIe Phy clock + - "mipi" PCIe_x(A or B) 100M ref clock gate +- resets: phandle to the reset lines. +- reset-names: must contain "phy" "port" and "apb" + - "phy" Share PHY reset + - "port" Port A or B reset + - "apb" Share APB reset +- device_type: + should be "pci". As specified in designware-pcie.txt + + +Example configuration: + + pcie: pcie@f9800000 { + compatible = "amlogic,axg-pcie", "snps,dw-pcie"; + reg = <0x0 0xf9800000 0x0 0x400000 + 0x0 0xff646000 0x0 0x2000 + 0x0 0xff644000 0x0 0x2000 + 0x0 0xf9f00000 0x0 0x100000>; + reg-names = "elbi", "cfg", "phy", "config"; + reset-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; + interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0>; + interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>; + bus-range = <0x0 0xff>; + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + ranges = <0x82000000 0 0 0x0 0xf9c00000 0 0x00300000>; + + clocks = <&clkc CLKID_USB + &clkc CLKID_MIPI_ENABLE + &clkc CLKID_PCIE_A + &clkc CLKID_PCIE_CML_EN0>; + clock-names = "general", + "mipi", + "pclk", + "port"; + resets = <&reset RESET_PCIE_PHY>, + <&reset RESET_PCIE_A>, + <&reset RESET_PCIE_APB>; + reset-names = "phy", + "port", + "apb"; + }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v8 1/2] dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller 2018-12-18 8:04 ` [PATCH v8 1/2] dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller Hanjie Lin @ 2018-12-18 23:14 ` Martin Blumenstingl 2018-12-19 10:57 ` Hanjie Lin 0 siblings, 1 reply; 4+ messages in thread From: Martin Blumenstingl @ 2018-12-18 23:14 UTC (permalink / raw) To: Rob Herring, Hanjie Lin Cc: Lorenzo Pieralisi, Bjorn Helgaas, Yixun Lan, Jianxin Pan, devicetree, Kevin Hilman, Shawn Lin, Philippe Ombredanne, linux-pci, linux-kernel, Yue Wang, Qiufang Dai, Jian Hu, Liang Yang, Cyrille Pitchen, Gustavo Pimentel, Carlo Caione, linux-amlogic, linux-arm-kernel, Jerome Brunet Hi Rob, Hi Hanjie, (sorry for being late with my question) On Tue, Dec 18, 2018 at 9:05 AM Hanjie Lin <hanjie.lin@amlogic.com> wrote: [...] > +- reg-names: Must be > + - "elbi" External local bus interface registers > + - "cfg" Meson specific registers > + - "phy" Meson PCIE PHY registers I have learned that there are two PHY register designs: - AXG only has a PCIe PHY - G12A has a PHY which supports PCIe and USB 3.0. The PCIe part of this PHY design is compatible with AXG, but this design also supports a USB 3.0 port (it's an exclusive choice: either PCIe *or* USB 3.0) The PCIe controller itself is identical on both, AXG and G12A. This patch adds support for the AXG PCIe controller and PHY within one device-tree node. For G12A I propose to add a separate "phys" property with a phandle to the "combo" PCIe and USB3.0 PHY - this can be part of a separate patch though. I would like to know whether it's OK that for AXG the PCIe PHY is described in the same device-tree node as the PCIe controller (in other words: we're not using a "phys" property here)? Kind Regards Martin ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v8 1/2] dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller 2018-12-18 23:14 ` Martin Blumenstingl @ 2018-12-19 10:57 ` Hanjie Lin 0 siblings, 0 replies; 4+ messages in thread From: Hanjie Lin @ 2018-12-19 10:57 UTC (permalink / raw) To: Martin Blumenstingl, Rob Herring Cc: Lorenzo Pieralisi, Bjorn Helgaas, Yixun Lan, Jianxin Pan, devicetree, Kevin Hilman, Shawn Lin, Philippe Ombredanne, linux-pci, linux-kernel, Yue Wang, Qiufang Dai, Jian Hu, Liang Yang, Cyrille Pitchen, Gustavo Pimentel, Carlo Caione, linux-amlogic, linux-arm-kernel, Jerome Brunet On 2018/12/19 7:14, Martin Blumenstingl wrote: > Hi Rob, Hi Hanjie, > > (sorry for being late with my question) > > On Tue, Dec 18, 2018 at 9:05 AM Hanjie Lin <hanjie.lin@amlogic.com> wrote: > [...] >> +- reg-names: Must be >> + - "elbi" External local bus interface registers >> + - "cfg" Meson specific registers >> + - "phy" Meson PCIE PHY registers > I have learned that there are two PHY register designs: > - AXG only has a PCIe PHY > - G12A has a PHY which supports PCIe and USB 3.0. The PCIe part of > this PHY design is compatible with AXG, but this design also supports > a USB 3.0 port (it's an exclusive choice: either PCIe *or* USB 3.0) > > The PCIe controller itself is identical on both, AXG and G12A. > This patch adds support for the AXG PCIe controller and PHY within one > device-tree node. > > For G12A I propose to add a separate "phys" property with a phandle to > the "combo" PCIe and USB3.0 PHY - this can be part of a separate patch > though. > I would like to know whether it's OK that for AXG the PCIe PHY is > described in the same device-tree node as the PCIe controller (in > other words: we're not using a "phys" property here)? > > > Kind Regards > Martin > > . > hi matrin, We do had a dedicated PHY driver for a time at the begining of this patch series, but we decided to remove it and integrate into the controller driver after series reviews and disscussions, and the main reason is it's too overkill to have a dedicated PHY driver which only do the RESET job. Of course we can consider the dedicated PHY driver for G12A upstream in future. thanks hanjie ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-12-19 10:57 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-12-18 8:04 [PATCH v8 0/2 RESEND] add the Amlogic Meson PCIe controller driver Hanjie Lin 2018-12-18 8:04 ` [PATCH v8 1/2] dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller Hanjie Lin 2018-12-18 23:14 ` Martin Blumenstingl 2018-12-19 10:57 ` Hanjie Lin
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).