From nobody Fri Dec 19 04:29:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1593184701; cv=none; d=zohomail.com; s=zohoarc; b=lI3C7j70YEA4JsjFLDxq21+1WFFQ6NltFk2Zs+Ws04uXKCSpsby0jvBEPCfMtQNal6PxpT9QE71xcmuA1G6ouupASdwhql7oQ+YgbqCrjgY+B1pIUoqx66uK/cvDy5GIa6EjJMFkR6DrcgKUGDUz3fgPGCkXyssIlMq04Q1fa2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593184701; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RX+/KL2V5N56qsvGdealctYk7vBUGmzE5uNTGiV8fFk=; b=T8yNhBly8Euc1uRUYTf97muxPRVkSZIP4m3aDVgBxvN0Jit2F2olPDdWnRNnuixYVGopcZQ9xkeztcoZq37uKpB8R3o+yRytF8hcYP8sI/rwlaveQDbylBubRBlSvUeYQCdAgmHR0OrX2It33iMDFwvNBsMFYegIqtoC7Uf9+AA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593184701483686.5453091830777; Fri, 26 Jun 2020 08:18:21 -0700 (PDT) Received: from localhost ([::1]:55756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1joq7Q-00071E-14 for importer@patchew.org; Fri, 26 Jun 2020 11:18:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1joq40-00027V-Cy for qemu-devel@nongnu.org; Fri, 26 Jun 2020 11:14:48 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:34837) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1joq3w-0006I1-Pv for qemu-devel@nongnu.org; Fri, 26 Jun 2020 11:14:48 -0400 Received: by mail-wr1-x42b.google.com with SMTP id g18so9900907wrm.2 for ; Fri, 26 Jun 2020 08:14:40 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id w13sm37838852wrr.67.2020.06.26.08.14.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jun 2020 08:14:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=RX+/KL2V5N56qsvGdealctYk7vBUGmzE5uNTGiV8fFk=; b=UPfqbBg6Plf49zdwp7xWUDjXIB2z+dfIP4BQftCMCYq8IKwFEerltLx5GeUDX/hAkJ nV/CP/+CQM60BL+QIXHfVtTQrMjDqL39nVg/stduAa4Zc1eGuODLCJHANW0WKFCTj/am P+o3Pp17M3K/0cRge9gBCBfkWTQLoTQFpgMDJpa+HFufJ0ylde8r6HbzHHCNq+qqhMXl ygQLtWHfGHS73RNBMLpBtV0npSg3u0zAvY+JaGI52b93H6U9aWE6Wx707JP3UjK5ERyo gieBKBbmvu81XdJ9m2UVm+jtAoqr1eF0JnwrkFfHF/CKANFNYh664vv+94Ip7NdzhW9v y8AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RX+/KL2V5N56qsvGdealctYk7vBUGmzE5uNTGiV8fFk=; b=pKUywJpaqsgUE3jvsCdYVagV5znja4wU+ezINasnkyOqItNH2vgqmga1IqLNF2k4Kp auizKDyyhKugjZfnBCI15pID6kq2vpB9LZewcbQ7NMIxkp6DITSyp/afJNo986P3Jizi jNOugHVTzicFNq6c1wbBmh6Iv4owZFeJpTIC/ukLWkursPkydNsxxYE5m4UI8k7V66rs GofnghgG4vKANyky9TVsy42Sq0xVCHtp9EnZYcrSfuyCZbbkegUqdxF47ZkLq4indh4S wUs2JFKOc9yayyI5MLKGjRXmBtDaUjjckbSWSLHmMX0YNAsbtfZzGD1DstOw3B+IxRjg 2TRQ== X-Gm-Message-State: AOAM531cKrehAH3jrlQp4Lz3OLPTwRNQOfZ0D9Bh/RIZ7USZHiPXTLjP pcFhg7tumYdta1X8nh4fwyT8iqRCFmGPFg== X-Google-Smtp-Source: ABdhPJzIT3HXS6wf54XZdzojf+5Yu+3JGXH+xEiZ6wWlzzZl4BzFfSOsaZYGHDmfvFxyOYwTGCF7gg== X-Received: by 2002:adf:dc90:: with SMTP id r16mr4360107wrj.264.1593184478890; Fri, 26 Jun 2020 08:14:38 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 11/57] hw/misc/pca9552: Trace GPIO change events Date: Fri, 26 Jun 2020 16:13:38 +0100 Message-Id: <20200626151424.30117-12-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200626151424.30117-1-peter.maydell@linaro.org> References: <20200626151424.30117-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42b.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Emit a trace event when a GPIO change its state. Example booting obmc-phosphor-image: $ qemu-system-arm -M witherspoon-bmc -trace pca955x_gpio_change 1592690552.687372:pca955x_gpio_change pca1 GPIO id:0 status: 0 -> 1 1592690552.690169:pca955x_gpio_change pca1 GPIO id:1 status: 0 -> 1 1592690552.691673:pca955x_gpio_change pca1 GPIO id:2 status: 0 -> 1 1592690552.696886:pca955x_gpio_change pca1 GPIO id:3 status: 0 -> 1 1592690552.698614:pca955x_gpio_change pca1 GPIO id:13 status: 0 -> 1 1592690552.699833:pca955x_gpio_change pca1 GPIO id:14 status: 0 -> 1 1592690552.700842:pca955x_gpio_change pca1 GPIO id:15 status: 0 -> 1 1592690683.841921:pca955x_gpio_change pca1 GPIO id:14 status: 1 -> 0 1592690683.861660:pca955x_gpio_change pca1 GPIO id:14 status: 0 -> 1 1592690684.371460:pca955x_gpio_change pca1 GPIO id:14 status: 1 -> 0 1592690684.882115:pca955x_gpio_change pca1 GPIO id:14 status: 0 -> 1 1592690685.391411:pca955x_gpio_change pca1 GPIO id:14 status: 1 -> 0 1592690685.901391:pca955x_gpio_change pca1 GPIO id:14 status: 0 -> 1 1592690686.411678:pca955x_gpio_change pca1 GPIO id:14 status: 1 -> 0 1592690686.921279:pca955x_gpio_change pca1 GPIO id:14 status: 0 -> 1 We notice the GPIO #14 (front-power LED) starts to blink. This LED is described in the witherspoon device-tree [*]: front-power { retain-state-shutdown; default-state =3D "keep"; gpios =3D <&pca0 14 GPIO_ACTIVE_LOW>; }; [*] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree= /arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts?id=3Db1f9be9392f0#n140 Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Philippe Mathieu-Daud=C3=A9 Tested-by: C=C3=A9dric Le Goater Message-id: 20200623072723.6324-9-f4bug@amsat.org Signed-off-by: Peter Maydell --- hw/misc/pca9552.c | 15 +++++++++++++++ hw/misc/trace-events | 1 + 2 files changed, 16 insertions(+) diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c index 41f8ad213dd..1c3ad57432a 100644 --- a/hw/misc/pca9552.c +++ b/hw/misc/pca9552.c @@ -82,6 +82,21 @@ static void pca955x_display_pins_status(PCA955xState *s, buf[i] =3D '\0'; trace_pca955x_gpio_status(s->description, buf); } + if (trace_event_get_state_backends(TRACE_PCA955X_GPIO_CHANGE)) { + for (i =3D 0; i < k->pin_count; i++) { + if (extract32(pins_changed, i, 1)) { + unsigned new_state =3D extract32(pins_status, i, 1); + + /* + * We display the state using the PCA logic ("active-high"= ). + * This is not the state of the LED, which signal might be + * wired "active-low" on the board. + */ + trace_pca955x_gpio_change(s->description, i, + !new_state, new_state); + } + } + } } =20 static void pca955x_update_pin_input(PCA955xState *s) diff --git a/hw/misc/trace-events b/hw/misc/trace-events index bd7bd37ea8d..ebea53735c4 100644 --- a/hw/misc/trace-events +++ b/hw/misc/trace-events @@ -212,3 +212,4 @@ grlib_apb_pnp_read(uint64_t addr, uint32_t value) "APB = PnP read addr:0x%03"PRIx6 =20 # pca9552.c pca955x_gpio_status(const char *description, const char *buf) "%s GPIOs 0-= 15 [%s]" +pca955x_gpio_change(const char *description, unsigned id, unsigned prev_st= ate, unsigned current_state) "%s GPIO id:%u status: %u -> %u" --=20 2.20.1