From patchwork Fri Jun 26 15:13:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 191817 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp580599ilg; Fri, 26 Jun 2020 08:17:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyXmU0zp9s9rtQJDJmxNlO/Y2/XaSYHYdn8d7Om9kCxegQdTc2MLwrjcDKw2cyREVE+aDBC X-Received: by 2002:a5b:f4f:: with SMTP id y15mr5925014ybr.184.1593184624313; Fri, 26 Jun 2020 08:17:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593184624; cv=none; d=google.com; s=arc-20160816; b=bpTXpz3svo2DLCX3Te/yJV0dHGol7ibrBcXpdC2MTdiAqyW+sjc8w/a3G0pbywhdbW mkdPwG5/LiKJKMt/W8Gsa1UNn3iQKLtg1K+yvX86KLhgUGbPEGDASit+eY/A8u6/FRTM K07qce+snfPLFVG+2My4I29ZVG/Gt4tHCgwbawsCrI8jv/n47W0b9B2XT6WFThklKMMz WPA+tii3D3z9dj4jHtq2iyMEvrILuR1eVqN4A29XCj7pHLQ3dthRoovTbrRylFDaCzUb JiOG0ndvxxRYan5EoV5F79PGulh31ixinjU0XojDtvt3JOqKGceQqrbOOIp+i1g/yl6j 0DKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=RX+/KL2V5N56qsvGdealctYk7vBUGmzE5uNTGiV8fFk=; b=NqCsmziNv+gH093IJS2yzFLleXOhx1388jQs4Sp8kvBmYDULHLOQPd2IzuD2dpJjPj yAPQlHADeV5O7IFYpt99lIzrPj/Nlhf6AER/TGkrljfIJR4Q2XmwEdAmCU2yt2Xbz2FB O7TvGuItxPHppzfQJmAyk6BLPjPHFQu6Oxewp934YGFBBnE3q2cSSep8SlxDtvN8fIuU ZRWNk98Md4oANaJHrfqreWVQkpBME5dexvF02lRQApBPVRWvYXJQMNQBvYd0H3bc4uO3 jkAomw3Lde8acfBpHSXYDA9uIBB2HqMHMOR6yIynlyTNBOS91Z6+Prs7yQlaebOHc3op LDBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UPfqbBg6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a1si24605814ybs.64.2020.06.26.08.17.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 26 Jun 2020 08:17:04 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UPfqbBg6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:52346 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1joq6B-0005dQ-On for patch@linaro.org; Fri, 26 Jun 2020 11:17:03 -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) 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-Received: by 2002:adf:dc90:: with SMTP id r16mr4360107wrj.264.1593184478890; Fri, 26 Jun 2020 08:14:38 -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) 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 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+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé 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 = "keep"; gpios = <&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=b1f9be9392f0#n140 Reviewed-by: Cédric Le Goater Signed-off-by: Philippe Mathieu-Daudé Tested-by: Cédric 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(+) -- 2.20.1 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] = '\0'; trace_pca955x_gpio_status(s->description, buf); } + if (trace_event_get_state_backends(TRACE_PCA955X_GPIO_CHANGE)) { + for (i = 0; i < k->pin_count; i++) { + if (extract32(pins_changed, i, 1)) { + unsigned new_state = 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); + } + } + } } 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 # 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_state, unsigned current_state) "%s GPIO id:%u status: %u -> %u"