From patchwork Fri Jan 15 14:04:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1427061 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=VtMjXU6C; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DHNKx5R1kz9sVr for ; Sat, 16 Jan 2021 01:07:33 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 506CA826A0; Fri, 15 Jan 2021 15:05:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="VtMjXU6C"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2FC1682677; Fri, 15 Jan 2021 15:05:46 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-io1-xd29.google.com (mail-io1-xd29.google.com [IPv6:2607:f8b0:4864:20::d29]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 66A6F82663 for ; Fri, 15 Jan 2021 15:05:36 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd29.google.com with SMTP id b19so15765597ioa.9 for ; Fri, 15 Jan 2021 06:05:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DN3AOQS4MSatRxO03fpdNTJSI21vkxwnmBuE1U8vQGM=; b=VtMjXU6CZPnAZe8F4sKqeFkQGyTaJfoXl1lwrKlAHQBNbRTTnO8hBBe5zJPoDQDF+/ IqD5TwGl0lrB71RgANUeOOHz0Fybj1Okc9hdD44MBxtUfp1WPzk5rZClRWH9Bjf38JTU 5iGtqkv1sLy6pbkrPBKF40JCodVlb+GIULiNc= 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=DN3AOQS4MSatRxO03fpdNTJSI21vkxwnmBuE1U8vQGM=; b=DwKsABmqwqxWjnBF9FVWayJfJXUbS1fS9H2FDaZDe7ge6zIVN0c+N8UykIA0F5sR1W 3rGCGcKapTRLfZ5lRvPhW4jOA1jEYaUeINaWRWtz12CAC2sZWNNYJVxMlCNMtSYHxUti zUF+T5PgWlxi3uPjVGMSMdhZ3p7gyfSKCJzQgJolDAednPvx9vFXOe6HTyHkIaKcVWec 0tuoq/3Vqln9PRzLz/Lxo2qY+uUXUkWnZ5hf/7HbzAZt9ROYZLDZIe7T+slJWj7sFb/X +mZ2i8M5P/WXRw0rIAp6m+GAF88bA2bhvYK+gs7XKAxRaG2KFYPnvQJgztscExOzLVgp JwJg== X-Gm-Message-State: AOAM533XPSNJqjrvAzJIVXjWWMzeZRMLzHImSk3uaSh79ZZx4auWIif4 UEQOAsdj6CEKYz3kK7FBB6T1wyPFcGpirf2F X-Google-Smtp-Source: ABdhPJwOXQb8F/uIF7YvkOZRiCt6+QQcZau4yt/9jaMSxRef/7UrZElVfwniFEejVy0Y6CM6IFnNDw== X-Received: by 2002:a92:6a0c:: with SMTP id f12mr11376520ilc.122.1610719534867; Fri, 15 Jan 2021 06:05:34 -0800 (PST) Received: from localhost.localdomain (c-67-190-101-114.hsd1.co.comcast.net. [67.190.101.114]) by smtp.gmail.com with ESMTPSA id 1sm5664843ilv.37.2021.01.15.06.05.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Jan 2021 06:05:34 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Cc: Patrick Delaunay , Tom Rini , Simon Glass , Andy Shevchenko , Patrick Delaunay , Walter Lozano Subject: [PATCH 09/15] gpio: sandbox: Make sandbox_gpio_set_flags() set all flags Date: Fri, 15 Jan 2021 07:04:54 -0700 Message-Id: <20210115140500.846307-10-sjg@chromium.org> X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7-goog In-Reply-To: <20210115140500.846307-1-sjg@chromium.org> References: <20210115140500.846307-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Allow this function to see all flags, including the internal sandbox ones. This allows the tests to fully control the behaviour of the driver. To make this work, move the setting of GPIOD_EXT_HIGH -to where the flags are updated via driver model, rather than the sandbox 'back door'. Signed-off-by: Simon Glass Reviewed-by: Patrick Delaunay --- drivers/gpio/sandbox.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/gpio/sandbox.c b/drivers/gpio/sandbox.c index ebc160cb849..11d4757abbb 100644 --- a/drivers/gpio/sandbox.c +++ b/drivers/gpio/sandbox.c @@ -114,9 +114,7 @@ int sandbox_gpio_set_flags(struct udevice *dev, uint offset, ulong flags) { struct gpio_state *state = get_gpio_state(dev, offset); - if (flags & GPIOD_IS_OUT_ACTIVE) - flags |= GPIOD_EXT_HIGH; - state->flags = (state->flags & GPIOD_SANDBOX_MASK) | flags; + state->flags = flags; return 0; } @@ -213,17 +211,26 @@ static int sb_gpio_xlate(struct udevice *dev, struct gpio_desc *desc, return 0; } -static int sb_gpio_update_flags(struct udevice *dev, uint offset, ulong newf) +static int sb_gpio_update_flags(struct udevice *dev, uint offset, ulong flags) { - debug("%s: offset:%u, flags = %lx\n", __func__, offset, newf); + debug("%s: offset:%u, flags = %lx\n", __func__, offset, flags); + struct gpio_state *state = get_gpio_state(dev, offset); + + if (flags & GPIOD_IS_OUT) { + if (flags & GPIOD_IS_OUT_ACTIVE) + flags |= GPIOD_EXT_HIGH; + else + flags &= ~GPIOD_EXT_HIGH; + } + state->flags = flags; - return sandbox_gpio_set_flags(dev, offset, newf); + return 0; } static int sb_gpio_get_flags(struct udevice *dev, uint offset, ulong *flagsp) { debug("%s: offset:%u\n", __func__, offset); - *flagsp = *get_gpio_flags(dev, offset); + *flagsp = *get_gpio_flags(dev, offset) & ~GPIOD_SANDBOX_MASK; return 0; }