Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1709379
| Path | csiph.com!news.redatomik.org!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Andrew Jeffery <andrew@aj.id.au> |
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] pinctrl: aspeed: Fix hardware strap register write logic |
| Date | Fri, 11 Aug 2017 10:50:01 +0200 |
| Message-ID | <uddNL-1hc-3@gated-at.bofh.it> (permalink) |
| References | <udcyl-A7-9@gated-at.bofh.it> |
| X-Original-To | Yong Li <sdliyong@gmail.com>, linus.walleij@linaro.org, joel@jms.id.au, arnd@arndb.de, raltherr@google.com, robh@kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org |
| X-Greylist | delayed 534 seconds by postgrey-1.27 at vger.kernel.org; Fri, 11 Aug 2017 04:41:19 EDT |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=aj.id.au; h= content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=nMppe18jcI7D35WGGcsbEKlOovVFUuyETtIZxeMyp gY=; b=aHNo7IrPM6sLjG3LFLW5qBYbFOZ7bz+HMLGULPsRBSyAK8x6c5NQL7l7r zzudlqCugx3s5p6VaC7KK8gWuF+HcxW2EnE8iQk/HewhoYoXgiqq2/jQmzpPWVeO F/qMri2xcRtO/1nHrDH4n9AkNs6RXhIZZzs8PedMFEgs/Af96Qpe47CMr/5lDpgy YQjrUB62hm/LpIvgFFNj9rtc680KmPTg+iF375zO8Wz65WMQ/fgi27HyyTSUbTaM XzOTKrVB1GeUgfC7KXD+kciSEZIo5LybOg1CLUNiQCWlMEsY7Th9FqL5zK3MOXi9 RXPqHLXGJM5eQCVTQOWR4FmjOIe1Q== |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=nMppe18jcI7D35WGGc sbEKlOovVFUuyETtIZxeMypgY=; b=hHOR2Ls5Oe8sWEXUxf1UXEzJvWzv8/duy5 /5xCb0aIUJq+2M9SBB2pSqT4wD5Gaxn0g0YAAtzhlL9OHvO9jBFxFq0twAa+SI7G s4Ia8wCq+Z64C7VhS/8QVIdz7X35d70dqJ+UwVS3nBYjnIIFHPx+wk76IwY8Won5 3SiJLdLFZ4Kbxtami+stij7Kdeua6CTd84GO8ogZ+qb7GUDdYOgnbBo5Zg2eDtB4 Xly31NM9uIHYHBJFlKLKx3XezQzq50Fv+J1ixgcGpxjXIUOysL+RVZ2p7jyRZESy EkB0dtlxyn9kc26zYdReBayaZMej4Ggy7Glqv8sn6lwO4My0WJOw== |
| X-Me-Sender | <xms:mWuNWS0p1vyWA8kacsyNESzOtD72LLOgi4OYM67ex897uy_IZMOFMw> |
| X-Sasl-Enc | rtYBcrG9+F4BBX4/FxhxN0bKoqy0e3KDuUhD5yf8RD7W 1502440344 |
| Content-Type | multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-93oxR4C5jvsipe1ALCdw" |
| X-Mailer | Evolution 3.22.6-1ubuntu1 |
| MIME-Version | 1.0 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 121 |
| Organization | linux.* mail to news gateway |
| X-Original-Date | Fri, 11 Aug 2017 18:02:15 +0930 |
| X-Original-Message-ID | <1502440335.7946.23.camel@aj.id.au> |
| X-Original-References | <1502436472-136063-1-git-send-email-sdliyong@gmail.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1709379 |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
Hi Yong, On Fri, 2017-08-11 at 15:27 +0800, Yong Li wrote: > The hardware strap register(SCU70) only accepts write ‘1’, > to clear it to ‘0’, must set bits(write ‘1’) to SCU7C > > > Signed-off-by: Yong Li <sdliyong@gmail.com> > --- > drivers/pinctrl/aspeed/pinctrl-aspeed.c | 9 +++++++-- > drivers/pinctrl/aspeed/pinctrl-aspeed.h | 1 + > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed.c b/drivers/pinctrl/aspeed/pinctrl-aspeed.c > index a86a4d6..4305052 100644 > --- a/drivers/pinctrl/aspeed/pinctrl-aspeed.c > +++ b/drivers/pinctrl/aspeed/pinctrl-aspeed.c > @@ -213,8 +213,13 @@ static int aspeed_sig_expr_set(const struct aspeed_sig_expr *expr, > > if (desc->ip == ASPEED_IP_SCU && desc->reg == HW_STRAP2) > > continue; > > > - ret = regmap_update_bits(maps[desc->ip], desc->reg, > > - desc->mask, val); > > + if (desc->ip == ASPEED_IP_SCU && desc->reg == HW_STRAP1 && > > + val == 0) > > + ret = regmap_update_bits(maps[desc->ip], HW_REVISION_ID, > > + desc->mask, desc->mask); > > + else > > + ret = regmap_update_bits(maps[desc->ip], desc->reg, > + desc->mask, val); Good catch! However, this looks like it's only true on the AST2500 (and related) SoCs. The AST2400 will clear the bits on writing 0 to HW_STRAP1, so you will need some strategy to differentiate the two. You're adding the HW_REVISION_ID offset, so maybe we could read that back and write HW_REVISION_ID if the top byte is 0x04. This would save some pain propagating the compatible through to here. For reference, HW_REVISION_ID is structured as: 31:24: Reserved - SoC generation AST11xx: 0x00 AST20xx: 0x00 AST21xx: 0x00 AST22xx: 0x00 AST23xx: 0x01 AST13xx: 0x01 AST10xx: 0x01 AST24xx: 0x02 AST14xx: 0x02 AST12xx: 0x02 AST25xx: 0x04 23:16: Hardware revision A0: 0x00 A1: 0x01 A2: 0x03 15:8: Chip bonding option 7:0: Reserved Cheers, Andrew > > > if (ret) > > return ret; > diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed.h b/drivers/pinctrl/aspeed/pinctrl-aspeed.h > index fa125db..d4d7f03 100644 > --- a/drivers/pinctrl/aspeed/pinctrl-aspeed.h > +++ b/drivers/pinctrl/aspeed/pinctrl-aspeed.h > @@ -251,6 +251,7 @@ > #define SCU3C 0x3C /* System Reset Control/Status Register */ > #define SCU48 0x48 /* MAC Interface Clock Delay Setting */ > #define HW_STRAP1 0x70 /* AST2400 strapping is 33 bits, is split */ > +#define HW_REVISION_ID 0x7C /* Silicon revision ID register */ > #define SCU80 0x80 /* Multi-function Pin Control #1 */ > #define SCU84 0x84 /* Multi-function Pin Control #2 */ > #define SCU88 0x88 /* Multi-function Pin Control #3 */
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH] pinctrl: aspeed: Fix hardware strap register write logic Yong Li <sdliyong@gmail.com> - 2017-08-11 09:30 +0200 Re: [PATCH] pinctrl: aspeed: Fix hardware strap register write logic Andrew Jeffery <andrew@aj.id.au> - 2017-08-11 10:50 +0200
csiph-web