From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00B554A05 for ; Thu, 16 Jan 2025 09:33:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737019987; cv=none; b=HNQiUTl/zqq+TM0xJIY/EueiPB1X6u/+EODjLz6XYcpnb6PLyaQZmm+y3wMVB6Xa/RFcEpqNcWJyC3UaK4SdMHUqdD6HY92jnSL7cnPQalAW6CA2mb9it7aEbME/1pGeHWBbDR7msqYsGUghlz9qU8NWp3yXfAwLyNHLaZceTgA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737019987; c=relaxed/simple; bh=29T95yXiVLPU5tu+O6sppTn5MDLD8y6Ai8fyQ2pgGhE=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=h/MK4BkRgWaMi3CD2AdnKikhIcfdx7EEWSPB0JsS+chXInoG1tfUJcBsRjZBIi7uobimYXvcUxvFntHSNFAZ8QtvGidzPQFGVhx3DhzTM7J/zAC7yvY0/hcWWNRDdtlKhl6ImQtpFWHQdLMvaBIoJPB7ZOrzbQvXfTPtp0NHoHs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=BLB0oa77; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="BLB0oa77" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737019983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=watVvtbZuBC3aoJqntqzXkKeLbDyxbUKeyqqbvNF8aM=; b=BLB0oa77GUYMBtLP5O60LdyYzFuzid2zim3PcvFHHa3WrNAA1Iuy0nY44l12GtHMBbcBW3 NIEdDyddJct06OiWO1p8b+F4XXxSn/rDOgKyPbTsQUpqDXYq0+DntZ+BfXXl2X1hQRiSkL bMVaTnOAc1RaN5dCeT21waZV2iw2kkQ= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-18-rWodVGXuMvqSGio9oSm0jA-1; Thu, 16 Jan 2025 04:33:01 -0500 X-MC-Unique: rWodVGXuMvqSGio9oSm0jA-1 X-Mimecast-MFC-AGG-ID: rWodVGXuMvqSGio9oSm0jA Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-38634103b0dso423151f8f.2 for ; Thu, 16 Jan 2025 01:33:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737019980; x=1737624780; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=watVvtbZuBC3aoJqntqzXkKeLbDyxbUKeyqqbvNF8aM=; b=LasFjk0Yzr1vC46MK3f2tWsPvhQFzhYQibDEJzdGlMrlKA18l11MjI/uwfVh0RmFRU 6Qk/4bwOgzRs93LS4QlRaaTOWJvKOBUubjMhmav0abz9RuTQmMXtUjsnE8soCPv/aVWE PlYF0BsCLxJgqRQ8zJmI8qIcps9s/+kPIlhOn+b+zJHgVPjDoalhfonWrByOx57AVffd Pl5YxUuwnC2y18LIxqw8sikVQxSKZUdWvh67Z60Apkidsi381iWSttxbE4DkDQJXMZOa 0g2bI0DuK53+WW5Vseonpcaaqfxo+gnweSBITAb4odYuTykbvEef3Qcmbpqz31Xg11Aq fwDA== X-Forwarded-Encrypted: i=1; AJvYcCVRz/R4HF27l1Yu8w/gr2MHDLBRF9dVgNwwVKHvZJzL4QtMq0c0+nbhIXWNBhiM971NtIFU5gVaaN+M3s0=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7th1YGzpIAYmvmRSEHIW3/IuLKECXijy7WHjObE/yq5wS0i/Z iqSUc3a4p4GRQwIyfm4ujO7myEi6XFmCOShp7Oy2Gubh2vSqvk4FdQQSGNZuONPiIxusVXyUqcN 9DtOi8yRW+VtnF4OjsHZn560nNs/ZvAXjpUgHWCAIWKsq0TrTwNCbuZnx4DTKKw== X-Gm-Gg: ASbGncvjcg3Ib61eM1hlT+XYN7+63IKnk4GTqDy9tu6hUu+XbtM2jW8G21Htyd8x+Vn TfTS9lZ1yH2d86tbVuGdGMC/g4MbAb9HIfWRK2mHg6dK+H19DVWNuazsbD28i+0uQOGGTFS0akZ J0XM/OoY10b8YToMGMIn6+BivdZehMifg2GKXbS1ptBZBmCBNiBEc08k2cKvVbg5nU5pQU3HnGR zE9lisLwQPChHTLqBuI0idI2J/BKLtXBniY21WmhfjxK33Wj9VD45LqwYdBLVApiFEojBZ14Jpx 3C8mchR7e1A= X-Received: by 2002:a5d:64e9:0:b0:385:f7d2:7e29 with SMTP id ffacd0b85a97d-38a87304221mr31579607f8f.15.1737019980262; Thu, 16 Jan 2025 01:33:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IF8iEZL6HX7r7uVsWSRV5f1pdiPneCTDuEfM71Vc5/63jrcpNd1IPw/aOB2HPWVqsDu5ORGbQ== X-Received: by 2002:a5d:64e9:0:b0:385:f7d2:7e29 with SMTP id ffacd0b85a97d-38a87304221mr31579567f8f.15.1737019979916; Thu, 16 Jan 2025 01:32:59 -0800 (PST) Received: from [192.168.88.253] (146-241-15-169.dyn.eolo.it. [146.241.15.169]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a9407fd62sm18263992f8f.92.2025.01.16.01.32.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Jan 2025 01:32:59 -0800 (PST) Message-ID: <32b6985e-3897-4317-bdf7-d78ffe89c38d@redhat.com> Date: Thu, 16 Jan 2025 10:32:58 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [net-next,PATCH 1/2] net: dsa: microchip: Add emulated MIIM access to switch LED config registers To: Marek Vasut , netdev@vger.kernel.org Cc: "David S. Miller" , Andrew Lunn , Eric Dumazet , Heiner Kallweit , Jakub Kicinski , Russell King , Tristram Ha , UNGLinuxDriver@microchip.com, Vladimir Oltean , Woojung Huh , linux-kernel@vger.kernel.org References: <20250113001543.296510-1-marex@denx.de> Content-Language: en-US From: Paolo Abeni In-Reply-To: <20250113001543.296510-1-marex@denx.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 1/13/25 1:15 AM, Marek Vasut wrote: > The KSZ87xx switch DSA driver binds a simplified KSZ8795 switch PHY driver to > each port. The KSZ8795 switch PHY driver is part of drivers/net/phy/micrel.c > and uses generic PHY register accessors to access MIIM registers 0x00..0x05, > 0x1d and 0x1f . The MII access is implemented by the KSZ87xx switch DSA driver > and internally done over whichever interface the KSZ87xx switch is connected > to the SoC. > > In order to configure LEDs from the KSZ8795 switch PHY driver, it is necessary > to expose the LED control registers to the PHY driver, however, the LED control > registers are not part of the MIIM block, they are in Switch Config Registers > block. > > This preparatory patch exposes the LED control bits in those Switch Config > Registers by mapping them at high addresses in the MIIM space, so the PHY > driver can access those registers and surely not collide with the existing > MIIM block registers. The two registers which are exposed are the global > Register 11 (0x0B): Global Control 9 as MIIM block register 0x0b00 and > port specific Register 29/45/61 (0x1D/0x2D/0x3D): Port 1/2/3 Control 10 > as MIIM block register 0x0d00 . The access to those registers is further > restricted only to the LED configuration bits to prevent the PHY driver > or userspace tools like 'phytool' from tampering with any other switch > configuration through this interface. > > Signed-off-by: Marek Vasut > --- > Cc: "David S. Miller" > Cc: Andrew Lunn > Cc: Eric Dumazet > Cc: Heiner Kallweit > Cc: Jakub Kicinski > Cc: Paolo Abeni > Cc: Russell King > Cc: Tristram Ha > Cc: UNGLinuxDriver@microchip.com > Cc: Vladimir Oltean > Cc: Woojung Huh > Cc: linux-kernel@vger.kernel.org > Cc: netdev@vger.kernel.org > --- > drivers/net/dsa/microchip/ksz8.c | 47 ++++++++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/drivers/net/dsa/microchip/ksz8.c b/drivers/net/dsa/microchip/ksz8.c > index da7110d675583..9698bf53378af 100644 > --- a/drivers/net/dsa/microchip/ksz8.c > +++ b/drivers/net/dsa/microchip/ksz8.c > @@ -1044,6 +1044,22 @@ int ksz8_r_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 *val) > return ret; > > break; > + /* Emulated access to Register 11 (0x0B): Global Control 9 */ > + case (REG_SW_CTRL_9 << 8): I think it's better to add a macro for the new registers > + ret = ksz_read8(dev, REG_SW_CTRL_9, &val1); > + if (ret) > + return ret; > + > + data = val1 & 0x30; /* LED Mode */ In a similar way, it's better to add meaningful macros for the relevant register fields. You should consider using the *FIELD*() helpers, too. /P