Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1014710imm; Fri, 15 Jun 2018 09:47:31 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLdzQtnbqkWRydgbULPWMaFfL7j7/Fvu76NXOruN0pN72iw/i8GqDcON1xgHQyl9dp+c8KL X-Received: by 2002:a17:902:1566:: with SMTP id b35-v6mr2913429plh.107.1529081251276; Fri, 15 Jun 2018 09:47:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529081251; cv=none; d=google.com; s=arc-20160816; b=P1iS6R2ffDlPJMV5zW9nQ20nzvDSZTKrMVRHttz9Lvpv6dAV4VrLiTS0Kku0oTV9JQ tvf0H+WTf0723R6S8OfuwJXSwqNWa7UBFwiM59v1rXby9/kqUYoDORaINOwKddjD1zoQ C54WMopLh3JHVyTPDQiAU/ND9LmqxFQvWU3XmUDvmGRvq0me03sYv+bAnuyYvG76wqTw aTxDHXWJ1olle0Qj8kndG3ztvPLchTeZsrVHSo/j6XBp7R8L18V8cFs+tQ98yfJFm0Sv 1nMNhPrhyo5OqJaTJPvXguHaeUOCCjiztNW60a/HKNVqGmc9NZMDjw1daPMwdnYH3M/v Sa8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=wYr78dlIKjP+IJXiFmuegAIAaR5LFN8nbW9q3SDNUDg=; b=cLWwicxOP8yKAj1zHiLAddVkk4TfEyRul9kTgW34Q2K+EBrR1kCp2QOhcHInK6qwbg Oa22KNLOYj2CtGGxKYfEw+6PlR/Pfjs3aw5jZRffsiRG4WmEI76pCdTiL/ruT/UkBnz1 qTsFCVlqFlrLjNCdHOih6nCmGghwUx/YkBeu+mqbSBYcRITl7ycecONdNYLG2umJpiWs z5yaO2Fcdxfgwq4lpT/TiN4VZT5lqFoSsu+zKc7w1dVkh6Rbf//MsT8ie6pKSTmFUZIY l1/XtY9af+C2GtI+mYUT9PGS/3p5/4XtP/WPIQ/aNvKDMQdW/ORknoz1ZGrWpQ1mnGYN hGlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=F2Aplpzx; 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 u8-v6si7806574pfm.63.2018.06.15.09.47.16; Fri, 15 Jun 2018 09:47:31 -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=F2Aplpzx; 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 S966272AbeFOQpo (ORCPT + 99 others); Fri, 15 Jun 2018 12:45:44 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:54615 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966026AbeFOQpl (ORCPT ); Fri, 15 Jun 2018 12:45:41 -0400 Received: by mail-wm0-f67.google.com with SMTP id o13-v6so4489540wmf.4; Fri, 15 Jun 2018 09:45:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wYr78dlIKjP+IJXiFmuegAIAaR5LFN8nbW9q3SDNUDg=; b=F2AplpzxDxBmXE2hJGUN65xnasxYWza7JS7R+oNbXJLDopphq21CCrTNKNHbxHQ7V2 acYk1HYNITI2buFepAT/ZveZc22p3LRbVQs/T2eAJ/wTpRRoF1KI2WzGU7hSm1DTDePr 60xY2N78yvm5Wjz5DygPqYlNE6Vdxy83ELV20YIpbSJ441Rpd9NJKAv8ne55Y9Ea7ILb 3JcLe0jNUd9m0zhfUMrlhXMoenzGFlAs3ZusSu9rAv0Meg5gN2BAwYkDg5/lA5w9z535 7OkvMWZx8QK55xzQ7qO8+g4HY19H+hg/wMjIq8H83EHeig8JvhmuECZfa1bXzbP/dXNN mj8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wYr78dlIKjP+IJXiFmuegAIAaR5LFN8nbW9q3SDNUDg=; b=A5ankuvp86tfTl7wk9Vsy5AA9e0cLA5gxlxalCYEQt/9mvMo+4fLtVLjgLWdd9OVPk IRo3NQLwezKuoNsZGYVLZ4/mc3KRA3ZOnbNAquLGTKOvGr+zGI4Lk3cldVpcfsY5FZLk tKAMXp4kJQjgc5bdv+nGUwcQ5tngwUQDy3lzcZxtsb34SY44Lj3iTCcRV33VHA5/KmSj LUsLUDJ6KzI6NCM4mXrgcPWY7VIsTgbwxBY3jB8ymtoxhq1hLQquqmGsnPk7Hwql+7tR 61Bzj7j3QGZtALBQBwvRK/0VgbOfC9wK31mVNoGGKWPeC95RHWwslJvJmGh+5gS9pI3M BPZg== X-Gm-Message-State: APt69E2Ny39pe9QBGl/vvj3TBy92g/gbni8/qTGaZvYWYzIQxPDj8Iqv jGpxEK0b5KjJvjK5rzv7ucg= X-Received: by 2002:a1c:387:: with SMTP id 129-v6mr1855306wmd.53.1529081139578; Fri, 15 Jun 2018 09:45:39 -0700 (PDT) Received: from jernej-laptop.localnet ([194.152.15.144]) by smtp.gmail.com with ESMTPSA id d3-v6sm7584462wrr.90.2018.06.15.09.45.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Jun 2018 09:45:38 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: linux-sunxi@googlegroups.com Cc: maxime.ripard@bootlin.com, wens@csie.org, robh+dt@kernel.org, airlied@linux.ie, gustavo@padovan.org, maarten.lankhorst@linux.intel.com, seanpaul@chromium.org, mark.rutland@arm.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: Re: [linux-sunxi] [PATCH v2 20/27] drm/sun4i: Don't change clock bits in DW HDMI PHY driver Date: Fri, 15 Jun 2018 18:44:33 +0200 Message-ID: <8789732.RJMkczUIGD@jernej-laptop> In-Reply-To: <20180612200036.21483-21-jernej.skrabec@siol.net> References: <20180612200036.21483-1-jernej.skrabec@siol.net> <20180612200036.21483-21-jernej.skrabec@siol.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dne torek, 12. junij 2018 ob 22:00:29 CEST je Jernej Skrabec napisal(a): > DW HDMI PHY driver and PHY clock driver share same registers. Make sure > that DW HDMI PHY setup code doesn't change any clock related bits and > set them to 0 during initialization. > > Signed-off-by: Jernej Skrabec > --- > drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 2 +- > drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 12 +++++++++++- > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h > b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h index 79154f0f674a..3ba71aff92fc > 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h > +++ b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h > @@ -98,7 +98,7 @@ > #define SUN8I_HDMI_PHY_PLL_CFG1_LDO2_EN BIT(29) > #define SUN8I_HDMI_PHY_PLL_CFG1_LDO1_EN BIT(28) > #define SUN8I_HDMI_PHY_PLL_CFG1_HV_IS_33 BIT(27) > -#define SUN8I_HDMI_PHY_PLL_CFG1_CKIN_SEL BIT(26) > +#define SUN8I_HDMI_PHY_PLL_CFG1_CKIN_SEL_MSK BIT(26) > #define SUN8I_HDMI_PHY_PLL_CFG1_PLLEN BIT(25) > #define SUN8I_HDMI_PHY_PLL_CFG1_LDO_VSET(x) ((x) << 22) > #define SUN8I_HDMI_PHY_PLL_CFG1_UNKNOWN(x) ((x) << 20) > diff --git a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c > b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c index 966688f04741..cd07ceb71601 > 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c > +++ b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c > @@ -183,7 +183,13 @@ static int sun8i_hdmi_phy_config_h3(struct dw_hdmi > *hdmi, regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_ANA_CFG1_REG, > SUN8I_HDMI_PHY_ANA_CFG1_TXEN_MASK, 0); > > - regmap_write(phy->regs, SUN8I_HDMI_PHY_PLL_CFG1_REG, pll_cfg1_init); > + /* > + * NOTE: We have to be careful not to overwrite PHY parent > + * clock selection bit and clock divider. > + */ > + regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_PLL_CFG1_REG, > + (u32)~SUN8I_HDMI_PHY_PLL_CFG1_CKIN_SEL_MSK, > + pll_cfg1_init); > regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_PLL_CFG2_REG, > (u32)~SUN8I_HDMI_PHY_PLL_CFG2_PREDIV_MSK, > pll_cfg2_init); > @@ -352,6 +358,10 @@ static void sun8i_hdmi_phy_init_h3(struct > sun8i_hdmi_phy *phy) SUN8I_HDMI_PHY_ANA_CFG3_SCLEN | > SUN8I_HDMI_PHY_ANA_CFG3_SDAEN); > > + /* reset PLL clock configuration */ > + regmap_write(phy->regs, SUN8I_HDMI_PHY_PLL_CFG1_REG, 0); > + regmap_write(phy->regs, SUN8I_HDMI_PHY_PLL_CFG2_REG, 0); > + For some reason, this change breaks HDMI on H3. Clearing only PLL parent selection bit works ok, though. I'll fix it in next revision. Best regards, Jernej > /* set HW control of CEC pins */ > regmap_write(phy->regs, SUN8I_HDMI_PHY_CEC_REG, 0);