Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2167655yba; Wed, 3 Apr 2019 02:43:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqw5GsEpiTQjeFQUurdAjskHe6NfLTPEPOthfV7XV2g3sUv79opqz+ZJGsINiIyqd2Gj9oK9 X-Received: by 2002:a62:b40b:: with SMTP id h11mr64121601pfn.133.1554284621669; Wed, 03 Apr 2019 02:43:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554284621; cv=none; d=google.com; s=arc-20160816; b=EPYZ079NEuM/tVnGrP5ftAxmDfDFFqP2c7+N7XinCHsa3QLZfU6U409AG7MtOwgHgm xFfiQag9bg2G1RQ/qT5rpKXRvu5/LcveKHnB+3WX/deEAbw7aGeNJdaK+Nn6InD6lrnt GAZjdMQpw7XvqT1GuZIJa/oLCr2UIwM0RdUrbJoM4qDRRDtOzRA1W4232ywHLWl87U5o yuhTfo2xdKaHChS0Mxngn4b1Tp68dg/l7aUFuCkoQZ+TVxQRkWHd9lce6kVTEAM7c1eb Z6C4lwxOZeXN9rslH3dgMh6LvTC2wfjvUZ4IKn80cFjaPOi9+SNDXrCVIrp6idMocmi+ UbIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=3KTllqtYqJ+It9ht4lccxjOHsVVT85dZQFCEqgJ70KU=; b=LFWrprvbgrUTdNoXbfa4sns0vKbuRFWpo1qUhd98rVanHXD3oB1bdcMAfvy2QW4g3n 2u/k+QCYY04FEHQA5YOlH0WXSgxtTbk/HKq2+TRPa6aDGQ69OUADoEDGG7+T7FV0jYI3 5hDXA4T+2FwavYOE5+govXVIXXSSHHsMDqijQMRHDkfVCtB9FNcPD3NS1SQtJ7hH9Zga Cyk3hl/0nGzIUGIJ3v/FNY+AnI/BpeXsMnqPzcTUDYX3Zq4Gdc5CkGFKATJVyeNB+k94 fhOmL5E3VS8EPD8YUT4/LuiyPvY51bBItNx7W3yuETypsXvJAbtdlbyoVHZNcsJpReJ+ 3v/A== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 89si13931220pld.265.2019.04.03.02.43.26; Wed, 03 Apr 2019 02:43:41 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726558AbfDCJmk (ORCPT + 99 others); Wed, 3 Apr 2019 05:42:40 -0400 Received: from regular1.263xmail.com ([211.150.70.206]:38392 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725959AbfDCJmj (ORCPT ); Wed, 3 Apr 2019 05:42:39 -0400 Received: from zhangqing?rock-chips.com (unknown [192.168.167.130]) by regular1.263xmail.com (Postfix) with ESMTP id 5130920B; Wed, 3 Apr 2019 17:42:32 +0800 (CST) X-263anti-spam: KSV:0;BIG:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ADDR-CHECKED4: 1 X-ABS-CHECKED: 1 X-SKE-CHECKED: 1 X-ANTISPAM-LEVEL: 2 Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P18217T139987412580096S1554284546411238_; Wed, 03 Apr 2019 17:42:32 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: <7e10dcf79d4e5032643ab1f239337916> X-RL-SENDER: zhangqing@rock-chips.com X-SENDER: zhangqing@rock-chips.com X-LOGIN-NAME: zhangqing@rock-chips.com X-FST-TO: heiko@sntech.de X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: Elaine Zhang To: heiko@sntech.de Cc: mturquette@baylibre.com, sboyd@kernel.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, xxx@rock-chips.com, xf@rock-chips.com, huangtao@rock-chips.com, Finley Xiao , Elaine Zhang Subject: [PATCH v1 3/6] clk: rockchip: add a COMPOSITE_DIV_OFFSET clock-type Date: Wed, 3 Apr 2019 17:42:26 +0800 Message-Id: <1554284549-24916-4-git-send-email-zhangqing@rock-chips.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1554284549-24916-1-git-send-email-zhangqing@rock-chips.com> References: <1554284549-24916-1-git-send-email-zhangqing@rock-chips.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Finley Xiao The div offset of some clocks are different from their mux offset and the COMPOSITE clock-type require that div and mux offset are the same, so add a new COMPOSITE_DIV_OFFSET clock-type to handle that. Signed-off-by: Finley Xiao Signed-off-by: Elaine Zhang --- drivers/clk/rockchip/clk.c | 9 ++++++--- drivers/clk/rockchip/clk.h | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c index 0256a99f06f3..0a8a694a41ab 100644 --- a/drivers/clk/rockchip/clk.c +++ b/drivers/clk/rockchip/clk.c @@ -46,7 +46,7 @@ static struct clk *rockchip_clk_register_branch(const char *name, const char *const *parent_names, u8 num_parents, void __iomem *base, int muxdiv_offset, u8 mux_shift, u8 mux_width, u8 mux_flags, - u8 div_shift, u8 div_width, u8 div_flags, + int div_offset, u8 div_shift, u8 div_width, u8 div_flags, struct clk_div_table *div_table, int gate_offset, u8 gate_shift, u8 gate_flags, unsigned long flags, spinlock_t *lock) @@ -95,7 +95,10 @@ static struct clk *rockchip_clk_register_branch(const char *name, } div->flags = div_flags; - div->reg = base + muxdiv_offset; + if (div_offset) + div->reg = base + div_offset; + else + div->reg = base + muxdiv_offset; div->shift = div_shift; div->width = div_width; div->lock = lock; @@ -536,7 +539,7 @@ void __init rockchip_clk_register_branches( ctx->reg_base, list->muxdiv_offset, list->mux_shift, list->mux_width, list->mux_flags, - list->div_shift, list->div_width, + list->div_offset, list->div_shift, list->div_width, list->div_flags, list->div_table, list->gate_offset, list->gate_shift, list->gate_flags, flags, &ctx->lock); diff --git a/drivers/clk/rockchip/clk.h b/drivers/clk/rockchip/clk.h index 3c827ec0965c..20200a707611 100644 --- a/drivers/clk/rockchip/clk.h +++ b/drivers/clk/rockchip/clk.h @@ -407,6 +407,7 @@ struct rockchip_clk_branch { u8 mux_shift; u8 mux_width; u8 mux_flags; + int div_offset; u8 div_shift; u8 div_width; u8 div_flags; @@ -439,6 +440,28 @@ struct rockchip_clk_branch { .gate_flags = gf, \ } +#define COMPOSITE_DIV_OFFSET(_id, cname, pnames, f, mo, ms, mw, \ + mf, do, ds, dw, df, go, gs, gf) \ + { \ + .id = _id, \ + .branch_type = branch_composite, \ + .name = cname, \ + .parent_names = pnames, \ + .num_parents = ARRAY_SIZE(pnames), \ + .flags = f, \ + .muxdiv_offset = mo, \ + .mux_shift = ms, \ + .mux_width = mw, \ + .mux_flags = mf, \ + .div_offset = do, \ + .div_shift = ds, \ + .div_width = dw, \ + .div_flags = df, \ + .gate_offset = go, \ + .gate_shift = gs, \ + .gate_flags = gf, \ + } + #define COMPOSITE_NOMUX(_id, cname, pname, f, mo, ds, dw, df, \ go, gs, gf) \ { \ -- 1.9.1