Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp334040imm; Mon, 21 May 2018 06:51:12 -0700 (PDT) X-Google-Smtp-Source: AB8JxZop1kDOFc9oXALWloU1pVr6Kcjtk389SKKaV9Rs6jaH6bS1tbK2lhGL6GvU/HhZOpk9S6cp X-Received: by 2002:a17:902:9048:: with SMTP id w8-v6mr20463856plz.34.1526910672165; Mon, 21 May 2018 06:51:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526910672; cv=none; d=google.com; s=arc-20160816; b=KxHji2uNlg+7p5VmFYyvxqp4pSeQOpZzUc0wPG8+gS8j8PH19a192g0RaaEJYE/Nz4 WFzI7s2eb7i+SRw3kOLN36hZHZoqFjZ9E+hmHiq9nK5qwbnkAvh8WNCW3oBpGC2J4wVX 6ElaWKhl37FRSlDOB/sX2tAZFdEsviwp1HGEvKgdpPeJbM7Vl53w4t9g8aqErKhM591L VSWrQC2G4fCbwRkNIYngaRbIGLX7BvO7jDFvwjkaUnMmTwhkUBdtBvkQdR6iQVe/Y96f ZKPppXFuLObc+2PJB0sfcm0RgH50ucgBDFMZLN8ISrzKUPqbt1yjNEkUwUkpbntfUnKy tbTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=TZIvihqdtxpuJArISGFiuFRuhpmycSlnUMCB1JCT+PI=; b=UZi64a4vPCqj4vOz/+VeNKeztNr/T9NoxLuqpmdocmc2prTt91H55zbY6zLzOu0rC+ F/5Yol74PJYZUvq/xwHTtnlrSgYzm+oOU4gTpkooXDCEubsIJL8l0LromHzSq2Nury8T AO6qaDXMN3AzzvAgQFIc3I92uQc71khfK4HCGvLYswG2dSPSAyV08S6Orx/FDYrfYAa9 7CB540PwHyoF/vnoi3rCfGiRd42+DRXQ7JmaWfFaj89pjU/nVNTNm4xORM0fOUasQMAH iZx16k4h9r/qcOIN/50m494ircHMPh+CJK6c+wU5pimXWkguL/EVqi5gZ+TkqXgXf3FB Tv5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=AsXT2Tz/; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j1-v6si14182012plk.257.2018.05.21.06.50.57; Mon, 21 May 2018 06:51:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=AsXT2Tz/; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752910AbeEUNul (ORCPT + 99 others); Mon, 21 May 2018 09:50:41 -0400 Received: from mail-qt0-f196.google.com ([209.85.216.196]:38219 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752862AbeEUNue (ORCPT ); Mon, 21 May 2018 09:50:34 -0400 Received: by mail-qt0-f196.google.com with SMTP id m9-v6so18961322qtb.5; Mon, 21 May 2018 06:50:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=TZIvihqdtxpuJArISGFiuFRuhpmycSlnUMCB1JCT+PI=; b=AsXT2Tz/xX0K0k1XwWd7MOdViWYVbWB9ungYsnXcv06E09xHVayHEDlxUaMeCvov61 1g5ypSDeABRgmNax4twJfblXu62dpKUNjGmL5jMAxsSQ3O8LL+ZzVvpJGrqosg+0zvzI a+uJFNpMSNznBouq3H26lfy6q5LSeyPloSef27OW6/nFB9l2c95y72QMs07FxHXa3rAo Z69yUK1k00gxmoRvnaMvPgHWjKN7b3COfehUBawKUcvgBd7OtECyCWgn7E6TPwoOsh+h KCTVzKqrPrttgCV2fzTAk3gj6HHMUu1lxCFCXV+KA8ySXv05D+Y7fZkDGbpGGO7is6+B l31A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=TZIvihqdtxpuJArISGFiuFRuhpmycSlnUMCB1JCT+PI=; b=aGMUkR1049mrz5hKP5235eBSw0vA6KSWjlo8iq7IVMonVbKRwQRoTBQUIfO+yKfN6g tarfYkMpelo8P35ae500sWLWDlSit1ipl9kNj/VLt3OShbWfyVYUb6dMHouC/ohMbSyj rLUkjbW8SU8zOEI1Ad1tsmdNkSEiMsZxwpwa4d3+6NlaMux4NAxrURHGEK1wW54/7C1O NlyiZodSCet6IpUhmqpRDkoRTBztbnu/lxVcAaZsA4WTpzJDNwms2hqOICiQJ1ni2JJW MhY2u3GMqv+hGQysyNhXko13QIflzVmILtFBNCZEloSV/OffrfKem/HqW8h9ACLKGbcE I9qA== X-Gm-Message-State: ALKqPwfJ85KEqDI2+KwuCXeQuqnvi/VGfxNkZ1TiJhtgU/6E4Y/O/NYW E2oMGJnosJudtgGDzCDjQS8swksw2ti/bia+5A0= X-Received: by 2002:ac8:1b18:: with SMTP id y24-v6mr17706975qtj.161.1526910633525; Mon, 21 May 2018 06:50:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.58.170 with HTTP; Mon, 21 May 2018 06:50:32 -0700 (PDT) In-Reply-To: <1526895424-22894-3-git-send-email-hl@rock-chips.com> References: <1526895424-22894-1-git-send-email-hl@rock-chips.com> <1526895424-22894-3-git-send-email-hl@rock-chips.com> From: Enric Balletbo Serra Date: Mon, 21 May 2018 15:50:32 +0200 Message-ID: Subject: Re: [PATCH v6 3/5] soc: rockchip: split rockchip_typec_phy struct to separate header To: Lin Huang Cc: Sean Paul , David Airlie , Chris Zhong , Kishon Vijay Abraham I , Doug Anderson , Brian Norris , "open list:ARM/Rockchip SoC..." , =?UTF-8?Q?Heiko_St=C3=BCbner?= , daniel.vetter@intel.com, jani.nikula@linux.intel.com, dri-devel , Linux ARM , linux-kernel , Rob Herring , "devicetree@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Lin, 2018-05-21 11:37 GMT+02:00 Lin Huang : > we may use rockchip_phy_typec struct in other driver, so split > it to separate header. > That patch does more than just split some structs to a public header, it also introduces new structs and new parameters related to the phy_config feature. IMHO you should first move the current structs and introduce the new phy_config stuff in the following patch (4/5). I am not sure about the maintainer preferences, but at least, if the maintainer is fine like is now, I'd explain that you introduce new elements in the commit message. Best regards, Enric > Signed-off-by: Lin Huang > --- > Changes in v2: > - None > Changes in v3: > - None > Changes in v4: > - None > Changes in v5: > - None > Changes in v6: > - new patch here > > drivers/phy/rockchip/phy-rockchip-typec.c | 47 +---------------------- > include/soc/rockchip/rockchip_phy_typec.h | 63 +++++++++++++++++++++++++++++++ > 2 files changed, 64 insertions(+), 46 deletions(-) > create mode 100644 include/soc/rockchip/rockchip_phy_typec.h > > diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c > index 76a4b58..795055f 100644 > --- a/drivers/phy/rockchip/phy-rockchip-typec.c > +++ b/drivers/phy/rockchip/phy-rockchip-typec.c > @@ -63,6 +63,7 @@ > > #include > #include > +#include > > #define CMN_SSM_BANDGAP (0x21 << 2) > #define CMN_SSM_BIAS (0x22 << 2) > @@ -349,52 +350,6 @@ > #define MODE_DFP_USB BIT(1) > #define MODE_DFP_DP BIT(2) > > -struct usb3phy_reg { > - u32 offset; > - u32 enable_bit; > - u32 write_enable; > -}; > - > -/** > - * struct rockchip_usb3phy_port_cfg: usb3-phy port configuration. > - * @reg: the base address for usb3-phy config. > - * @typec_conn_dir: the register of type-c connector direction. > - * @usb3tousb2_en: the register of type-c force usb2 to usb2 enable. > - * @external_psm: the register of type-c phy external psm clock. > - * @pipe_status: the register of type-c phy pipe status. > - * @usb3_host_disable: the register of type-c usb3 host disable. > - * @usb3_host_port: the register of type-c usb3 host port. > - * @uphy_dp_sel: the register of type-c phy DP select control. > - */ > -struct rockchip_usb3phy_port_cfg { > - unsigned int reg; > - struct usb3phy_reg typec_conn_dir; > - struct usb3phy_reg usb3tousb2_en; > - struct usb3phy_reg external_psm; > - struct usb3phy_reg pipe_status; > - struct usb3phy_reg usb3_host_disable; > - struct usb3phy_reg usb3_host_port; > - struct usb3phy_reg uphy_dp_sel; > -}; > - > -struct rockchip_typec_phy { > - struct device *dev; > - void __iomem *base; > - struct extcon_dev *extcon; > - struct regmap *grf_regs; > - struct clk *clk_core; > - struct clk *clk_ref; > - struct reset_control *uphy_rst; > - struct reset_control *pipe_rst; > - struct reset_control *tcphy_rst; > - const struct rockchip_usb3phy_port_cfg *port_cfgs; > - /* mutex to protect access to individual PHYs */ > - struct mutex lock; > - > - bool flip; > - u8 mode; > -}; > - > struct phy_reg { > u16 value; > u32 addr; > diff --git a/include/soc/rockchip/rockchip_phy_typec.h b/include/soc/rockchip/rockchip_phy_typec.h > new file mode 100644 > index 0000000..be6af0e > --- /dev/null > +++ b/include/soc/rockchip/rockchip_phy_typec.h > @@ -0,0 +1,63 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd > + * Author: Lin Huang > + */ > + > +#ifndef __SOC_ROCKCHIP_PHY_TYPEC_H > +#define __SOC_ROCKCHIP_PHY_TYPEC_H > + > +struct usb3phy_reg { > + u32 offset; > + u32 enable_bit; > + u32 write_enable; > +}; > + > +/** > + * struct rockchip_usb3phy_port_cfg: usb3-phy port configuration. > + * @reg: the base address for usb3-phy config. > + * @typec_conn_dir: the register of type-c connector direction. > + * @usb3tousb2_en: the register of type-c force usb2 to usb2 enable. > + * @external_psm: the register of type-c phy external psm clock. > + * @pipe_status: the register of type-c phy pipe status. > + * @usb3_host_disable: the register of type-c usb3 host disable. > + * @usb3_host_port: the register of type-c usb3 host port. > + * @uphy_dp_sel: the register of type-c phy DP select control. > + */ > +struct rockchip_usb3phy_port_cfg { > + unsigned int reg; > + struct usb3phy_reg typec_conn_dir; > + struct usb3phy_reg usb3tousb2_en; > + struct usb3phy_reg external_psm; > + struct usb3phy_reg pipe_status; > + struct usb3phy_reg usb3_host_disable; > + struct usb3phy_reg usb3_host_port; > + struct usb3phy_reg uphy_dp_sel; > +}; > + > +struct phy_config { > + int swing; > + int pe; > +}; > + > +struct rockchip_typec_phy { > + struct device *dev; > + void __iomem *base; > + struct extcon_dev *extcon; > + struct regmap *grf_regs; > + struct clk *clk_core; > + struct clk *clk_ref; > + struct reset_control *uphy_rst; > + struct reset_control *pipe_rst; > + struct reset_control *tcphy_rst; > + const struct rockchip_usb3phy_port_cfg *port_cfgs; > + /* mutex to protect access to individual PHYs */ > + struct mutex lock; > + struct phy_config config[3][4]; > + bool flip; > + u8 mode; > + int (*typec_phy_config)(struct phy *phy, int link_rate, > + int lanes, u8 swing, u8 pre_emp); > +}; > + > +#endif > -- > 2.7.4 >