From patchwork Tue Oct 25 03:51:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yinbo Zhu X-Patchwork-Id: 10483 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp795065wru; Mon, 24 Oct 2022 21:11:09 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6motzY0uiALwndj1MFtIeLePzYtTueiA3Sx90KvauG7S5a9V3GWbxm9c5UH/wN3TRTaadh X-Received: by 2002:aa7:c6c1:0:b0:460:f684:901a with SMTP id b1-20020aa7c6c1000000b00460f684901amr23010054eds.6.1666671068827; Mon, 24 Oct 2022 21:11:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666671068; cv=none; d=google.com; s=arc-20160816; b=SCxX5YPttAPU0IYfyROpJdVDhVMYWw76OTJMagJnjvvTAD/kD9lniWlAzVDiuF5fnd cmxnmt1+9NKGYH2XR+YxEosu6xJJWKXnAkbPM8iZvpM7InddD/sC80HJ4Ha61wNS54Nu L1UtwzyuVpABm5mM3JVFqFGJ0S3f/knJTB9efwZNdy+XUHcadILB8xN8x3NYc/T05QS+ Waqoi5OhMhqByUgwnIDmcCWXJsnvAddEBdCxqj6IVYm8vNulE2vFc83FBl3XFo2iS61r RQumW+fxKTx1G/AIS8kB4/LSs22jEQosr3fLEkmzbvHsh3XtCTsMNWIoRcEbciEPyOvi eb5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:to:from; bh=g8IjxAfyJYOFLDZVz86gWCSYXZFEiXXcFMcZsj43uW8=; b=oIM/Mju2KwIT+MOrHMgXfLVORbZi7WQjpoI8QWJsj5oTR60sLOwHhWAjDPGVtJZwQK Glv25G+pyNxp6+P6yFG3lX308e++XlO5Z6WTeFAAY7eRUXhl8OMhS4WitXR7IuMknOfW 498+rmRoHHi1cnWPEhO1EWLMdr41QxThVGPhNU7G+jSAHoQKEKt1jXLPv0/y9mRWyUQi 9f+hXhPLLxUROLPFDt9XZ2G0nMeeBcr+8CFThkJtTrOiNnLR+pMNPaKDSnRUlv95yQOO felF/CKvWwNn2UPDmjOshP7n3yYma7LX2j3WHRfg5kW/W+4JcTRDf+xsAZXsO0q/T+FM oOuQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ga15-20020a1709070c0f00b0072fb108db55si1668895ejc.895.2022.10.24.21.10.43; Mon, 24 Oct 2022 21:11:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230388AbiJYDvx (ORCPT + 99 others); Mon, 24 Oct 2022 23:51:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229714AbiJYDvn (ORCPT ); Mon, 24 Oct 2022 23:51:43 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3852825C42; Mon, 24 Oct 2022 20:51:38 -0700 (PDT) Received: from loongson.cn (unknown [10.180.13.64]) by gateway (Coremail) with SMTP id _____8CxbbdJXVdjaU8CAA--.4091S3; Tue, 25 Oct 2022 11:51:37 +0800 (CST) Received: from localhost.localdomain (unknown [10.180.13.64]) by localhost.localdomain (Coremail) with SMTP id AQAAf8AxDuJBXVdj2rMEAA--.18366S2; Tue, 25 Oct 2022 11:51:34 +0800 (CST) From: Yinbo Zhu To: Rob Herring , Krzysztof Kozlowski , Arnd Bergmann , Hector Martin , Lubomir Rintel , Conor Dooley , Linus Walleij , Hitomi Hasegawa , Heiko Stuebner , Brian Norris , Sven Peter , loongarch@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yinbo Zhu Subject: [PATCH v2 1/2] soc: loongson: add GUTS driver for loongson2 platforms Date: Tue, 25 Oct 2022 11:51:27 +0800 Message-Id: <20221025035128.21068-1-zhuyinbo@loongson.cn> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CM-TRANSID: AQAAf8AxDuJBXVdj2rMEAA--.18366S2 X-CM-SenderInfo: 52kx5xhqerqz5rrqw2lrqou0/ X-Coremail-Antispam: 1Uk129KBjvJXoW3AF47tw4UCFyDCF1rJr1kXwb_yoWftr4rpa 1fCa4rCrWUJF45Zrs8Ja48WFyY9a4xCasrZF4Igwn8ur97A34UXas7JFyUZFs7ArykAw12 qF95GayjkFWUAaDanT9S1TB71UUUUbJqnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU bfkFc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUAVWUZwA2ocxC64 kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28E F7xvwVC0I7IYx2IY6xkF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJw A2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJwAaw2AFwI0_Jw0_GFyle2I262IYc4CY 6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27wAqx4xG64xvF2IEw4CE5I8CrV C2j2WlYx0E2Ix0cI8IcVAFwI0_Jw0_WrylYx0Ex4A2jsIE14v26r4j6F4UMcvjeVCFs4IE 7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCY1x0262kKe7AKxVWUtVW8ZwCF04k20xvY0x 0EwIxGrwCF04k20xvE74AGY7Cv6cx26rWl4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1l4IxYO2xF xVAFwI0_Jw0_GFylx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWw C2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Xr0_ Ar1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJV WUCwCI42IY6I8E87Iv67AKxVW8JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIY CTnIWIevJa73UjIFyTuYvjxUIbyCDUUUU X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747631282542306242?= X-GMAIL-MSGID: =?utf-8?q?1747631282542306242?= The global utilities block controls PCIE device enabling, alternate function selection for multiplexed signals, consistency of HDA, USB and PCIE, configuration of memory controller, rtc controller, lio controller, and clock control. This patch adds a driver to manage and access global utilities block for loongarch architecture loongson2 SoCs. Initially only reading SVR and registering soc device are supported. Other guts accesses, such as reading PMON configuration by default, should eventually be added into this driver as well. Signed-off-by: Yinbo Zhu --- Change in v2: 1. Add architecture support commit log description. 2. Add other guts accesses plan commit log description. 3. Add "depends on LOONGARCH || COMPILE_TEST" for LOONGSON2_GUTS in Kconfig. 4. Move the scfg_guts to .c file from .h and delete .h. 5. Remove __packed on scfg_guts. MAINTAINERS | 6 + drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/loongson/Kconfig | 20 +++ drivers/soc/loongson/Makefile | 6 + drivers/soc/loongson/loongson2_guts.c | 189 ++++++++++++++++++++++++++ 6 files changed, 223 insertions(+) create mode 100644 drivers/soc/loongson/Kconfig create mode 100644 drivers/soc/loongson/Makefile create mode 100644 drivers/soc/loongson/loongson2_guts.c diff --git a/MAINTAINERS b/MAINTAINERS index 2d002509fc65..0f06dc83f7c6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11930,6 +11930,12 @@ S: Maintained F: Documentation/devicetree/bindings/pinctrl/loongson,ls2k-pinctrl.yaml F: drivers/pinctrl/pinctrl-loongson2.c +LOONGSON2 SOC SERIES GUTS DRIVER +M: Yinbo Zhu +L: loongarch@lists.linux.dev +S: Maintained +F: drivers/soc/loongson/loongson2_guts.c + LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) M: Sathya Prakash M: Sreekanth Reddy diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index e461c071189b..5dbb09f843f7 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -13,6 +13,7 @@ source "drivers/soc/fujitsu/Kconfig" source "drivers/soc/imx/Kconfig" source "drivers/soc/ixp4xx/Kconfig" source "drivers/soc/litex/Kconfig" +source "drivers/soc/loongson/Kconfig" source "drivers/soc/mediatek/Kconfig" source "drivers/soc/microchip/Kconfig" source "drivers/soc/pxa/Kconfig" diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 69ba6508cf2c..fff513bd522d 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -18,6 +18,7 @@ obj-y += imx/ obj-y += ixp4xx/ obj-$(CONFIG_SOC_XWAY) += lantiq/ obj-$(CONFIG_LITEX_SOC_CONTROLLER) += litex/ +obj-y += loongson/ obj-y += mediatek/ obj-y += microchip/ obj-y += pxa/ diff --git a/drivers/soc/loongson/Kconfig b/drivers/soc/loongson/Kconfig new file mode 100644 index 000000000000..04a4dd5192ef --- /dev/null +++ b/drivers/soc/loongson/Kconfig @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Loongson2 series SoC drivers +# + +menu "Loongson2 series SoC drivers" + +config LOONGSON2_GUTS + tristate "LOONGSON2 GUTS" + depends on LOONGARCH || COMPILE_TEST + select SOC_BUS + help + The global utilities block controls PCIE device enabling, alternate + function selection for multiplexed signals, consistency of HDA, USB + and PCIE, configuration of memory controller, rtc controller, lio + controller, and clock control. This patch adds a driver to manage + and access global utilities block for loongarch architecture loongson2 + SoCs. Initially only reading SVR and registering soc device are + supported. Other guts accesses, such as reading PMON configuration by + default, should eventually be added into this driver as well. diff --git a/drivers/soc/loongson/Makefile b/drivers/soc/loongson/Makefile new file mode 100644 index 000000000000..acfc90a624c9 --- /dev/null +++ b/drivers/soc/loongson/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Makefile for the Linux Kernel SoC loongson2 specific device drivers +# + +obj-$(CONFIG_LOONGSON2_GUTS) += loongson2_guts.o diff --git a/drivers/soc/loongson/loongson2_guts.c b/drivers/soc/loongson/loongson2_guts.c new file mode 100644 index 000000000000..15db9ebc3f14 --- /dev/null +++ b/drivers/soc/loongson/loongson2_guts.c @@ -0,0 +1,189 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Author: Yinbo Zhu + * Copyright (C) 2022-2023 Loongson Technology Corporation Limited + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct soc_device_attribute soc_dev_attr; +static struct soc_device *soc_dev; + +/* + * Global Utility Registers. + * + * Not all registers defined in this structure are available on all chips, so + * you are expected to know whether a given register actually exists on your + * chip before you access it. + * + * Also, some registers are similar on different chips but have slightly + * different names. In these cases, one name is chosen to avoid extraneous + * #ifdefs. + */ +struct scfg_guts { + u32 svr; /* Version Register */ + u8 res0[4]; + u16 feature; /* Feature Register */ + u32 vendor; /* Vendor Register */ + u8 res1[6]; + u32 id; + u8 res2[0x3ff8 - 0x18]; + u32 chip; +}; + +static struct guts { + struct scfg_guts __iomem *regs; + bool little_endian; +} *guts; + +struct loongson2_soc_die_attr { + char *die; + u32 svr; + u32 mask; +}; + +/* SoC die attribute definition for loongson2 platform */ +static const struct loongson2_soc_die_attr loongson2_soc_die[] = { + + /* + * LA-based SoCs Loongson2 Series + */ + + /* Die: 2k1000la, SoC: 2k1000la */ + { .die = "2K1000LA", + .svr = 0x00000013, + .mask = 0x000000ff, + }, + { }, +}; + +static const struct loongson2_soc_die_attr *loongson2_soc_die_match( + u32 svr, const struct loongson2_soc_die_attr *matches) +{ + while (matches->svr) { + if (matches->svr == (svr & matches->mask)) + return matches; + matches++; + }; + + return NULL; +} + +static u32 loongson2_guts_get_svr(void) +{ + u32 svr = 0; + + if (!guts || !guts->regs) + return svr; + + if (guts->little_endian) + svr = ioread32(&guts->regs->svr); + else + svr = ioread32be(&guts->regs->svr); + + return svr; +} + +static int loongson2_guts_probe(struct platform_device *pdev) +{ + struct device_node *root, *np = pdev->dev.of_node; + struct device *dev = &pdev->dev; + struct resource *res; + const struct loongson2_soc_die_attr *soc_die; + const char *machine; + u32 svr; + + /* Initialize guts */ + guts = devm_kzalloc(dev, sizeof(*guts), GFP_KERNEL); + if (!guts) + return -ENOMEM; + + guts->little_endian = of_property_read_bool(np, "little-endian"); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + guts->regs = ioremap(res->start, res->end - res->start + 1); + if (IS_ERR(guts->regs)) + return PTR_ERR(guts->regs); + + /* Register soc device */ + root = of_find_node_by_path("/"); + if (of_property_read_string(root, "model", &machine)) + of_property_read_string_index(root, "compatible", 0, &machine); + of_node_put(root); + if (machine) + soc_dev_attr.machine = devm_kstrdup(dev, machine, GFP_KERNEL); + + svr = loongson2_guts_get_svr(); + soc_die = loongson2_soc_die_match(svr, loongson2_soc_die); + if (soc_die) { + soc_dev_attr.family = devm_kasprintf(dev, GFP_KERNEL, + "Loongson %s", soc_die->die); + } else { + soc_dev_attr.family = devm_kasprintf(dev, GFP_KERNEL, "Loongson"); + } + if (!soc_dev_attr.family) + return -ENOMEM; + soc_dev_attr.soc_id = devm_kasprintf(dev, GFP_KERNEL, + "svr:0x%08x", svr); + if (!soc_dev_attr.soc_id) + return -ENOMEM; + soc_dev_attr.revision = devm_kasprintf(dev, GFP_KERNEL, "%d.%d", + (svr >> 4) & 0xf, svr & 0xf); + if (!soc_dev_attr.revision) + return -ENOMEM; + + soc_dev = soc_device_register(&soc_dev_attr); + if (IS_ERR(soc_dev)) + return PTR_ERR(soc_dev); + + pr_info("Machine: %s\n", soc_dev_attr.machine); + pr_info("SoC family: %s\n", soc_dev_attr.family); + pr_info("SoC ID: %s, Revision: %s\n", + soc_dev_attr.soc_id, soc_dev_attr.revision); + + return 0; +} + +static int loongson2_guts_remove(struct platform_device *dev) +{ + soc_device_unregister(soc_dev); + + return 0; +} + +/* + * Table for matching compatible strings, for device tree + * guts node, for Loongson2 SoCs. + */ +static const struct of_device_id loongson2_guts_of_match[] = { + { .compatible = "loongson,ls2k-guts", }, + {} +}; +MODULE_DEVICE_TABLE(of, loongson2_guts_of_match); + +static struct platform_driver loongson2_guts_driver = { + .driver = { + .name = "loongson2-guts", + .of_match_table = loongson2_guts_of_match, + }, + .probe = loongson2_guts_probe, + .remove = loongson2_guts_remove, +}; + +static int __init loongson2_guts_init(void) +{ + return platform_driver_register(&loongson2_guts_driver); +} +core_initcall(loongson2_guts_init); + +static void __exit loongson2_guts_exit(void) +{ + platform_driver_unregister(&loongson2_guts_driver); +} +module_exit(loongson2_guts_exit); From patchwork Tue Oct 25 03:51:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yinbo Zhu X-Patchwork-Id: 10482 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp793435wru; Mon, 24 Oct 2022 21:06:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5EHHmI3IDVqhmOaR5q216Kkoxi+CU7fjkiLkuzhuMXId57I31ZPuQAC0uuFZDE1fvCR3PG X-Received: by 2002:a62:4e89:0:b0:56c:12c0:aaf7 with SMTP id c131-20020a624e89000000b0056c12c0aaf7mr2939501pfb.0.1666670761947; Mon, 24 Oct 2022 21:06:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666670761; cv=none; d=google.com; s=arc-20160816; b=pHuf08ynjymHEp2PybSyVe1nE5nXulePBcVfnaHaA1VvC27fh2qS2GAZgF7iPs2rJG /zwqolEvGglNURaViRqUCKUHdRf7CGUVV6GasgHzPSsICrVUw1zOmvKUSIBhL765Jj1U nCAgwFPgq2psBtujTQtIs7AwS+w9NXO0ZY5UDeYAtb2RpnzeUaZ7nVjfp5Dx6508prpR 5DGnpyxstU3E1I0UzCZDQ8Fmwd/U+/npUU53kbAXwHQ3L9xgZMv4rqkhnraprhCINPsN bfNMN9v7Bp/guWIlnhsHGN54+JKd9PMqPrrFkzcdGPz6HdkUv8lmwFnAC5Pg17qWMV0K ZH9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from; bh=lHv9O4mSrYrk44urCzqILd1IXIDNp+PYgGvLcf/g2rg=; b=KZbCrjbIklrP9E38o7PCHV0yf61FytfwCbkR4qz7us0+M5IQoln/pfESyy2uaGwEh2 M3hnuIbWQuZYjdqlu6lZ73BMF4qqabepfCztMW+ZVRYVtoyC6VIiRJnnDNczQoZBkZrA SCvbOPx9CbARYkYXWCU5ZMC2uhOZVggjhJxj9Ohxk0yxCKddWRAsMnaB7kmfoRieQv9a bGrWzFo3auuza1mscPFJKl3bxVvXygri//6bJxndO2rSqYcfptDm2HLCOpcRHNpBWCkR mtPOVg/NQono+W5B1kkXc/H+bTxSNs/jDBp8z99+q3jjIk3cbYd1XNSohoT2McWkJch+ QVtg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jj12-20020a170903048c00b00176e85e5ceasi1463011plb.405.2022.10.24.21.05.41; Mon, 24 Oct 2022 21:06:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229776AbiJYDvt (ORCPT + 99 others); Mon, 24 Oct 2022 23:51:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229574AbiJYDvm (ORCPT ); Mon, 24 Oct 2022 23:51:42 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3870F7C76A; Mon, 24 Oct 2022 20:51:38 -0700 (PDT) Received: from loongson.cn (unknown [10.180.13.64]) by gateway (Coremail) with SMTP id _____8BxnrdJXVdjak8CAA--.4174S3; Tue, 25 Oct 2022 11:51:37 +0800 (CST) Received: from localhost.localdomain (unknown [10.180.13.64]) by localhost.localdomain (Coremail) with SMTP id AQAAf8AxDuJBXVdj2rMEAA--.18366S3; Tue, 25 Oct 2022 11:51:35 +0800 (CST) From: Yinbo Zhu To: Rob Herring , Krzysztof Kozlowski , Arnd Bergmann , Hector Martin , Lubomir Rintel , Conor Dooley , Linus Walleij , Hitomi Hasegawa , Heiko Stuebner , Brian Norris , Sven Peter , loongarch@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yinbo Zhu Subject: [PATCH v2 2/2] dt-bindings: soc: add loongson2 guts Date: Tue, 25 Oct 2022 11:51:28 +0800 Message-Id: <20221025035128.21068-2-zhuyinbo@loongson.cn> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20221025035128.21068-1-zhuyinbo@loongson.cn> References: <20221025035128.21068-1-zhuyinbo@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: AQAAf8AxDuJBXVdj2rMEAA--.18366S3 X-CM-SenderInfo: 52kx5xhqerqz5rrqw2lrqou0/ X-Coremail-Antispam: 1Uk129KBjvJXoW7uF15Xw4UCw17Xw1fKr4UArb_yoW8ZrW7pr nxC34rGrW0vF17uws3GFyIk3W5Cr97CasFgFZrtw1UKF9rA3W3Zw13KF1DZa13Ary8GFW2 9F97WrWUKF48CaUanT9S1TB71UUUUbJqnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU bfkFc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUAVWUZwA2ocxC64 kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28E F7xvwVC0I7IYx2IY6xkF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJw A2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJwAaw2AFwI0_Jw0_GFyle2I262IYc4CY 6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27wAqx4xG64xvF2IEw4CE5I8CrV C2j2WlYx0E2Ix0cI8IcVAFwI0_Jw0_WrylYx0Ex4A2jsIE14v26r4j6F4UMcvjeVCFs4IE 7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCY1x0262kKe7AKxVWUtVW8ZwCF04k20xvY0x 0EwIxGrwCF04k20xvE74AGY7Cv6cx26rWl4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1l4IxYO2xF xVAFwI0_Jw0_GFylx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWw C2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Xr0_ Ar1lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJV WUCwCI42IY6I8E87Iv67AKxVW8JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIY CTnIWIevJa73UjIFyTuYvjxUIbyCDUUUU X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747630960443564325?= X-GMAIL-MSGID: =?utf-8?q?1747630960443564325?= Add the loongson2 soc guts driver binding with DT schema format using json-schema. Signed-off-by: Yinbo Zhu --- .../soc/loongson/loongson,ls2k-guts.yaml | 37 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 38 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-guts.yaml diff --git a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-guts.yaml b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-guts.yaml new file mode 100644 index 000000000000..2502f8aeb74d --- /dev/null +++ b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-guts.yaml @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/loongson/loongson,ls2k-guts.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Loongson2 GUTS driver. + +maintainers: + - Yinbo Zhu + +description: | + GUTS driver was to manage and access global utilities block. Initially + only reading SVR and registering soc device are supported. + +properties: + compatible: + const: loongson,ls2k-guts + + reg: + maxItems: 1 + + little-endian: true + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + guts: guts@1fe00000 { + compatible = "loongson,ls2k-guts"; + reg = <0x1fe00000 0x3ffc>; + little-endian; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 0f06dc83f7c6..b23474a5d8c1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11934,6 +11934,7 @@ LOONGSON2 SOC SERIES GUTS DRIVER M: Yinbo Zhu L: loongarch@lists.linux.dev S: Maintained +F: Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-guts.yaml F: drivers/soc/loongson/loongson2_guts.c LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)