From patchwork Tue Apr 3 09:40:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 10320873 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6051D60116 for ; Tue, 3 Apr 2018 09:41:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 47A6D2896B for ; Tue, 3 Apr 2018 09:41:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3C8C828971; Tue, 3 Apr 2018 09:41:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8E54A2896B for ; Tue, 3 Apr 2018 09:41:17 +0000 (UTC) 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:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=Ib06zFEfyH67qzNM7iBO46M/IZLASP4214U5Q3soUxg=; b=rZelFxo5m7+5SGeCBRSAQnGPlP kJqRGRSqWazu2q77EW3uAe37tjyvk2H3ZX9jYYwey5f83RG/FDdRQ2tXsXeVEc3zyjISO7li2dx+F MlW+naj0V96PRLw+EoBbmpbn9vdcAPw5MzwXx3XtN6cCAt6wggFF5BKseKP/p+bkSrpBX1fF8ni3n ka8vSYEphy7TNmzdKMFCL1W2+w+McKokk46YlYk5t5hHY9hWLMCLgwfhR8vSAnwn8TQ6yvPBkvqGg QnPzovvhtFGBg9Z0IM7BCPV06ZQ85bGBB73uA4/vMKMb6mNakVMz6nSsFKq5jM3THxGMvfDukVIp0 7Ac21SNQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1f3IRI-0008VU-5s; Tue, 03 Apr 2018 09:41:16 +0000 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1f3IRB-0008O3-Pq for linux-amlogic@lists.infradead.org; Tue, 03 Apr 2018 09:41:13 +0000 Received: by mail-wm0-x243.google.com with SMTP id i3so9901710wmf.3 for ; Tue, 03 Apr 2018 02:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gaGObHtQBKxl/2x2Jmi5JCqivYH9jvom9NEJus5fZgM=; b=qJA2bLd0EoNq5GEAzTPKek12PoT37sc0zqZAgPe1QAMbD4GLdqAG6MzWOG4K4Uz5Pb n7Dr96MSTAzQKBCQsAXWMd0bKS1LEGgol3TstmCnyK0R03knT6Jg0O8giLccdqcUvBHm lByyB5qMDwOEuYPKo91ORUTPyJOMl2HsLjSz/Mkuqe+98+epWJcSwLR25OjY43VlfiBe ZAJPwBatZd2S2aqgXZEHPae+EcmKlDEjFhvq12Nq1RkkMxBUxIV3t3lM6ZEF1KItHA6r bDROvSlV0462SgW2szkXhqyfGbGxbVFeW8sIGWKezcFqweQOboIlMoGDIwmneaLr8KXy ZcxQ== 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; bh=gaGObHtQBKxl/2x2Jmi5JCqivYH9jvom9NEJus5fZgM=; b=b/fOzc7TiF8cD2IOhh/WLT/sn0Dm1GbjII50o1f40fXmbBViv9ynQ/HX3kXZCH8Piv FD/8YRV8z6Q8mkK5BprfpeQ4qSfz2fxmvnHotNrnQ6rnHBMIMISpx7lJ8A47+QKIb9Ql +XKGl71z6aiUol8xV9tYwwnDafGd6WEI9ZBlOwgBgT10Gr8EWqB9Q5WYaipJ20pqcjch I46DQbuDoLfybDzNQ0iq5Hmev3CjC1StRbPhsiXuxnQyTC1QgP9g32l5YzK91bWZh3YO pKQKN4ZFjyK76e2QLxb0AKvohNzSjzBKQgiY+KAd31cThtA/XgHAYZkO60R5n8oh7wOL kz1Q== X-Gm-Message-State: AElRT7HyJ2NxCGVKXkafNHxqmHofLPrMGXceZ34bOYe4Y63zIKGJCPGn Z9kVI9+wPfr8H4zttMEuvpVWDA== X-Google-Smtp-Source: AIpwx49P0LFLtL10aC/vpP5McMJWpTZm7SFge3lOMsLwBRzMYSVkpX44gWiqTQfhLTaD4UPIqH2obw== X-Received: by 10.28.167.204 with SMTP id q195mr3373779wme.48.1522748458128; Tue, 03 Apr 2018 02:40:58 -0700 (PDT) Received: from bender.baylibre.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id k35sm1929582wre.55.2018.04.03.02.40.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 03 Apr 2018 02:40:57 -0700 (PDT) From: Neil Armstrong To: sjg@chromium.org, u-boot@lists.denx.de Subject: [PATCH v2 u-boot 2/2] reset: add sandbox test for bulk API Date: Tue, 3 Apr 2018 11:40:51 +0200 Message-Id: <1522748451-21209-3-git-send-email-narmstrong@baylibre.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1522748451-21209-1-git-send-email-narmstrong@baylibre.com> References: <1522748451-21209-1-git-send-email-narmstrong@baylibre.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180403_024109_870658_B062F14E X-CRM114-Status: GOOD ( 15.67 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marex@denx.de, linux-amlogic@lists.infradead.org, Neil Armstrong MIME-Version: 1.0 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+patchwork-linux-amlogic=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds the bulk reset API tests for the sandbox test suite. Unlike the main test, it also check the "other" reset signal using the bulk API and checks if the resets are correctly asserted/deasserted. To allow the bulk API to work, and avoid changing the DT, the number of resets of the sandbox reset controller has been bumped to 101 for the "other" reset line to be valid. Signed-off-by: Neil Armstrong Reviewed-by: Simon Glass --- arch/sandbox/include/asm/reset.h | 4 ++++ drivers/reset/sandbox-reset-test.c | 29 +++++++++++++++++++++++++++++ drivers/reset/sandbox-reset.c | 2 +- test/dm/reset.c | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) diff --git a/arch/sandbox/include/asm/reset.h b/arch/sandbox/include/asm/reset.h index 7146aa5..0cd7702 100644 --- a/arch/sandbox/include/asm/reset.h +++ b/arch/sandbox/include/asm/reset.h @@ -14,8 +14,12 @@ struct udevice; int sandbox_reset_query(struct udevice *dev, unsigned long id); int sandbox_reset_test_get(struct udevice *dev); +int sandbox_reset_test_get_bulk(struct udevice *dev); int sandbox_reset_test_assert(struct udevice *dev); +int sandbox_reset_test_assert_bulk(struct udevice *dev); int sandbox_reset_test_deassert(struct udevice *dev); +int sandbox_reset_test_deassert_bulk(struct udevice *dev); int sandbox_reset_test_free(struct udevice *dev); +int sandbox_reset_test_release_bulk(struct udevice *dev); #endif diff --git a/drivers/reset/sandbox-reset-test.c b/drivers/reset/sandbox-reset-test.c index e37d6c9..f0ceaa0 100644 --- a/drivers/reset/sandbox-reset-test.c +++ b/drivers/reset/sandbox-reset-test.c @@ -12,6 +12,7 @@ struct sandbox_reset_test { struct reset_ctl ctl; + struct reset_ctl_bulk bulk; }; int sandbox_reset_test_get(struct udevice *dev) @@ -21,6 +22,13 @@ int sandbox_reset_test_get(struct udevice *dev) return reset_get_by_name(dev, "test", &sbrt->ctl); } +int sandbox_reset_test_get_bulk(struct udevice *dev) +{ + struct sandbox_reset_test *sbrt = dev_get_priv(dev); + + return reset_get_bulk(dev, &sbrt->bulk); +} + int sandbox_reset_test_assert(struct udevice *dev) { struct sandbox_reset_test *sbrt = dev_get_priv(dev); @@ -28,6 +36,13 @@ int sandbox_reset_test_assert(struct udevice *dev) return reset_assert(&sbrt->ctl); } +int sandbox_reset_test_assert_bulk(struct udevice *dev) +{ + struct sandbox_reset_test *sbrt = dev_get_priv(dev); + + return reset_assert_bulk(&sbrt->bulk); +} + int sandbox_reset_test_deassert(struct udevice *dev) { struct sandbox_reset_test *sbrt = dev_get_priv(dev); @@ -35,6 +50,13 @@ int sandbox_reset_test_deassert(struct udevice *dev) return reset_deassert(&sbrt->ctl); } +int sandbox_reset_test_deassert_bulk(struct udevice *dev) +{ + struct sandbox_reset_test *sbrt = dev_get_priv(dev); + + return reset_deassert_bulk(&sbrt->bulk); +} + int sandbox_reset_test_free(struct udevice *dev) { struct sandbox_reset_test *sbrt = dev_get_priv(dev); @@ -42,6 +64,13 @@ int sandbox_reset_test_free(struct udevice *dev) return reset_free(&sbrt->ctl); } +int sandbox_reset_test_release_bulk(struct udevice *dev) +{ + struct sandbox_reset_test *sbrt = dev_get_priv(dev); + + return reset_release_bulk(&sbrt->bulk); +} + static const struct udevice_id sandbox_reset_test_ids[] = { { .compatible = "sandbox,reset-ctl-test" }, { } diff --git a/drivers/reset/sandbox-reset.c b/drivers/reset/sandbox-reset.c index 4258af5..c310749 100644 --- a/drivers/reset/sandbox-reset.c +++ b/drivers/reset/sandbox-reset.c @@ -10,7 +10,7 @@ #include #include -#define SANDBOX_RESET_SIGNALS 3 +#define SANDBOX_RESET_SIGNALS 101 struct sandbox_reset_signal { bool asserted; diff --git a/test/dm/reset.c b/test/dm/reset.c index 0ae8031..8dc0023 100644 --- a/test/dm/reset.c +++ b/test/dm/reset.c @@ -13,6 +13,9 @@ /* This must match the specifier for mbox-names="test" in the DT node */ #define TEST_RESET_ID 2 +/* This is the other reset phandle specifier handled by bulk */ +#define OTHER_RESET_ID 2 + static int dm_test_reset(struct unit_test_state *uts) { struct udevice *dev_reset; @@ -37,3 +40,33 @@ static int dm_test_reset(struct unit_test_state *uts) return 0; } DM_TEST(dm_test_reset, DM_TESTF_SCAN_FDT); + +static int dm_test_reset_bulk(struct unit_test_state *uts) +{ + struct udevice *dev_reset; + struct udevice *dev_test; + + ut_assertok(uclass_get_device_by_name(UCLASS_RESET, "reset-ctl", + &dev_reset)); + ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID)); + ut_asserteq(0, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); + + ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test", + &dev_test)); + ut_assertok(sandbox_reset_test_get_bulk(dev_test)); + + ut_assertok(sandbox_reset_test_assert_bulk(dev_test)); + ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID)); + ut_asserteq(1, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); + + ut_assertok(sandbox_reset_test_deassert_bulk(dev_test)); + ut_asserteq(0, sandbox_reset_query(dev_reset, TEST_RESET_ID)); + ut_asserteq(0, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); + + ut_assertok(sandbox_reset_test_release_bulk(dev_test)); + ut_asserteq(1, sandbox_reset_query(dev_reset, TEST_RESET_ID)); + ut_asserteq(1, sandbox_reset_query(dev_reset, OTHER_RESET_ID)); + + return 0; +} +DM_TEST(dm_test_reset_bulk, DM_TESTF_SCAN_FDT);