From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751295AbcL1JqZ (ORCPT ); Wed, 28 Dec 2016 04:46:25 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:57956 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751145AbcL1JqV (ORCPT ); Wed, 28 Dec 2016 04:46:21 -0500 X-AuditID: b6c32a39-f79256d000001a75-ab-5863874d7c9c Subject: Re: [RFC PATCH 1/6] phy: exynos-pcie: Add support for Exynos PCIe phy To: Vivek Gautam Cc: linux-pci@vger.kernel.org, "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-samsung-soc@vger.kernel.org" , Bjorn Helgaas , robh+dt , Mark Rutland , Kukjin Kim , krzk@kernel.org, javier@osg.samsung.com, kishon , Will Deacon , catalin.marinas@arm.com, CPGS From: Jaehoon Chung Message-id: Date: Wed, 28 Dec 2016 18:35:08 +0900 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-version: 1.0 In-reply-to: Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrLJsWRmVeSWpSXmKPExsWy7bCmrq5ve3KEQecfIYslTRkW75f1MFq8 PKRpMf/IOVaLN2/XMFn0P37NbHHhaQ+bxfnzG9gtLu+aw2Zxdt5xNosZ5/cxWSy9fpHJonXv EXaLEz93MFu8/HiCxYHfY828NYwel/t6mTwWbCr12LSqk81jS/9ddo++LasYPY7f2M7k8XmT XABHVKpNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2Si0+ArltmDtDp SgpliTmlQKGAxOJiJX07m6L80pJUhYz84hJbpWhDQyM9QwNzPSMjIz0T41grI1OgkoTUjMM/ 37EWvJGvuH/sCnsD42yJLkYODgkBE4lX35O6GDmBTDGJC/fWs3UxcnEICexglHh5ZRIrhNPO JNHzqYsFospEov/1YhaIxBxGicObDzFCOPcYJQ7O/ssEUiUsECCx9/IGdpAVIgJ6Ek+6vEFq mAW6WSQuPjnPBlLDJqAjsf3bcbB6XgE7ieYz91hBbBYBVYkz206A1YgKhElsvv+SHaJGUOLH 5HtgV3AKBEs0nHsG1sssoCnx4sskFghbXmLzmrfMIMskBP6yS3T+esAM8aesxKYDzBAfuEgc ff4M6hthiVfHt7BD2NISq/7dYoLo7WaU+PdlIxuE08MocWvraiaIKmOJ+w/uMUNs45N497WH FWIBr0RHmxBEiYfE17+XGSFsR4lPp5dDA7WFWWJ9QyvzBEb5WUgemoXkiVlInljAyLyKUSy1 oDg3PbXYsMBUrzgxt7g0L10vOT93EyM46WpZ7mA8ds7nEKMAB6MSD2/AtaQIIdbEsuLK3EOM EhzMSiK8C5qTI4R4UxIrq1KL8uOLSnNSiw8xmgIDeSKzlGhyPjAj5JXEG5qYGZoYmRgamhsZ GCmJ8y5utI4QEkhPLEnNTk0tSC2C6WPi4JRqYLS7cEe74Nf0EvWdFfx/dXbl3xJ7dcj89VrJ N4and4hKuc6++7ntb/7tQ7Gphw1YWOsDelmKPvGnK09Y3bkw/hK7uu8Hh9naOu8Uul+onthb fa9st4f8bgPfqVW5wY9VRWtVDzVLRfVMj1e4mnN136WXUbvmLYwxvrOA/cGm5jM2PG/uPCye fEWJpTgj0VCLuag4EQALip/p0AMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRmVeSWpSXmKPExsVy+t9jQV2f9uQIgw99lhZLmjIs3i/rYbR4 eUjTYv6Rc6wWb96uYbLof/ya2eLC0x42i/PnN7BbXN41h83i7LzjbBYzzu9jslh6/SKTReve I+wWJ37uYLZ4+fEEiwO/x5p5axg9Lvf1Mnks2FTqsWlVJ5vHlv677B59W1Yxehy/sZ3J4/Mm uQCOKDebjNTElNQihdS85PyUzLx0W6XQEDddCyWFvMTcVFulCF3fkCAlhbLEnFIgz8gADTg4 B7gHK+nbJbhlHP75jrXgjXzF/WNX2BsYZ0t0MXJySAiYSPS/XswCYYtJXLi3nq2LkYtDSGAW o0TbmdnsIAkhgQeMEk9mW4LYwgJ+Et8urwKKc3CICOhJPOnyhqhvY5Y4Ov8DM4jDLNDLIrGo 6QUbSAObgI7E9m/HmUBsXgE7ieYz91hBbBYBVYkz206wgQwSFQiTeN7oBFEiKPFj8j0WkDCn QLDE/HfuICazgLrElCm5IBXMAvISm9e8ZZ7ACHQjQsMshKpZSKoWMDKvYpRILUguKE5KzzXM Sy3XK07MLS7NS9dLzs/dxAiO4mdSOxgP7nI/xCjAwajEw7viRlKEEGtiWXFl7iFGCQ5mJRHe Bc3JEUK8KYmVValF+fFFpTmpxYcYTYGemMgsJZqcD0wweSXxhibmJubGBhbmlpYmRkrivI2z n4ULCaQnlqRmp6YWpBbB9DFxcEo1MNplPj+8qWWduYbJ2pfHeHT+t7qXC/sEnea/qld05VSR s8UTA4uY3AmVyuvMHmyY/cCxUfTbpKzOCz9czlUdPPubb2nbBKlHRgt6F09byi781WVW8ZsW ibBXwY2nlsgwrbBqLHsprTXR7MqEEwuVn0oJTsj4wvifpW6G0smQXW8nLshPW88UHajEUpyR aKjFXFScCABhE5Pr+AIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161228093508epcas1p144e6f609ebba63859ea73a98bf9e028e X-Msg-Generator: CA X-Sender-IP: 203.254.230.26 X-Local-Sender: =?UTF-8?B?7KCV7J6s7ZuIG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbUzUo7LGF7J6EKS/ssYXsnoQ=?= X-Global-Sender: =?UTF-8?B?SmFlaG9vbiBDaHVuZxtUaXplbiBQbGF0Zm9ybSBMYWIuG1Nh?= =?UTF-8?B?bXN1bmcgRWxlY3Ryb25pY3MbUzUvU2VuaW9yIEVuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG1NUQUYbQzEwVjgxMTE=?= CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-HopCount: 7 X-CMS-RootMailID: 20161226052030epcas5p4ea673fc4ee5c0b2664e80f53d4758553 X-RootMTR: 20161226052030epcas5p4ea673fc4ee5c0b2664e80f53d4758553 References: <20161226052029.10552-1-jh80.chung@samsung.com> <20161226052029.10552-2-jh80.chung@samsung.com> <21de9ca7-e586-e5c8-ecda-d30c18bb6e40@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Vivek, On 12/28/2016 05:58 PM, Vivek Gautam wrote: > Hi Jaehoon, > > On Wed, Dec 28, 2016 at 8:19 AM, Jaehoon Chung wrote: >> Hi Vivek, >> >> On 12/27/2016 02:53 PM, Vivek Gautam wrote: >>> Hi Jaehoon, >>> >>> >>> On Mon, Dec 26, 2016 at 10:50 AM, Jaehoon Chung wrote: >>>> This patch supports to use Generic Phy framework for Exynos PCIe phy. >>>> When Exynos that supported the pcie want to use the PCIe, >>>> it needs to control the phy resgister. >>>> But it should be more complex to control in their own PCIe device drivers. >>>> >>>> Signed-off-by: Jaehoon Chung >>>> --- >>>> drivers/phy/Kconfig | 9 ++ >>>> drivers/phy/Makefile | 1 + >>>> drivers/phy/phy-exynos-pcie.c | 227 ++++++++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 237 insertions(+) >>>> create mode 100644 drivers/phy/phy-exynos-pcie.c >>>> >>>> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig >>>> index fe00f91..94b0433 100644 >>>> --- a/drivers/phy/Kconfig >>>> +++ b/drivers/phy/Kconfig >>>> @@ -341,6 +341,15 @@ config PHY_EXYNOS5_USBDRD >>>> This driver provides PHY interface for USB 3.0 DRD controller >>>> present on Exynos5 SoC series. >>>> >>>> +config PHY_EXYNOS_PCIE >>>> + bool "Exynos PCIe PHY driver" >>> >>> Is there a reason for this not being 'tristate' ? >> >> Will change. > > I notice that PCI_EXYNOS5433 is bool as well. > If the host has to be 'bool' then it makes sense to have phy > also bool as well. But if PCI_EXYNOS5433 can be made > tristate, then this also changes to tristate. Right. I understood what you said. > >> >>> >>>> + depends on ARCH_EXYNOS && OF >>>> + depends on PCI_EXYNOS5433 >>>> + select GENERIC_PHY >>>> + help >>>> + Enable PCIe PHY support for Exynos SoC series. >>> >>> If this driver is for Exynos5433, then same should come in this help >>> text as well. >> >> will support the other exynos series. >> I'm working on refactoring exynos5440 with PHY generic Framework. >> Then this drive is not for only Exnyos5433. how about? > > Ok, it's good then. My only concern is 'depends on PCI_EXYNOS5433' > makes it look like it is for EXYNOS5433. I am fine if that changes as well. I will not put PCI_EXYNOS5433, just will use the PCI_EXYNOS. Because it will be supported only one file as pci-exynos.c > > [...] > >>>> + >>>> +#define PCIE_EXYNOS5433_PMU_PHY_OFFSET 0x730 >>>> +#define PCIE_PHY_OFFSET(x) ((x) * 0x4) >>>> + >>>> +/* Sysreg Fsys register offset and bit for Exynos5433 */ >>>> +#define PCIE_PHY_MAC_RESET 0x208 >>>> +#define PCIE_MAC_RESET_MASK 0xFF >>>> +#define PCIE_MAC_RESET BIT(4) >>>> +#define PCIE_L1SUB_CM_CON 0x1010 >>>> +#define PCIE_REFCLK_GATING_EN BIT(0) >>>> +#define PCIE_PHY_COMMON_RESET 0x1020 >>>> +#define PCIE_PHY_RESET BIT(0) >>>> +#define PCIE_PHY_GLOBAL_RESET 0x1040 >>>> +#define PCIE_GLOBAL_RESET BIT(0) >>>> +#define PCIE_REFCLK BIT(1) >>>> +#define PCIE_REFCLK_MASK 0x16 >>>> +#define PCIE_APP_REQ_EXIT_L1_MODE BIT(5) >>>> + >>>> +enum exynos_pcie_phy_data_type { >>>> + PCIE_PHY_TYPE_EXYNOS5433, >>>> +}; >>>> + >>>> +struct exynos_pcie_phy_data { >>>> + enum exynos_pcie_phy_data_type ctrl_type; >>> >>> Why do we need this controller type ? >>> If there are changes in the IP between different version, >>> then you can as well use different compatibles. >> >> Do you mean is the using "of_device_is_compatible()"? > > I meant that multiple compatible strings can be added based on the > IP versions. And any IP specific data can be put in the .data field > of 'of_device_id' structure. > If there's more to differentiate between the IP versions at runtime, > you can use of_device_is_compatible(). > > [...] > > >