From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34081C43331 for ; Fri, 27 Mar 2020 17:04:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 06B4E206F2 for ; Fri, 27 Mar 2020 17:04:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tnykoHw2" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727666AbgC0REt (ORCPT ); Fri, 27 Mar 2020 13:04:49 -0400 Received: from mail-io1-f67.google.com ([209.85.166.67]:41542 "EHLO mail-io1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726333AbgC0REt (ORCPT ); Fri, 27 Mar 2020 13:04:49 -0400 Received: by mail-io1-f67.google.com with SMTP id y24so10535632ioa.8 for ; Fri, 27 Mar 2020 10:04:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OKLY8TX9PBKTkw1igDhhrZ1fVl9lcNMkwfQ7KL1HIxA=; b=tnykoHw2n3S9fOwdLtVZZtlKip0gSPE8cylLNt1heu7ggdMFbgkq0l6Rk38A4P5oEV dCcoDTC+hU/tx629HLHBQCYAxl6VGpA/uNEh2PpSn/oiTcfjcjAk0kfEXmKDAW2lv8I/ wAs6rsd1FHtjpCji0GVFM3CNkd2t0UoBL+SksWwmXdmTY9iyHD/thM94OJPDqU2GU4us 4gP8AdM3EOMI9h9skNjoXuLMgUz58KBzgXI96mG4pWNy/YY4TSGi7zG8XICNDOEh80/x vIjleBpy3FKkpgV8JpqwBqKZVRBEvkgptJg0midoZRfhf91sOUWXJm89KTuzAb184Dlb iVmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OKLY8TX9PBKTkw1igDhhrZ1fVl9lcNMkwfQ7KL1HIxA=; b=MkgzZkZmhUS2FnExFDojFX3DO89KrVF5XhD3Tqim/outmwcyAXdyXXfR5dMyQxiiCM OWoT6QJ7BxhsCPMRzVfdmhCRgj4dAa/UNFSiAMl1LTcV6TzIXMO7QMo3E+SltY+ubG3i sl+A+v9RGTQYSdAPZOuRDB7FTvMeqZ3sI4JGQBxGLc/81jfcSddYYUZI6iuIcVhLXrQL urBLpeW/0QVZYV2DS3bVB1VHwBGxSM7Q13OQg2yw7ua2s/MB9dawyWp/YQGpcH/jQzdT nl02qO2GqKAymXiPnAo98FzhA8P46auw4RrgxI4tejDVGENxyrYv9tSGElp2VswL46DZ bOEA== X-Gm-Message-State: ANhLgQ0xxwCnC6cS+mDFme5Cw20A/p3E/bCHxNpJAiLcHb+4eidClXDU HXA7Fq0sjR8vueqyRy8bPkvETX66S1/vvPNlH08= X-Google-Smtp-Source: ADFU+vufDyKMFwwgw+tNEwPgAyzzk95ZFgAPEIGMIb4IOXudF480dQIrfd/lzv15If/QLPsNwfVOpTL5L6O/X8Yozx4= X-Received: by 2002:a5d:954c:: with SMTP id a12mr6842138ios.25.1585328686840; Fri, 27 Mar 2020 10:04:46 -0700 (PDT) MIME-Version: 1.0 References: <20200326174232.23365-1-andrew.smirnov@gmail.com> In-Reply-To: <20200326174232.23365-1-andrew.smirnov@gmail.com> From: Chris Healy Date: Fri, 27 Mar 2020 10:04:37 -0700 Message-ID: Subject: Re: [PATCH] ARM: vf610: report soc info via soc device To: Andrey Smirnov Cc: Shawn Guo , Lucas Stach , linux ARM , linux-kernel , linux-imx@nxp.com 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 On a VF610 Vybrid: Tested-by: Chris Healy On Thu, Mar 26, 2020 at 10:42 AM Andrey Smirnov wrote: > > The patch adds plumbing to soc device info code necessary to support > Vybrid devices. Use case in mind for this is CAAM driver, which > utilizes said API. > > Signed-off-by: Andrey Smirnov > Cc: Lucas Stach > Cc: Chris Healy > Cc: Shawn Guo > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-imx@nxp.com > --- > arch/arm/mach-imx/cpu.c | 16 ++++++++++ > arch/arm/mach-imx/mach-vf610.c | 53 ++++++++++++++++++++++++++++++++++ > arch/arm/mach-imx/mxc.h | 6 ++++ > 3 files changed, 75 insertions(+) > > diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c > index 06f8d64b65af..e3d12b21d6f6 100644 > --- a/arch/arm/mach-imx/cpu.c > +++ b/arch/arm/mach-imx/cpu.c > @@ -172,6 +172,22 @@ struct device * __init imx_soc_device_init(void) > ocotp_compat = "fsl,imx7ulp-ocotp"; > soc_id = "i.MX7ULP"; > break; > + case MXC_CPU_VF500: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF500"; > + break; > + case MXC_CPU_VF510: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF510"; > + break; > + case MXC_CPU_VF600: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF600"; > + break; > + case MXC_CPU_VF610: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF610"; > + break; > default: > soc_id = "Unknown"; > } > diff --git a/arch/arm/mach-imx/mach-vf610.c b/arch/arm/mach-imx/mach-vf610.c > index 9c929b09310c..565dc08412a2 100644 > --- a/arch/arm/mach-imx/mach-vf610.c > +++ b/arch/arm/mach-imx/mach-vf610.c > @@ -3,11 +3,63 @@ > * Copyright 2012-2013 Freescale Semiconductor, Inc. > */ > > +#include > #include > +#include > + > #include > #include > #include > > +#include "common.h" > +#include "hardware.h" > + > +#define MSCM_CPxCOUNT 0x00c > +#define MSCM_CPxCFG1 0x014 > + > +static void __init vf610_detect_cpu(void) > +{ > + struct device_node *np; > + u32 cpxcount, cpxcfg1; > + unsigned int cpu_type; > + void __iomem *mscm; > + > + np = of_find_compatible_node(NULL, NULL, "fsl,vf610-mscm-cpucfg"); > + if (WARN_ON(!np)) > + return; > + > + mscm = of_iomap(np, 0); > + of_node_put(np); > + > + if (WARN_ON(!mscm)) > + return; > + > + cpxcount = readl_relaxed(mscm + MSCM_CPxCOUNT); > + cpxcfg1 = readl_relaxed(mscm + MSCM_CPxCFG1); > + > + iounmap(mscm); > + > + cpu_type = cpxcount ? MXC_CPU_VF600 : MXC_CPU_VF500; > + > + if (cpxcfg1) > + cpu_type |= MXC_CPU_VFx10; > + > + mxc_set_cpu_type(cpu_type); > +} > + > +static void __init vf610_init_machine(void) > +{ > + struct device *parent; > + > + vf610_detect_cpu(); > + > + parent = imx_soc_device_init(); > + if (parent == NULL) > + pr_warn("failed to initialize soc device\n"); > + > + of_platform_default_populate(NULL, NULL, parent); > +} > + > static const char * const vf610_dt_compat[] __initconst = { > "fsl,vf500", > "fsl,vf510", > @@ -20,5 +72,6 @@ static const char * const vf610_dt_compat[] __initconst = { > DT_MACHINE_START(VYBRID_VF610, "Freescale Vybrid VF5xx/VF6xx (Device Tree)") > .l2c_aux_val = 0, > .l2c_aux_mask = ~0, > + .init_machine = vf610_init_machine, > .dt_compat = vf610_dt_compat, > MACHINE_END > diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h > index 2bfd2d59b4a6..48e6d781f15b 100644 > --- a/arch/arm/mach-imx/mxc.h > +++ b/arch/arm/mach-imx/mxc.h > @@ -33,6 +33,12 @@ > #define MXC_CPU_IMX7D 0x72 > #define MXC_CPU_IMX7ULP 0xff > > +#define MXC_CPU_VFx10 0x010 > +#define MXC_CPU_VF500 0x500 > +#define MXC_CPU_VF510 (MXC_CPU_VF500 | MXC_CPU_VFx10) > +#define MXC_CPU_VF600 0x600 > +#define MXC_CPU_VF610 (MXC_CPU_VF600 | MXC_CPU_VFx10) > + > #define IMX_DDR_TYPE_LPDDR2 1 > > #ifndef __ASSEMBLY__ > -- > 2.21.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFB8CC2D0E5 for ; Fri, 27 Mar 2020 17:04:52 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A34382072F for ; Fri, 27 Mar 2020 17:04:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Xj9COYj5"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tnykoHw2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A34382072F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=a3LOwz6HaqT7JJLa8C4i2MHr7NwmhrqaxwQHk4CeiiY=; b=Xj9COYj5tK3loH 54QXwJz+9aISsaTlitxi+6ZBXNMQaabSmOdztzEu9TPeqD+z6qfgaa6Ehu1Wmu2gim+tWGeIKOu4K EXNTe4CcOG5iUiN0opNF2/s8Zg5+ExiWuMGWpQPnCISmaCClDPZtC32Yn1H1aCEiLaNJeQjWuf2Dy yLrMo1JWgxfDJRQpgZ4Ix5a/aM77A1IAithg2afVQAIGshf0pHnkZfdvKLjPyxR4NUsgia1ne8nlg xcotoBtocXR8COqbMCihmCYoAXzBN2lUvbOiYHSy8Zs8SkGXEF+0wOAg5CFhyPoHUlZuTjWXndkrg wFIvCdt147j5IL4TCxrQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jHsPc-0000Ru-6w; Fri, 27 Mar 2020 17:04:52 +0000 Received: from mail-io1-xd43.google.com ([2607:f8b0:4864:20::d43]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jHsPZ-0000Qf-DT for linux-arm-kernel@lists.infradead.org; Fri, 27 Mar 2020 17:04:50 +0000 Received: by mail-io1-xd43.google.com with SMTP id o3so4993042ioh.2 for ; Fri, 27 Mar 2020 10:04:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OKLY8TX9PBKTkw1igDhhrZ1fVl9lcNMkwfQ7KL1HIxA=; b=tnykoHw2n3S9fOwdLtVZZtlKip0gSPE8cylLNt1heu7ggdMFbgkq0l6Rk38A4P5oEV dCcoDTC+hU/tx629HLHBQCYAxl6VGpA/uNEh2PpSn/oiTcfjcjAk0kfEXmKDAW2lv8I/ wAs6rsd1FHtjpCji0GVFM3CNkd2t0UoBL+SksWwmXdmTY9iyHD/thM94OJPDqU2GU4us 4gP8AdM3EOMI9h9skNjoXuLMgUz58KBzgXI96mG4pWNy/YY4TSGi7zG8XICNDOEh80/x vIjleBpy3FKkpgV8JpqwBqKZVRBEvkgptJg0midoZRfhf91sOUWXJm89KTuzAb184Dlb iVmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OKLY8TX9PBKTkw1igDhhrZ1fVl9lcNMkwfQ7KL1HIxA=; b=YMQT4P+anwKnr2UL5n/H+5s9Y2bZzii4X418STGIu2Ji63MeQEcduc83RUys4CaKH1 q+8y3u1yMZ7RtUyZeXs1fbRTbhhWBLvyBROZwGzkn/EMKX1LXdEXf3Xc7CCefWkbma4l EHECTwrL87k3mLdGCDtIFEe9GZ4G+gkLbXluSjsbdfk47F9trycYOu2MwcZMn7ZmDCo4 S1KPDW0gEFO9UL+hiY028xen3SLX9+jFcP5ZTIx71ArVGT+4iRlVGZDHvx0OAFGdVOzJ t3cTFn7ZWnWAKIhRVBr6xNqLZEquNd9j+KFWeChy2r3RUGJXTPvQ2w0Io0mDdfDuU5Ph 6C1Q== X-Gm-Message-State: ANhLgQ07LatP5VjBrEWog4/gkMEirhiL14n5xU2iXQkBt94kq/4vu9XD rNguv0KAID0C7qbXdVNWGO19f+5bAYudl1UWKiQ= X-Google-Smtp-Source: ADFU+vufDyKMFwwgw+tNEwPgAyzzk95ZFgAPEIGMIb4IOXudF480dQIrfd/lzv15If/QLPsNwfVOpTL5L6O/X8Yozx4= X-Received: by 2002:a5d:954c:: with SMTP id a12mr6842138ios.25.1585328686840; Fri, 27 Mar 2020 10:04:46 -0700 (PDT) MIME-Version: 1.0 References: <20200326174232.23365-1-andrew.smirnov@gmail.com> In-Reply-To: <20200326174232.23365-1-andrew.smirnov@gmail.com> From: Chris Healy Date: Fri, 27 Mar 2020 10:04:37 -0700 Message-ID: Subject: Re: [PATCH] ARM: vf610: report soc info via soc device To: Andrey Smirnov X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200327_100449_482494_27E6BA06 X-CRM114-Status: GOOD ( 16.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-imx@nxp.com, Shawn Guo , linux-kernel , linux ARM , Lucas Stach Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On a VF610 Vybrid: Tested-by: Chris Healy On Thu, Mar 26, 2020 at 10:42 AM Andrey Smirnov wrote: > > The patch adds plumbing to soc device info code necessary to support > Vybrid devices. Use case in mind for this is CAAM driver, which > utilizes said API. > > Signed-off-by: Andrey Smirnov > Cc: Lucas Stach > Cc: Chris Healy > Cc: Shawn Guo > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-imx@nxp.com > --- > arch/arm/mach-imx/cpu.c | 16 ++++++++++ > arch/arm/mach-imx/mach-vf610.c | 53 ++++++++++++++++++++++++++++++++++ > arch/arm/mach-imx/mxc.h | 6 ++++ > 3 files changed, 75 insertions(+) > > diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c > index 06f8d64b65af..e3d12b21d6f6 100644 > --- a/arch/arm/mach-imx/cpu.c > +++ b/arch/arm/mach-imx/cpu.c > @@ -172,6 +172,22 @@ struct device * __init imx_soc_device_init(void) > ocotp_compat = "fsl,imx7ulp-ocotp"; > soc_id = "i.MX7ULP"; > break; > + case MXC_CPU_VF500: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF500"; > + break; > + case MXC_CPU_VF510: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF510"; > + break; > + case MXC_CPU_VF600: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF600"; > + break; > + case MXC_CPU_VF610: > + ocotp_compat = "fsl,vf610-ocotp"; > + soc_id = "VF610"; > + break; > default: > soc_id = "Unknown"; > } > diff --git a/arch/arm/mach-imx/mach-vf610.c b/arch/arm/mach-imx/mach-vf610.c > index 9c929b09310c..565dc08412a2 100644 > --- a/arch/arm/mach-imx/mach-vf610.c > +++ b/arch/arm/mach-imx/mach-vf610.c > @@ -3,11 +3,63 @@ > * Copyright 2012-2013 Freescale Semiconductor, Inc. > */ > > +#include > #include > +#include > + > #include > #include > #include > > +#include "common.h" > +#include "hardware.h" > + > +#define MSCM_CPxCOUNT 0x00c > +#define MSCM_CPxCFG1 0x014 > + > +static void __init vf610_detect_cpu(void) > +{ > + struct device_node *np; > + u32 cpxcount, cpxcfg1; > + unsigned int cpu_type; > + void __iomem *mscm; > + > + np = of_find_compatible_node(NULL, NULL, "fsl,vf610-mscm-cpucfg"); > + if (WARN_ON(!np)) > + return; > + > + mscm = of_iomap(np, 0); > + of_node_put(np); > + > + if (WARN_ON(!mscm)) > + return; > + > + cpxcount = readl_relaxed(mscm + MSCM_CPxCOUNT); > + cpxcfg1 = readl_relaxed(mscm + MSCM_CPxCFG1); > + > + iounmap(mscm); > + > + cpu_type = cpxcount ? MXC_CPU_VF600 : MXC_CPU_VF500; > + > + if (cpxcfg1) > + cpu_type |= MXC_CPU_VFx10; > + > + mxc_set_cpu_type(cpu_type); > +} > + > +static void __init vf610_init_machine(void) > +{ > + struct device *parent; > + > + vf610_detect_cpu(); > + > + parent = imx_soc_device_init(); > + if (parent == NULL) > + pr_warn("failed to initialize soc device\n"); > + > + of_platform_default_populate(NULL, NULL, parent); > +} > + > static const char * const vf610_dt_compat[] __initconst = { > "fsl,vf500", > "fsl,vf510", > @@ -20,5 +72,6 @@ static const char * const vf610_dt_compat[] __initconst = { > DT_MACHINE_START(VYBRID_VF610, "Freescale Vybrid VF5xx/VF6xx (Device Tree)") > .l2c_aux_val = 0, > .l2c_aux_mask = ~0, > + .init_machine = vf610_init_machine, > .dt_compat = vf610_dt_compat, > MACHINE_END > diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h > index 2bfd2d59b4a6..48e6d781f15b 100644 > --- a/arch/arm/mach-imx/mxc.h > +++ b/arch/arm/mach-imx/mxc.h > @@ -33,6 +33,12 @@ > #define MXC_CPU_IMX7D 0x72 > #define MXC_CPU_IMX7ULP 0xff > > +#define MXC_CPU_VFx10 0x010 > +#define MXC_CPU_VF500 0x500 > +#define MXC_CPU_VF510 (MXC_CPU_VF500 | MXC_CPU_VFx10) > +#define MXC_CPU_VF600 0x600 > +#define MXC_CPU_VF610 (MXC_CPU_VF600 | MXC_CPU_VFx10) > + > #define IMX_DDR_TYPE_LPDDR2 1 > > #ifndef __ASSEMBLY__ > -- > 2.21.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel