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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 69DC2C43334 for ; Wed, 1 Jun 2022 21:14:16 +0000 (UTC) Received: from localhost ([::1]:42404 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nwVfT-0004xs-5o for qemu-devel@archiver.kernel.org; Wed, 01 Jun 2022 17:14:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59808) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nwVa7-0000nW-HI; Wed, 01 Jun 2022 17:08:43 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:59423) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nwVa5-000224-Sq; Wed, 01 Jun 2022 17:08:43 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 229FA5C01C2; Wed, 1 Jun 2022 17:08:41 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Wed, 01 Jun 2022 17:08:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=cc:cc:content-transfer-encoding:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm3; t=1654117721; x= 1654204121; bh=agWTpPN5g6Ngdn7NFU5D5UXTWDyetqvjbfAd0JxUuP4=; b=F 85+IZzJceowG7EBMiKYT8UBAPYq/YcUcyio8x35QnjVN0MOli1h+2nwO4+vJWXSC olOpALkgMiRCJvxQLyk0/XAbrM6BSXz06VcFsEPhsruFP6pBx3c3b/Yl/GGOCTO0 +Rx5hcWdmHswSGm2JM0yNWxEvwNNqt7imrf0cbcYLYjA7TuUKq44q/OR/CZ1pIlt 2vvIQygjgtuczuCOswmHeBhPLiy3CDxYEJBy0j21oK8T5UdYWHsHmdeaY1LCGRfq jY5ZJ0MQVtQKX0iqe9DavO5VmjeqijdRsokF1wcmAiE2d7KaAX5rTCXrE441weLr HB+MZOoNV1yqE/EapiHCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1654117721; x=1654204121; bh=agWTpPN5g6Ngd n7NFU5D5UXTWDyetqvjbfAd0JxUuP4=; b=T5Kyr2MFvQqkXpvxni5staFBcVQLX DFPMdBwdzUsaWu0YEXrzdqHtgX6amTeoZ5Bhxy69yPFoKyDXSm/1LsQmvfloSAWb 4xZRVlhp+Tb2VxDEJNIzwxvh35dVNNyjZ12SUi8ZQZfVsIsz4natJXMXoYM3gTAk RKufZh6jnh9sokhlnWlFnOjIRgorSMcjTSQm1Xyf0/k3/pE7Wsgg43+2hLjE9CXq A07Y4o5okxFSDU4lxr0MXDooYM7A5eln1u9InNZeOZL3/Z1H0I/qt23iyuKNtlZ1 Sf3YAW6kn6J85hQOwnfPO4ub+xn4YVlxLQzx5I4QJHodYdwE1sr1G2Q2Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrledtgdduheehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhlrghu shculfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrth htvghrnhepjefgieelgfeiveehkeeuveehheekfeevgeeigfehfefgjeejhefffeegudej udegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepih htshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: Feedback-ID: idc91472f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 1 Jun 2022 17:08:39 -0400 (EDT) From: Klaus Jensen To: qemu-devel@nongnu.org Cc: Jonathan Cameron , qemu-arm@nongnu.org, Peter Delevoryas , Peter Maydell , Corey Minyard , Padmakar Kalghatgi , Damien Hedde , Andrew Jeffery , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Joel Stanley , Arun Kumar Kashinath Agasar , Klaus Jensen Subject: [RFC PATCH v2 2/6] hw/i2c/aspeed: add DEV_ADDR in old register mode Date: Wed, 1 Jun 2022 23:08:27 +0200 Message-Id: <20220601210831.67259-3-its@irrelevant.dk> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220601210831.67259-1-its@irrelevant.dk> References: <20220601210831.67259-1-its@irrelevant.dk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=66.111.4.26; envelope-from=its@irrelevant.dk; helo=out2-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Klaus Jensen Add support for writing and reading the device address register in old register mode. Signed-off-by: Klaus Jensen --- hw/i2c/aspeed_i2c.c | 5 +++-- include/hw/i2c/aspeed_i2c.h | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/hw/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c index 576425898b09..5a7eb5579b01 100644 --- a/hw/i2c/aspeed_i2c.c +++ b/hw/i2c/aspeed_i2c.c @@ -104,6 +104,7 @@ static uint64_t aspeed_i2c_bus_old_read(AspeedI2CBus *bus, hwaddr offset, case A_I2CD_AC_TIMING2: case A_I2CD_INTR_CTRL: case A_I2CD_INTR_STS: + case A_I2CD_DEV_ADDR: case A_I2CD_POOL_CTRL: case A_I2CD_BYTE_BUF: /* Value is already set, don't do anything. */ @@ -741,8 +742,7 @@ static void aspeed_i2c_bus_old_write(AspeedI2CBus *bus, hwaddr offset, } break; case A_I2CD_DEV_ADDR: - qemu_log_mask(LOG_UNIMP, "%s: slave mode not implemented\n", - __func__); + bus->regs[R_I2CD_DEV_ADDR] = value; break; case A_I2CD_POOL_CTRL: bus->regs[R_I2CD_POOL_CTRL] &= ~0xffffff; @@ -1060,6 +1060,7 @@ static void aspeed_i2c_bus_reset(DeviceState *dev) s->regs[R_I2CD_INTR_CTRL] = 0; s->regs[R_I2CD_INTR_STS] = 0; + s->regs[R_I2CD_DEV_ADDR] = 0; s->regs[R_I2CD_CMD] = 0; s->regs[R_I2CD_BYTE_BUF] = 0; s->regs[R_I2CD_DMA_ADDR] = 0; diff --git a/include/hw/i2c/aspeed_i2c.h b/include/hw/i2c/aspeed_i2c.h index 79c6779c6c1e..03fe829a3a57 100644 --- a/include/hw/i2c/aspeed_i2c.h +++ b/include/hw/i2c/aspeed_i2c.h @@ -297,6 +297,14 @@ static inline uint32_t aspeed_i2c_bus_cmd_offset(AspeedI2CBus *bus) return R_I2CD_CMD; } +static inline uint32_t aspeed_i2c_bus_dev_addr_offset(AspeedI2CBus *bus) +{ + if (aspeed_i2c_is_new_mode(bus->controller)) { + return R_I2CS_DEV_ADDR; + } + return R_I2CD_DEV_ADDR; +} + static inline uint32_t aspeed_i2c_bus_intr_ctrl_offset(AspeedI2CBus *bus) { if (aspeed_i2c_is_new_mode(bus->controller)) { -- 2.36.1