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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 D1813C54E76 for ; Tue, 17 Jan 2023 18:02:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:CC :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=S2H3+l+BiNASjpC/qQru+/6ZQCZ0QFQkXad7oFsModo=; b=3VMLkberh8Ul1u rVS4+JUNvOXy5DX2eSssRnMb5kbYYqZFN66uBY8hOuQkUTnYSmn1N9/dOUfaH17fnsdTwi3xuZ2RJ DRMKtiYixpzVdMFZ7ozYkbrDV3TQ9to79rQGWs/VMrCWtm9b1zfqR70bgnN5vqKxKTz7UuySfzZ5M 0Q8GCfTgQcL6yRNj5HzNZZfvlyhPV3rNduqljh7Dnb3am0PfjL7DY8LMBfti0hGmvIngmD/IEfRWj kRgjagzHyBy7qDMy1Ahxw7kSHXSkgrTy9oFIGge0k7oZ4K2nBNOuwcn3T0fK+vhx7BlaN/TSX8ljC XQQug2gwTroefiw+R+eA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pHqH3-00FLr0-5A; Tue, 17 Jan 2023 18:01:29 +0000 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pHqGz-00FLor-7N for linux-arm-kernel@lists.infradead.org; Tue, 17 Jan 2023 18:01:26 +0000 Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30HG6Dci031445; Tue, 17 Jan 2023 10:01:11 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=s2048-2021-q4; bh=C3W07MX49DoXFn+PQhH0IS+B2wD4qZN/G+SrD2R2f7s=; b=jgd9qoy9wwGIKWEegZrARlNn7qoaqmeCGq65dwq2Ax4HXERUupya4ajOQyCdz25/y3Yy edcdXVFzDp9bDhDOtKpwNzrb0UNlr6tHtc0lXoSSQihleV85M549gF382DdSQOca8Xw5 dDKTp2nzmKafYg/RxvCC7FF2bwO0kGf2AEpy0ctYzBEAfZzosTq1pG1wNpIj0Ancta54 fNGP6kAgoMfA4u0bxRwpwsJBgvC4aaTjtvZarE4k4USGn4wedW0a8DKbkLHbGa8ugrVF aXLdtWq1u7oUjarCwZ7ZcVMaSRShgV3qtZiap7LXA7LaAWcBYPIalNLp0BOmBt8aBUZ3 /Q== Received: from mail.thefacebook.com ([163.114.132.120]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3n58dke2hp-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 17 Jan 2023 10:01:11 -0800 Received: from devvm1736.cln0.facebook.com (2620:10d:c085:108::8) by mail.thefacebook.com (2620:10d:c085:11d::6) with Microsoft SMTP Server id 15.1.2375.34; Tue, 17 Jan 2023 10:01:07 -0800 From: Vadim Fedorenko To: Jakub Kicinski , Jiri Pirko , "Arkadiusz Kubalewski" , Jonathan Lemon , Paolo Abeni CC: Vadim Fedorenko , , , Subject: [RFC PATCH v5 0/4] Create common DPLL/clock configuration API Date: Tue, 17 Jan 2023 10:00:47 -0800 Message-ID: <20230117180051.2983639-1-vadfed@meta.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Originating-IP: [2620:10d:c085:108::8] X-Proofpoint-GUID: oLWThWXLYAjV1k9uVCliarVK2aSxfE05 X-Proofpoint-ORIG-GUID: oLWThWXLYAjV1k9uVCliarVK2aSxfE05 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-17_09,2023-01-17_01,2022-06-22_01 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230117_100125_427300_733F0B72 X-CRM114-Status: GOOD ( 16.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Implement common API for clock/DPLL configuration and status reporting. The API utilises netlink interface as transport for commands and event notifications. This API aim to extend current pin configuration and make it flexible and easy to cover special configurations. v4 -> v5: * fix code issues found during last reviews: - replace cookie with clock id - follow one naming schema in dpll subsys - move function comments to dpll_core.c, fix exports - remove single-use helper functions - merge device register with alloc - lock and unlock mutex on dpll device release - move dpll_type to uapi header - rename DPLLA_DUMP_FILTER to DPLLA_FILTER - rename dpll_pin_state to dpll_pin_mode - rename DPLL_MODE_FORCED to DPLL_MODE_MANUAL - remove DPLL_CHANGE_PIN_TYPE enum value * rewrite framework once again (Arkadiusz) - add clock class: Provide userspace with clock class value of DPLL with dpll device dump netlink request. Clock class is assigned by driver allocating a dpll device. Clock class values are defined as specified in: ITU-T G.8273.2/Y.1368.2 recommendation. - dpll device naming schema use new pattern: "dpll_%s_%d_%d", where: - %s - dev_name(parent) of parent device, - %d (1) - enum value of dpll type, - %d (2) - device index provided by parent device. - new muxed/shared pin registration: Let the kernel module to register a shared or muxed pin without finding it or its parent. Instead use a parent/shared pin description to find correct pin internally in dpll_core, simplifing a dpll API * Implement complex DPLL design in ice driver (Arkadiusz) * Remove ptp_ocp driver from the series for now v3 -> v4: * redesign framework to make pins dynamically allocated (Arkadiusz) * implement shared pins (Arkadiusz) v2 -> v3: * implement source select mode (Arkadiusz) * add documentation * implementation improvements (Jakub) v1 -> v2: * implement returning supported input/output types * ptp_ocp: follow suggestions from Jonathan * add linux-clk mailing list v0 -> v1: * fix code style and errors * add linux-arm mailing list Arkadiusz Kubalewski (2): ice: add admin commands to access cgu configuration ice: implement dpll interface to control cgu Vadim Fedorenko (2): dpll: documentation on DPLL subsystem interface dpll: Add DPLL framework base functions Documentation/networking/dpll.rst | 280 +++ Documentation/networking/index.rst | 1 + MAINTAINERS | 8 + drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/dpll/Kconfig | 7 + drivers/dpll/Makefile | 9 + drivers/dpll/dpll_core.c | 1010 ++++++++ drivers/dpll/dpll_core.h | 105 + drivers/dpll/dpll_netlink.c | 883 +++++++ drivers/dpll/dpll_netlink.h | 24 + drivers/net/ethernet/intel/Kconfig | 1 + drivers/net/ethernet/intel/ice/Makefile | 3 +- drivers/net/ethernet/intel/ice/ice.h | 5 + .../net/ethernet/intel/ice/ice_adminq_cmd.h | 240 +- drivers/net/ethernet/intel/ice/ice_common.c | 467 ++++ drivers/net/ethernet/intel/ice/ice_common.h | 43 + drivers/net/ethernet/intel/ice/ice_dpll.c | 2115 +++++++++++++++++ drivers/net/ethernet/intel/ice/ice_dpll.h | 99 + drivers/net/ethernet/intel/ice/ice_lib.c | 17 +- drivers/net/ethernet/intel/ice/ice_main.c | 10 + drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 408 ++++ drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 240 ++ drivers/net/ethernet/intel/ice/ice_type.h | 1 + include/linux/dpll.h | 282 +++ include/uapi/linux/dpll.h | 294 +++ 26 files changed, 6549 insertions(+), 6 deletions(-) create mode 100644 Documentation/networking/dpll.rst create mode 100644 drivers/dpll/Kconfig create mode 100644 drivers/dpll/Makefile create mode 100644 drivers/dpll/dpll_core.c create mode 100644 drivers/dpll/dpll_core.h create mode 100644 drivers/dpll/dpll_netlink.c create mode 100644 drivers/dpll/dpll_netlink.h create mode 100644 drivers/net/ethernet/intel/ice/ice_dpll.c create mode 100644 drivers/net/ethernet/intel/ice/ice_dpll.h create mode 100644 include/linux/dpll.h create mode 100644 include/uapi/linux/dpll.h -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel