From patchwork Wed Sep 30 01:40:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luka Kovacic X-Patchwork-Id: 11807535 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8A8386CB for ; Wed, 30 Sep 2020 01:41:32 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 48D3A20C09 for ; Wed, 30 Sep 2020 01:41:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TuigBrhA"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=sartura-hr.20150623.gappssmtp.com header.i=@sartura-hr.20150623.gappssmtp.com header.b="Ca86OShb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 48D3A20C09 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sartura.hr Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=Aap96mJr2PeT0SA4j4XTNkJ7xhpgci4DZ3YiOvzAIdk=; b=TuigBrhAKxaigy7dQcQHg3lGVk Bs7BrIg1BnuR+3SxPNx3Exh5os/M3+bE36KT6xdMfZ0+Ou1u6TFcnWOjOJxuhqH4Uz9oO626lx/6G a8uR7pDA33cmDwcoXmF7YYj7lGDlbxJ9MiyyQMn/2WSN2bZmu/b3+1oCypvPqVAVPFIkg6w/tX5cw Qe0JobfGBAiHqdHAkPRBRNKk66ehjRFnWMBCjexRVhaDWCRn+6hAHuMDa8q9BxYX3x3d3vlm/enjP 9ZP4kQBu/snNNb0t4eb4y9CVJraO91bqmW9rEfeBG4Z4bZZ8iGjQDqsM20Tj0ADCNDnsBOdwa4qt8 aYNQVp4w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kNR7P-0000Dk-Kx; Wed, 30 Sep 2020 01:41:19 +0000 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kNR7L-0000CX-Vz for linux-arm-kernel@lists.infradead.org; Wed, 30 Sep 2020 01:41:17 +0000 Received: by mail-ej1-x643.google.com with SMTP id z23so379536ejr.13 for ; Tue, 29 Sep 2020 18:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sartura-hr.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=LSkCcfd5u6tIHuoglXDv5dm2jlHVEjxvQdA65Pq0GoA=; b=Ca86OShb3J5/791Ts6dB/T/Lo1vrbE/l771+QbFvBXD3CPEIWA1ERChhlaAo58wopT y9lyDzJXBvYNNPjpAYZZXawwUhSC3WeZBWOkL4BXw3DVFPEN8BgjZOc3x1GuBs8uI+f8 e6vGlUcD62s/J47wMNpGk+QH5+ZiLpk/nHBlQsxJS4PTGf894qNORtYhyednvr7sDAKt MhNtVKxE+s7pRyO1c1w4MOIQ32HZJzStq4qCyU30PxuCR/9Z1aYhz6J2Z5zlyBU3VxLh NKvkcafo6n6PTTZz3/i3v9Lm1+UEQSPALQp0s3UzLx3aiuocgChB0aQNEy+x0fIEurRx rGow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=LSkCcfd5u6tIHuoglXDv5dm2jlHVEjxvQdA65Pq0GoA=; b=ROr4lBUSRE+srcdzWsyx4UsJsy+TJo6v7DCJqwaB4WvhNrOHXMmiyrTHjsLlIKZaQb u+6u0gcEBezdWhKxMF5Nj+ojDQBDp1WgVkhrq8kYHwss1JrLyqNd43Q5aGYJsq+ZKfj8 7zTJfCebyAV6uZzuIi3hpDm/k3HWqWp/5qBb5IOXZ5sThCwOaTv1RYGGmU8TaLjxWXo1 Q53UnGBlKhq7KNOUfQG7nblX5FZFOz9w6xI54wx/LBbdp7D1fuywIPrMxhM+5xOyGlW8 m0cMpgLMZxScqq7dZRN1iXU2Ge5bu4eotMxlESOC034atO3OHMRnmX/1qfjUQdIvYvBn 9DLg== X-Gm-Message-State: AOAM533m7G6lNqGvo3pL0MLwOAQyCvyD1F7M197pAgAxYaoNQeruwsEp 2lUe7qv1PfYUczZX5iA59By5tA== X-Google-Smtp-Source: ABdhPJw7xUlIH00UwAgym2lIgdIfzZmulqgjFLa0U1/kjWToRVO6y2LJUfl0Y2S0PdPL1T4XgTmbkg== X-Received: by 2002:a17:907:64d:: with SMTP id wq13mr426766ejb.513.1601430072896; Tue, 29 Sep 2020 18:41:12 -0700 (PDT) Received: from localhost.localdomain ([2a00:ee2:4b0d:3000:290:faff:fe54:449c]) by smtp.gmail.com with ESMTPSA id q1sm203258ejy.37.2020.09.29.18.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Sep 2020 18:41:11 -0700 (PDT) From: Luka Kovacic To: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-leds@vger.kernel.org Subject: [PATCH v3 0/7] Add support for the iEi Puzzle-M801 board Date: Wed, 30 Sep 2020 03:40:51 +0200 Message-Id: <20200930014058.44460-1-luka.kovacic@sartura.hr> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200929_214116_157398_E3D05FB2 X-CRM114-Status: GOOD ( 20.02 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:643 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: andrew@lunn.ch, jdelvare@suse.com, luka.perkov@sartura.hr, jason@lakedaemon.net, gregory.clement@bootlin.com, marek.behun@nic.cz, Luka Kovacic , robh+dt@kernel.org, dmurphy@ti.com, pavel@ucw.cz, robert.marko@sartura.hr, lee.jones@linaro.org, linux@roeck-us.net Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org This patchset adds support for the iEi Puzzle-M801 1U Rackmount Network Appliance and for the iEi WT61P803 PUZZLE microcontroller, which enables some board specific features like fan and LED control, system power management and temperature sensor reading. The platform is based on the popular Marvell Armada 8040 SoC and supports up to 16 GB of DDR4 2400 MHz ECC RAM. It has a PCIe x16 slot (x2 lanes only) and an M.2 type B slot. External chassis ports: 2x 10 GbE SFP+ 4x 1 GbE (Marvell 88E1512P) 2x USB 3.0 1x RJ45 serial port All notable board components are supported in this patchset. Changes for v2: - Use LAAs for local-mac-address and match reg values - Code styling changes - Error handling moved to the end of the function - Define all magic numbers in the main header file - Convert the driver to make it OF independent - Refactor hwmon to use devm_hwmon_device_register_with_info() - Reduce the number of mutex locks - Allocate memory once for the response buffer - Reduce managed memory allocations Changes for v3: - Move iei-wt61p803-puzzle driver sysfs interface documentation to testing - Change some internal functions to static - Sync dt-bindings examples with the iEi Puzzle-M801 board dts - Remove obsolete device tree properties and correct LED functions - Reverse christmas tree variable declaration order, where possible - MAC address sysfs function rewrite - Fixed struct members size, where reasonable (MFD driver) - Add an error check for hwmon_dev - Use devm_led_classdev_register_ext() in the LED driver Luka Kovacic (7): dt-bindings: Add iEi vendor prefix and iEi WT61P803 PUZZLE driver bindings drivers: mfd: Add a driver for iEi WT61P803 PUZZLE MCU drivers: hwmon: Add the iEi WT61P803 PUZZLE HWMON driver drivers: leds: Add the iEi WT61P803 PUZZLE LED driver Documentation/ABI: Add iei-wt61p803-puzzle driver sysfs interface documentation MAINTAINERS: Add an entry for the iEi WT61P803 PUZZLE driver arm64: dts: marvell: Add a device tree for the iEi Puzzle-M801 board .../testing/sysfs-driver-iei-wt61p803-puzzle | 55 + .../hwmon/iei,wt61p803-puzzle-hwmon.yaml | 41 + .../leds/iei,wt61p803-puzzle-leds.yaml | 45 + .../bindings/mfd/iei,wt61p803-puzzle.yaml | 82 ++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + MAINTAINERS | 13 + arch/arm64/boot/dts/marvell/Makefile | 1 + .../dts/marvell/armada-8040-puzzle-m801.dts | 524 +++++++++ drivers/hwmon/Kconfig | 8 + drivers/hwmon/Makefile | 1 + drivers/hwmon/iei-wt61p803-puzzle-hwmon.c | 513 ++++++++ drivers/leds/Kconfig | 8 + drivers/leds/Makefile | 1 + drivers/leds/leds-iei-wt61p803-puzzle.c | 157 +++ drivers/mfd/Kconfig | 8 + drivers/mfd/Makefile | 1 + drivers/mfd/iei-wt61p803-puzzle.c | 1045 +++++++++++++++++ include/linux/mfd/iei-wt61p803-puzzle.h | 69 ++ 18 files changed, 2574 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-driver-iei-wt61p803-puzzle create mode 100644 Documentation/devicetree/bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml create mode 100644 Documentation/devicetree/bindings/leds/iei,wt61p803-puzzle-leds.yaml create mode 100644 Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml create mode 100644 arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts create mode 100644 drivers/hwmon/iei-wt61p803-puzzle-hwmon.c create mode 100644 drivers/leds/leds-iei-wt61p803-puzzle.c create mode 100644 drivers/mfd/iei-wt61p803-puzzle.c create mode 100644 include/linux/mfd/iei-wt61p803-puzzle.h