From patchwork Sat Jun 20 22:58:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 279879 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91012C433DF for ; Sat, 20 Jun 2020 23:00:24 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 59AC4206E2 for ; Sat, 20 Jun 2020 23:00:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IHbmxLsI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 59AC4206E2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:36180 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmmTH-0002z1-Gj for qemu-devel@archiver.kernel.org; Sat, 20 Jun 2020 19:00:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40540) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmmS0-0000iK-7e; Sat, 20 Jun 2020 18:59:04 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:33530) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jmmRy-0000xs-Nx; Sat, 20 Jun 2020 18:59:03 -0400 Received: by mail-wr1-x441.google.com with SMTP id l11so13166648wru.0; Sat, 20 Jun 2020 15:59:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ecdWcrYL1Jj227XOQ2qPsZtEv7ne60QEm0iDo/NnAik=; b=IHbmxLsIfA7MSwDPdmBAq5HRVqJCRZlavhomTkv78VVZ/YdjVInwIbO5M5SU2gHXYC TBPTXWD6+h7qAJR7pWmgDfVQtZc235wLIJPby55fo970yf2oKt+zDRfT1P7MvhkXzUDZ MD/+xjngcy7Tip9e8Qrpqy1IUJER4sz806Qc9dK1Ef+1FzHr9aPRfrRi9yksRYZha4Eh P7eQgi4K+geya76tI1aQR0yLfvtAzX4Bi14VRJiDO73zxiCwqRRlttayG7AuQ9MW5VMc 1S+tqpJuhKHZAaos/BdIA+Txx3PPxtNZImzxYLFKxkuXvBn6XwZErJcDFYkCmK0ecRRC Hiqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ecdWcrYL1Jj227XOQ2qPsZtEv7ne60QEm0iDo/NnAik=; b=lOax4kpvM1uCiyQX20W/EhW2EtidhKw9zMD1uenxnPUFtkljr8dpBo0MsdQ9LBvEoy fOo8qe7GZDABMxw29e15+DA/yE6VAX4RvEVxQDM/yrbxn5+sxR93AY4cxjqhToLemFiG SGpvHHlyFadw0mHqi/ySTeJ7qkoddTIh3kVaa9ytxs0VguXmoPs/8NKJ/hDq5FQwBgzn PaTMx7V1oAyrEM4cSmKzZuM0nDzjqDRnoyb4fsr3ERHZDbyPDklxFZrcNlF3TgCAI042 UKYbSppUHJCGs9QgEJ5AjIodZq5c3fDAlrQ204UdxmwKNS+73zH67ZR6vGPhAeLtShOe +Bpg== X-Gm-Message-State: AOAM530pGTYWXYxHT3l3IF98LF4UQawNI2P/1sIcNg1qjc+tCnrIJF8t E438ksdaULWJoi28/khTYCOMFH59 X-Google-Smtp-Source: ABdhPJza73xlffpWcvU2OSTFcSCpn6cqiQQCm2+3eEGsABaRXVj2qUAEluk/+hJyFR33M/eSyNVqOw== X-Received: by 2002:adf:828b:: with SMTP id 11mr11799979wrc.58.1592693940761; Sat, 20 Jun 2020 15:59:00 -0700 (PDT) Received: from localhost.localdomain (1.red-83-51-162.dynamicip.rima-tde.net. [83.51.162.1]) by smtp.gmail.com with ESMTPSA id x18sm11147127wmi.35.2020.06.20.15.58.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2020 15:59:00 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v4 3/8] hw/misc/pca9552: Use the PCA9552_PIN_COUNT definition Date: Sun, 21 Jun 2020 00:58:49 +0200 Message-Id: <20200620225854.31160-4-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200620225854.31160-1-f4bug@amsat.org> References: <20200620225854.31160-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::441; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x441.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: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=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: , Cc: Corey Minyard , Peter Maydell , Andrew Jeffery , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, =?utf-8?q?C=C3=A9dric_Le_Goater?= , Joel Stanley Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" The current code models the PCA9552, but there are comments saying the code could be easily adapted for the rest of the PCA955x family. Since we assume we have at most 16 pins (for the PCA9552), add a definition and check the instance doesn't use more than this number. This makes the code a bit safer in case other PCA955x devices are added. Signed-off-by: Philippe Mathieu-Daudé --- hw/misc/pca9552.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c index cfefb8fce8..b97fc2893c 100644 --- a/hw/misc/pca9552.c +++ b/hw/misc/pca9552.c @@ -303,6 +303,17 @@ static void pca9552_initfn(Object *obj) } } +static void pca9552_realize(DeviceState *dev, Error **errp) +{ + PCA9552State *s = PCA9552(dev); + + if (s->nr_leds > PCA9552_PIN_COUNT) { + error_setg(errp, "%s invalid led count %u (max: %u)", + __func__, s->nr_leds, PCA9552_PIN_COUNT); + return; + } +} + static void pca9552_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -311,6 +322,7 @@ static void pca9552_class_init(ObjectClass *klass, void *data) k->event = pca9552_event; k->recv = pca9552_recv; k->send = pca9552_send; + dc->realize = pca9552_realize; dc->reset = pca9552_reset; dc->vmsd = &pca9552_vmstate; } From patchwork Sat Jun 20 22:58:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 279876 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77861C433DF for ; Sat, 20 Jun 2020 23:04:06 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4607A2474C for ; Sat, 20 Jun 2020 23:04:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Pi9PbIh6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4607A2474C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmmWr-0001CG-GZ for qemu-devel@archiver.kernel.org; Sat, 20 Jun 2020 19:04:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmmS1-0000ld-Bv; Sat, 20 Jun 2020 18:59:05 -0400 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:37078) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jmmRz-0000y6-Qc; Sat, 20 Jun 2020 18:59:05 -0400 Received: by mail-wm1-x341.google.com with SMTP id y20so12420985wmi.2; Sat, 20 Jun 2020 15:59:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4OYkK7pZcEGj/z1TIOBnhmEqslagD9t8wPtYXi/tj/c=; b=Pi9PbIh6E4nFqOoTfgdyi+6JN7/3fKl+0V+6jm3FKn81rPyvK/lHqt9d+T4jOODEB1 hNkgOw0xCt3dncnwfJO/vaQFJEULc4fmnz87sEAj6qnYhLgiXTiT6hf7x0YC3HZvrIwd goTvEtGU0rBYwBuh5ekbIzqyJDmi01bNm+IH0DKQVA8k2NMWGxvglVF4jZLQ9Sr1piK1 KUILrg2HY7q+/+lnMUna3T9m2ZE6NdafvSFrkZTY+fd02TsGgDKmIXtgIBMehAReQpSL jjaUj9qSGoTFcSzaMikXvNdmDZlXD87/B5+khMTle+g/Zmjf8UjySlLDwBsGKdUaURDy yV4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=4OYkK7pZcEGj/z1TIOBnhmEqslagD9t8wPtYXi/tj/c=; b=NHjmLxE0s2UkWsM+JNbh2iA4pVQwjti8e2KqrKscO7ga5iZvZFE6RSi5W2aHQQnDAJ IKmZNwzeLrSQhQ57yHP9uv+ZEVZbyLR4E3oaZhFdEN8IlYF/OancDeUiSORcvdf70Z9m cA+AWuycSNmdkWFv0PDwtkHf87gaq2LLydAGUufDOsAYLNiNz+OPMCbubt1v6p7OeaEA sTliON/Dnk9sbSCb9BaF09VEMlUjqPEKEHptVHAv4+px08JfUC/joZ+qgf43vegMFxcs d9whev8+odrS1i7VXVJ6LuBUb6FNFSuFlnmTAXE4rlWf1x2kePFVw1pXxIUXAyBEytOa P/gA== X-Gm-Message-State: AOAM5320EPBZbSE2wv5bOZFyZjzNVAf2/bYS6/r/vGFQqT9tfnt8hsa2 BRm5JB9glbXdO6Y5Yrdhz0Oaknbz X-Google-Smtp-Source: ABdhPJxs+wU+NvaYI4mOVAiRNUXK6ctBsQQBmjS/elXRHjxCnw+3Mt9+aCxj/LEOXcrWm6e5N6Ffcw== X-Received: by 2002:a1c:6102:: with SMTP id v2mr8712545wmb.6.1592693941984; Sat, 20 Jun 2020 15:59:01 -0700 (PDT) Received: from localhost.localdomain (1.red-83-51-162.dynamicip.rima-tde.net. [83.51.162.1]) by smtp.gmail.com with ESMTPSA id x18sm11147127wmi.35.2020.06.20.15.59.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2020 15:59:01 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v4 4/8] hw/misc/pca9552: Add a 'description' property for debugging purpose Date: Sun, 21 Jun 2020 00:58:50 +0200 Message-Id: <20200620225854.31160-5-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200620225854.31160-1-f4bug@amsat.org> References: <20200620225854.31160-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::341; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x341.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: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=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: , Cc: Corey Minyard , Peter Maydell , Andrew Jeffery , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, =?utf-8?q?C=C3=A9dric_Le_Goater?= , Joel Stanley Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Add a description field to distinguish between multiple devices. Signed-off-by: Philippe Mathieu-Daudé --- include/hw/misc/pca9552.h | 1 + hw/misc/pca9552.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/hw/misc/pca9552.h b/include/hw/misc/pca9552.h index ef6da4988f..c5be7f1c5e 100644 --- a/include/hw/misc/pca9552.h +++ b/include/hw/misc/pca9552.h @@ -27,6 +27,7 @@ typedef struct PCA9552State { uint8_t regs[PCA9552_NR_REGS]; uint8_t max_reg; + char *description; /* For debugging purpose only */ uint8_t nr_leds; } PCA9552State; diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c index b97fc2893c..54ccdcf6d4 100644 --- a/hw/misc/pca9552.c +++ b/hw/misc/pca9552.c @@ -12,6 +12,7 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "qemu/module.h" +#include "hw/qdev-properties.h" #include "hw/misc/pca9552.h" #include "hw/misc/pca9552_regs.h" #include "migration/vmstate.h" @@ -312,8 +313,16 @@ static void pca9552_realize(DeviceState *dev, Error **errp) __func__, s->nr_leds, PCA9552_PIN_COUNT); return; } + if (!s->description) { + s->description = g_strdup("pca-unspecified"); + } } +static Property pca9552_properties[] = { + DEFINE_PROP_STRING("description", PCA9552State, description), + DEFINE_PROP_END_OF_LIST(), +}; + static void pca9552_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -325,6 +334,7 @@ static void pca9552_class_init(ObjectClass *klass, void *data) dc->realize = pca9552_realize; dc->reset = pca9552_reset; dc->vmsd = &pca9552_vmstate; + device_class_set_props(dc, pca9552_properties); } static const TypeInfo pca9552_info = { From patchwork Sat Jun 20 22:58:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 279877 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.7 required=3.0 tests=DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 062FDC433DF for ; Sat, 20 Jun 2020 23:02:46 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C446B2474B for ; Sat, 20 Jun 2020 23:02:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oxjuPb+o" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C446B2474B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:44556 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmmVZ-0006zw-1s for qemu-devel@archiver.kernel.org; Sat, 20 Jun 2020 19:02:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40590) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmmS4-0000u0-0b; Sat, 20 Jun 2020 18:59:08 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:36678) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jmmS2-0000yT-5A; Sat, 20 Jun 2020 18:59:07 -0400 Received: by mail-wr1-x442.google.com with SMTP id k6so677798wrn.3; Sat, 20 Jun 2020 15:59:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SiT2334pLV4XCYraQE2kkHCbieDQYd9kjZYL7o8p/6E=; b=oxjuPb+oFP+7OsIJTJnwVIbV0sH+lq7Go+H+H+7up5NCwICr065ZZ1+Ai8xRzBRdkc XZj2ceJ+Jun6Uqb7fp0r4lCYfELrnLXwNJZDof4q0J2RUzuFl/hloend+OyuSlBUD9hS aQsE8z6OpCNOH9c6EQyLanoa83sEfet3nmMdH4d9OIj60ZWOs3TDLRjIQG6vqd6zcyFp xJnnWc+TZqm0HqmH1Dz+FhjKPEZ6aBWUnvG/88me5X606doKmdEjq3CU3UI1YNliJXUn /UfpfpSWTtUBE+ClQZWpD/ai4TTrYTr5yWsgBVl4pJEB+4u8eFRYzJve3ymGcGfjLwz1 piVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=SiT2334pLV4XCYraQE2kkHCbieDQYd9kjZYL7o8p/6E=; b=M+KRJM0J78j5rivS73lm0btT7DPXto5r0DefY+8GTQOA3uiEHEcKG616ZRye1/h1Ax tWgCeblxiGic/oZ6DQ9YJE1OUl4rXml6UCaNaVC/rxtvoI6zFAOcdYob60ifMWk4VCDM 4cuau4WMIGHXt7xhSWtgL8tPNaRpxNnloM1AcgcWMf5+60blS/HiSi76QUvcJ8J25fsl JyU15zv28dQE24ZwPu4APMpcBDWmq7HM1ZPXXbBa5P4Z4ARgx+UyygPFcLZVcbpq1ybh PaGZ781tw1ETDX0++k/fZboxxm4IwdakgZXTYcJN6uFe9RpsrDdZdO17i4Qo6oHYE1zK 4iyQ== X-Gm-Message-State: AOAM531m0QDabsl674wVhBAvtIDsET9qWf3qCFcS15FvxJRyuSkRJNxK t0VsgYrPnHV0qpyOqXIqlS2bOa4f X-Google-Smtp-Source: ABdhPJzvOCGyP24w4tIrJurVJShF8dUJVv6zp+X7J12Gplpim3IeUvjZGvbavFgUl5RL6E55JjZzYw== X-Received: by 2002:a5d:6b83:: with SMTP id n3mr11121629wrx.395.1592693943203; Sat, 20 Jun 2020 15:59:03 -0700 (PDT) Received: from localhost.localdomain (1.red-83-51-162.dynamicip.rima-tde.net. [83.51.162.1]) by smtp.gmail.com with ESMTPSA id x18sm11147127wmi.35.2020.06.20.15.59.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2020 15:59:02 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v4 5/8] hw/misc/pca9552: Trace GPIO High/Low events Date: Sun, 21 Jun 2020 00:58:51 +0200 Message-Id: <20200620225854.31160-6-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200620225854.31160-1-f4bug@amsat.org> References: <20200620225854.31160-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x442.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: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=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: , Cc: Corey Minyard , Peter Maydell , Andrew Jeffery , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, =?utf-8?q?C=C3=A9dric_Le_Goater?= , Joel Stanley Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Add a trivial representation of the PCA9552 GPIOs. Example booting obmc-phosphor-image: $ qemu-system-arm -M witherspoon-bmc -trace pca9552_gpio_status 1592689902.327837:pca9552_gpio_status pca-unspecified GPIOs 0-15 [*...............] 1592689902.329934:pca9552_gpio_status pca-unspecified GPIOs 0-15 [**..............] 1592689902.330717:pca9552_gpio_status pca-unspecified GPIOs 0-15 [***.............] 1592689902.331431:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****............] 1592689902.332163:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........*..] 1592689902.332888:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........**.] 1592689902.333629:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........***] 1592690032.793289:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........*.*] 1592690033.303163:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........***] 1592690033.812962:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........*.*] 1592690034.323234:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........***] 1592690034.832922:pca9552_gpio_status pca-unspecified GPIOs 0-15 [****.........*.*] 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 Suggested-by: Cédric Le Goater Signed-off-by: Philippe Mathieu-Daudé --- include/hw/misc/pca9552.h | 1 + hw/misc/pca9552.c | 29 +++++++++++++++++++++++++++++ hw/misc/trace-events | 3 +++ 3 files changed, 33 insertions(+) diff --git a/include/hw/misc/pca9552.h b/include/hw/misc/pca9552.h index c5be7f1c5e..755be2e8e5 100644 --- a/include/hw/misc/pca9552.h +++ b/include/hw/misc/pca9552.h @@ -26,6 +26,7 @@ typedef struct PCA9552State { uint8_t pointer; uint8_t regs[PCA9552_NR_REGS]; + uint16_t pins_status; /* Holds latest INPUT0 & INPUT1 status */ uint8_t max_reg; char *description; /* For debugging purpose only */ uint8_t nr_leds; diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c index 54ccdcf6d4..f0d435e310 100644 --- a/hw/misc/pca9552.c +++ b/hw/misc/pca9552.c @@ -12,12 +12,14 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "qemu/module.h" +#include "qemu/bitops.h" #include "hw/qdev-properties.h" #include "hw/misc/pca9552.h" #include "hw/misc/pca9552_regs.h" #include "migration/vmstate.h" #include "qapi/error.h" #include "qapi/visitor.h" +#include "trace.h" #define PCA9552_LED_ON 0x0 #define PCA9552_LED_OFF 0x1 @@ -34,6 +36,32 @@ static uint8_t pca9552_pin_get_config(PCA9552State *s, int pin) return extract32(s->regs[reg], shift, 2); } +static void pca9552_display_pins_status(PCA9552State *s) +{ + uint16_t pins_status, pins_changed; + int i; + + pins_status = (s->regs[PCA9552_INPUT1] << 8) | s->regs[PCA9552_INPUT0]; + pins_changed = s->pins_status ^ pins_status; + if (!pins_changed) { + return; + } + s->pins_status = pins_status; + if (trace_event_get_state_backends(TRACE_PCA9552_GPIO_STATUS)) { + char buf[PCA9552_PIN_COUNT + 1]; + + for (i = 0; i < s->nr_leds; i++) { + if (extract32(pins_status, i, 1)) { + buf[i] = '*'; + } else { + buf[i] = '.'; + } + } + buf[i] = '\0'; + trace_pca9552_gpio_status(s->description, buf); + } +} + static void pca9552_update_pin_input(PCA9552State *s) { int i; @@ -57,6 +85,7 @@ static void pca9552_update_pin_input(PCA9552State *s) break; } } + pca9552_display_pins_status(s); } static uint8_t pca9552_read(PCA9552State *s, uint8_t reg) diff --git a/hw/misc/trace-events b/hw/misc/trace-events index 5561746866..7630e59652 100644 --- a/hw/misc/trace-events +++ b/hw/misc/trace-events @@ -206,3 +206,6 @@ via1_rtc_cmd_pram_sect_write(int sector, int offset, int addr, int value) "secto # grlib_ahb_apb_pnp.c grlib_ahb_pnp_read(uint64_t addr, uint32_t value) "AHB PnP read addr:0x%03"PRIx64" data:0x%08x" grlib_apb_pnp_read(uint64_t addr, uint32_t value) "APB PnP read addr:0x%03"PRIx64" data:0x%08x" + +# pca9552.c +pca9552_gpio_status(const char *description, const char *buf) "%s GPIOs 0-15 [%s]" From patchwork Sat Jun 20 22:58:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 279878 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.5 required=3.0 tests=DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37517C433E0 for ; Sat, 20 Jun 2020 23:02:37 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 00DAF2474C for ; Sat, 20 Jun 2020 23:02:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fUttuOc5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 00DAF2474C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:43642 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmmVQ-0006Tg-8O for qemu-devel@archiver.kernel.org; Sat, 20 Jun 2020 19:02:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40596) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmmS4-0000w9-Pf; Sat, 20 Jun 2020 18:59:08 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:54606) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jmmS3-0000yh-9m; Sat, 20 Jun 2020 18:59:08 -0400 Received: by mail-wm1-x344.google.com with SMTP id g10so11659869wmh.4; Sat, 20 Jun 2020 15:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DyoF/qLlFB6Eqm6PiYWnf/NDgGben7zze4O/C89Ofx4=; b=fUttuOc5T9+Vum1IoeF53eY8N9xHFxiKg1QORzz2CBWl4iRgr27gthZm7FOfRwoenl DUxnowonYsFlT73NZdK5+yqana+16k/Leobko+jg7R8KJn6A1uCqCZGBgoII4nfSKepj DRBhc+6XdewhICifS9L629CRZDm36a/ulm0U2OeAZOLKsBibGV+oPoObvWFIE1xmIdO7 AcNLjdIGmkG5GzVZ1e4gR0QNZBKa1dQaAg1LTdEpLWq5r41cIPjsA6w/mMGAxlSw6gxF ugqlFD3gHSEyFngKDar5s+/jb45hDTFu9fwy9DOsAwaq9G80Y+dF7X8/y3PuJPO+pROi awWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=DyoF/qLlFB6Eqm6PiYWnf/NDgGben7zze4O/C89Ofx4=; b=DFM2mJhXd6qfYw/cMI3nvtISjUO2cvDDc7O4C4m0N+PUa1LiFa62iRmTfQT8tiQhT4 DLvQ6RZUl2nBhiUcwhthmHLcVee9jPxGIDpmZg6uzy1KOYporegqZ0WQn5wlnpZE/gQm tX6FRhNi0WFe4aN7Etk7YxDJdb66tZ8rN5IdQLRQtRVVkRi02/xBbIrGfVKSjK22km8Z lkLtCqLmRbnuRKGlRqXCBkHi7CpDOj/rJR7DPvBsV/UEuXFwtPBwB0nTgnuQ4svpoCVc ZaamX8WMjJVHXedvcM+5T4Hq9JEt55WnVSNwlhTlk90yzVP3n/5DkmY11KkLiVk6D+Wn AaRg== X-Gm-Message-State: AOAM532tU4jbew96/kEz5ncEeJ4UAWdYA7hgNAJR6O+QKM5OVjCKgUOR LOKC7aqfUQDJEB6HiqkhUNizxmUb X-Google-Smtp-Source: ABdhPJwmJuqvrmd+9+mSldLaZD1CttABpdele+POohVLviVItf1VS1jY4jF8AqeLqWoFY29d4AQhHA== X-Received: by 2002:a7b:c246:: with SMTP id b6mr9973381wmj.96.1592693945585; Sat, 20 Jun 2020 15:59:05 -0700 (PDT) Received: from localhost.localdomain (1.red-83-51-162.dynamicip.rima-tde.net. [83.51.162.1]) by smtp.gmail.com with ESMTPSA id x18sm11147127wmi.35.2020.06.20.15.59.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2020 15:59:05 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v4 6/8] hw/arm/aspeed: Describe each PCA9552 device Date: Sun, 21 Jun 2020 00:58:52 +0200 Message-Id: <20200620225854.31160-7-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200620225854.31160-1-f4bug@amsat.org> References: <20200620225854.31160-1-f4bug@amsat.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::344; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x344.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: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=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: , Cc: Corey Minyard , Peter Maydell , Andrew Jeffery , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, =?utf-8?q?C=C3=A9dric_Le_Goater?= , Joel Stanley Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" We have 2 distinct PCA9552 devices. Set their description to distinguish them when looking at the trace events. Description name taken from: https://github.com/open-power/witherspoon-xml/blob/master/witherspoon.xml Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/aspeed.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 6b7533aeee..3d5dec4692 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -508,12 +508,15 @@ static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc) { AspeedSoCState *soc = &bmc->soc; uint8_t *eeprom_buf = g_malloc0(8 * 1024); + DeviceState *dev; /* Bus 3: TODO bmp280@77 */ /* Bus 3: TODO max31785@52 */ /* Bus 3: TODO dps310@76 */ - i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 3), TYPE_PCA9552, - 0x60); + dev = i2c_try_create_slave(TYPE_PCA9552, 0x60); + qdev_prop_set_string(dev, "description", "pca1"); + i2c_realize_and_unref(dev, aspeed_i2c_get_bus(DEVICE(&soc->i2c), 3), + &error_fatal); i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 4), "tmp423", 0x4c); i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 5), "tmp423", 0x4c); @@ -528,8 +531,10 @@ static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc) smbus_eeprom_init_one(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), 0x51, eeprom_buf); - i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), TYPE_PCA9552, - 0x60); + dev = i2c_try_create_slave(TYPE_PCA9552, 0x60); + qdev_prop_set_string(dev, "description", "pca0"); + i2c_realize_and_unref(dev, aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), + &error_fatal); /* Bus 11: TODO ucd90160@64 */ }