From mboxrd@z Thu Jan 1 00:00:00 1970 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=-7.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 7B54CC433DB for ; Sat, 13 Mar 2021 17:29:03 +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 011E364ED6 for ; Sat, 13 Mar 2021 17:29:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 011E364ED6 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33466 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lL84T-0002pm-TJ for qemu-devel@archiver.kernel.org; Sat, 13 Mar 2021 12:29:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57706) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lL7xp-0005wY-0m for qemu-devel@nongnu.org; Sat, 13 Mar 2021 12:22:09 -0500 Received: from mail-io1-xd2f.google.com ([2607:f8b0:4864:20::d2f]:33941) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lL7xm-0004oN-Lu for qemu-devel@nongnu.org; Sat, 13 Mar 2021 12:22:08 -0500 Received: by mail-io1-xd2f.google.com with SMTP id o11so29199921iob.1 for ; Sat, 13 Mar 2021 09:22:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nejvzYsvXwWWkshA01RqXM0+0+5orDLQGMcwv6IBEyI=; b=i4wnZvzTy9DRJcdtW8VSMy92PPhAn44DTo0EBBNBM7+Bs/bj9opj8zGIBDuDroPP1c ApT4g6V5arQ2BuLfhyGv5Gp27yMJePHV129p0ViTEmlajCwiKq3yERAK3KhRW9VzNfIA k+POL4VrHFP5EAr2XJ5Za0PfSy6Y0S057ddLD6qk86nXXx+lix+iGgtpP5ZJFgLxqPab 8EBx0ixn9R0lhxqmkYyvtVFa6jHWwXJEhk5S3mIUVF0OKE3vmNBs3Mk4H+2CJgEgLfWC LZAOeabzFcuARoXOaA+kKE5RXiOJsip+g854oLUohxupIj6p63yO9O1p0OGUPb6CvrQj V4/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nejvzYsvXwWWkshA01RqXM0+0+5orDLQGMcwv6IBEyI=; b=SttxJNsKSspobVatazEUc3uHMXTyZ35gK9AsifySWv+zJs/eBVm4ILTH19RWcf/P7E ZwfcoADLNrh6w6kESrvwyX9SmAe+v7nU8OvC+H0aASOEMHtEPQ0DtTDmLKb+yrkvKUZN Psjc4F4NlSi25FEd+VhcfRMORvOgjzrtTfYFJdRDbYhWpX0pYAheA+nMzzITtx1lm6p7 nmnFmcEhe81qSxiomEYAVJ0adgdJKtj1RKmiO0i0yPzmb/s52RrGJwxy34AgB8e+d/02 QGW5QTRiG0pAErOqPAEh354+nvsNi/qw+346HaBDBLesbku+vhwQfjd2YLYfVqVgp25+ utEQ== X-Gm-Message-State: AOAM530Pdv2rzqOiH7k9Q7C1FAyhTrFajtoUxdplSfQ4dIb0SSA5/bJV llkklBNKQguz4gVn/p1p6jbHziYe4N5jWsXCZzY= X-Google-Smtp-Source: ABdhPJyp1B5cT8/6x8eNBs9nD7S6uTXLLxK/yfWBwPZrFtS1QUutFOEDqfVYnaGs0+LtCD84Z30OI7mZMRw76qNiajo= X-Received: by 2002:a5d:8552:: with SMTP id b18mr3039970ios.124.1615656125430; Sat, 13 Mar 2021 09:22:05 -0800 (PST) MIME-Version: 1.0 References: <20210313165445.2113938-1-f4bug@amsat.org> <20210313165445.2113938-9-f4bug@amsat.org> In-Reply-To: From: "Niteesh G. S." Date: Sat, 13 Mar 2021 22:51:39 +0530 Message-ID: Subject: Re: [PATCH 08/11] hw/avr/arduino: Add D13 LED To: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Content-Type: multipart/alternative; boundary="0000000000006f7deb05bd6e4119" Received-SPF: pass client-ip=2607:f8b0:4864:20::d2f; envelope-from=niteesh.gs@gmail.com; helo=mail-io1-xd2f.google.com 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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: Michael Rolnik , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" --0000000000006f7deb05bd6e4119 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Reviewed-by: Niteesh G S On Sat, Mar 13, 2021 at 10:32 PM Niteesh G. S. wrote= : > Hii Phil, > > Just a few mins earlier than me :) > > Thanks, > Niteesh > > On Sat, Mar 13, 2021 at 10:25 PM Philippe Mathieu-Daud=C3=A9 > wrote: > >> From: G S Niteesh Babu >> >> Signed-off-by: G S Niteesh Babu >> Reviewed-by: Michael Rolnik >> Message-Id: <20210311135539.10206-4-niteesh.gs@gmail.com> >> [PMD: Added ArduinoMachineClass::d13_led_portb_bit] >> Signed-off-by: Philippe Mathieu-Daud=C3=A9 >> --- >> hw/avr/arduino.c | 18 ++++++++++++++++++ >> hw/avr/Kconfig | 1 + >> 2 files changed, 19 insertions(+) >> >> diff --git a/hw/avr/arduino.c b/hw/avr/arduino.c >> index 3ff31492fa6..73563a35d0d 100644 >> --- a/hw/avr/arduino.c >> +++ b/hw/avr/arduino.c >> @@ -13,6 +13,7 @@ >> #include "qemu/osdep.h" >> #include "qapi/error.h" >> #include "hw/boards.h" >> +#include "hw/misc/led.h" >> #include "atmega.h" >> #include "boot.h" >> #include "qom/object.h" >> @@ -22,6 +23,8 @@ struct ArduinoMachineState { >> MachineState parent_obj; >> /*< public >*/ >> AtmegaMcuState mcu; >> + >> + LEDState *onboard_led; >> }; >> typedef struct ArduinoMachineState ArduinoMachineState; >> >> @@ -31,6 +34,7 @@ struct ArduinoMachineClass { >> /*< public >*/ >> const char *mcu_type; >> uint64_t xtal_hz; >> + unsigned d13_led_portb_bit; /* PORTB GPIO for D13 yellow LED */ >> }; >> typedef struct ArduinoMachineClass ArduinoMachineClass; >> >> @@ -49,6 +53,16 @@ static void arduino_machine_init(MachineState *machin= e) >> amc->xtal_hz, &error_abort); >> sysbus_realize(SYS_BUS_DEVICE(&ams->mcu), &error_abort); >> >> + /* Onboard led connected to digital header PIN 13 */ >> + ams->onboard_led =3D led_create_simple(OBJECT(ams), >> + GPIO_POLARITY_ACTIVE_HIGH, >> + LED_COLOR_YELLOW, >> + "D13 LED"); >> + >> + qdev_connect_gpio_out(DEVICE(&ams->mcu.gpio[1]), >> + amc->d13_led_portb_bit, >> + qdev_get_gpio_in(DEVICE(ams->onboard_led), 0)= ); >> + >> if (machine->firmware) { >> if (!avr_load_firmware(&ams->mcu.cpu, machine, >> &ams->mcu.flash, machine->firmware)) { >> @@ -83,6 +97,7 @@ static void arduino_duemilanove_class_init(ObjectClass >> *oc, void *data) >> mc->alias =3D "2009"; >> amc->mcu_type =3D TYPE_ATMEGA168_MCU; >> amc->xtal_hz =3D 16 * 1000 * 1000; >> + amc->d13_led_portb_bit =3D 5; >> }; >> >> static void arduino_uno_class_init(ObjectClass *oc, void *data) >> @@ -98,6 +113,7 @@ static void arduino_uno_class_init(ObjectClass *oc, >> void *data) >> mc->alias =3D "uno"; >> amc->mcu_type =3D TYPE_ATMEGA328_MCU; >> amc->xtal_hz =3D 16 * 1000 * 1000; >> + amc->d13_led_portb_bit =3D 5; >> }; >> >> static void arduino_mega_class_init(ObjectClass *oc, void *data) >> @@ -113,6 +129,7 @@ static void arduino_mega_class_init(ObjectClass *oc, >> void *data) >> mc->alias =3D "mega"; >> amc->mcu_type =3D TYPE_ATMEGA1280_MCU; >> amc->xtal_hz =3D 16 * 1000 * 1000; >> + amc->d13_led_portb_bit =3D 7; >> }; >> >> static void arduino_mega2560_class_init(ObjectClass *oc, void *data) >> @@ -128,6 +145,7 @@ static void arduino_mega2560_class_init(ObjectClass >> *oc, void *data) >> mc->alias =3D "mega2560"; >> amc->mcu_type =3D TYPE_ATMEGA2560_MCU; >> amc->xtal_hz =3D 16 * 1000 * 1000; /* CSTCE16M0V53-R0 */ >> + amc->d13_led_portb_bit =3D 7; >> }; >> >> static const TypeInfo arduino_machine_types[] =3D { >> diff --git a/hw/avr/Kconfig b/hw/avr/Kconfig >> index 16a57ced11f..e0d4fc5537a 100644 >> --- a/hw/avr/Kconfig >> +++ b/hw/avr/Kconfig >> @@ -8,3 +8,4 @@ config AVR_ATMEGA_MCU >> config ARDUINO >> select AVR_ATMEGA_MCU >> select UNIMP >> + select LED >> -- >> 2.26.2 >> >> --0000000000006f7deb05bd6e4119 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Rev= iewed-by: Niteesh G S <niteesh.g= s@gmail.com>

On Sat, Mar 13, 2021 at 10:32 PM Niteesh G. S= . <niteesh.gs@gmail.com> = wrote:
Hii Phil,

Just a few mins earlier th= an me :)

Thanks,
Niteesh

=
On Sat, Ma= r 13, 2021 at 10:25 PM Philippe Mathieu-Daud=C3=A9 <f4bug@amsat.org> wrote:
From: G S Niteesh Babu <= niteesh.gs@gmail.= com>

Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Message-Id: <20210311135539.10206-4-niteesh.gs@gmail.com> [PMD: Added ArduinoMachineClass::d13_led_portb_bit]
Signed-off-by: Philippe Mathieu-Daud=C3=A9 <f4bug@amsat.org>
---
=C2=A0hw/avr/arduino.c | 18 ++++++++++++++++++
=C2=A0hw/avr/Kconfig=C2=A0 =C2=A0|=C2=A0 1 +
=C2=A02 files changed, 19 insertions(+)

diff --git a/hw/avr/arduino.c b/hw/avr/arduino.c
index 3ff31492fa6..73563a35d0d 100644
--- a/hw/avr/arduino.c
+++ b/hw/avr/arduino.c
@@ -13,6 +13,7 @@
=C2=A0#include "qemu/osdep.h"
=C2=A0#include "qapi/error.h"
=C2=A0#include "hw/boards.h"
+#include "hw/misc/led.h"
=C2=A0#include "atmega.h"
=C2=A0#include "boot.h"
=C2=A0#include "qom/object.h"
@@ -22,6 +23,8 @@ struct ArduinoMachineState {
=C2=A0 =C2=A0 =C2=A0MachineState parent_obj;
=C2=A0 =C2=A0 =C2=A0/*< public >*/
=C2=A0 =C2=A0 =C2=A0AtmegaMcuState mcu;
+
+=C2=A0 =C2=A0 LEDState *onboard_led;
=C2=A0};
=C2=A0typedef struct ArduinoMachineState ArduinoMachineState;

@@ -31,6 +34,7 @@ struct ArduinoMachineClass {
=C2=A0 =C2=A0 =C2=A0/*< public >*/
=C2=A0 =C2=A0 =C2=A0const char *mcu_type;
=C2=A0 =C2=A0 =C2=A0uint64_t xtal_hz;
+=C2=A0 =C2=A0 unsigned d13_led_portb_bit; /* PORTB GPIO for D13 yellow LED= */
=C2=A0};
=C2=A0typedef struct ArduinoMachineClass ArduinoMachineClass;

@@ -49,6 +53,16 @@ static void arduino_machine_init(MachineState *machine)<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 amc->xtal_hz, &error_abort);
=C2=A0 =C2=A0 =C2=A0sysbus_realize(SYS_BUS_DEVICE(&ams->mcu), &e= rror_abort);

+=C2=A0 =C2=A0 /* Onboard led connected to digital header PIN 13 */
+=C2=A0 =C2=A0 ams->onboard_led =3D led_create_simple(OBJECT(ams),
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GP= IO_POLARITY_ACTIVE_HIGH,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LE= D_COLOR_YELLOW,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&q= uot;D13 LED");
+
+=C2=A0 =C2=A0 qdev_connect_gpio_out(DEVICE(&ams->mcu.gpio[1]),
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 amc->d13_led_portb_bit,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(DEVICE(ams->onboard_led), 0));
+
=C2=A0 =C2=A0 =C2=A0if (machine->firmware) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!avr_load_firmware(&ams->mcu.c= pu, machine,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &ams->mcu.flash, machine->= firmware)) {
@@ -83,6 +97,7 @@ static void arduino_duemilanove_class_init(ObjectClass *o= c, void *data)
=C2=A0 =C2=A0 =C2=A0mc->alias=C2=A0 =C2=A0 =C2=A0 =C2=A0=3D "2009&q= uot;;
=C2=A0 =C2=A0 =C2=A0amc->mcu_type=C2=A0 =C2=A0=3D TYPE_ATMEGA168_MCU; =C2=A0 =C2=A0 =C2=A0amc->xtal_hz=C2=A0 =C2=A0 =3D 16 * 1000 * 1000;
+=C2=A0 =C2=A0 amc->d13_led_portb_bit =3D 5;
=C2=A0};

=C2=A0static void arduino_uno_class_init(ObjectClass *oc, void *data)
@@ -98,6 +113,7 @@ static void arduino_uno_class_init(ObjectClass *oc, void= *data)
=C2=A0 =C2=A0 =C2=A0mc->alias=C2=A0 =C2=A0 =C2=A0 =C2=A0=3D "uno&qu= ot;;
=C2=A0 =C2=A0 =C2=A0amc->mcu_type=C2=A0 =C2=A0=3D TYPE_ATMEGA328_MCU; =C2=A0 =C2=A0 =C2=A0amc->xtal_hz=C2=A0 =C2=A0 =3D 16 * 1000 * 1000;
+=C2=A0 =C2=A0 amc->d13_led_portb_bit =3D 5;
=C2=A0};

=C2=A0static void arduino_mega_class_init(ObjectClass *oc, void *data)
@@ -113,6 +129,7 @@ static void arduino_mega_class_init(ObjectClass *oc, vo= id *data)
=C2=A0 =C2=A0 =C2=A0mc->alias=C2=A0 =C2=A0 =C2=A0 =C2=A0=3D "mega&q= uot;;
=C2=A0 =C2=A0 =C2=A0amc->mcu_type=C2=A0 =C2=A0=3D TYPE_ATMEGA1280_MCU; =C2=A0 =C2=A0 =C2=A0amc->xtal_hz=C2=A0 =C2=A0 =3D 16 * 1000 * 1000;
+=C2=A0 =C2=A0 amc->d13_led_portb_bit =3D 7;
=C2=A0};

=C2=A0static void arduino_mega2560_class_init(ObjectClass *oc, void *data)<= br> @@ -128,6 +145,7 @@ static void arduino_mega2560_class_init(ObjectClass *oc= , void *data)
=C2=A0 =C2=A0 =C2=A0mc->alias=C2=A0 =C2=A0 =C2=A0 =C2=A0=3D "mega25= 60";
=C2=A0 =C2=A0 =C2=A0amc->mcu_type=C2=A0 =C2=A0=3D TYPE_ATMEGA2560_MCU; =C2=A0 =C2=A0 =C2=A0amc->xtal_hz=C2=A0 =C2=A0 =3D 16 * 1000 * 1000; /* C= STCE16M0V53-R0 */
+=C2=A0 =C2=A0 amc->d13_led_portb_bit =3D 7;
=C2=A0};

=C2=A0static const TypeInfo arduino_machine_types[] =3D {
diff --git a/hw/avr/Kconfig b/hw/avr/Kconfig
index 16a57ced11f..e0d4fc5537a 100644
--- a/hw/avr/Kconfig
+++ b/hw/avr/Kconfig
@@ -8,3 +8,4 @@ config AVR_ATMEGA_MCU
=C2=A0config ARDUINO
=C2=A0 =C2=A0 =C2=A0select AVR_ATMEGA_MCU
=C2=A0 =C2=A0 =C2=A0select UNIMP
+=C2=A0 =C2=A0 select LED
--
2.26.2

--0000000000006f7deb05bd6e4119--