Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp6370725imu; Mon, 21 Jan 2019 07:47:55 -0800 (PST) X-Google-Smtp-Source: ALg8bN66G51QZ6P7OzfGfU48K290qNdPxmpMpQJ+qJyryoWLjBBvr9n6H7RaAnhlEjJ1FZEN+HLN X-Received: by 2002:a17:902:50e:: with SMTP id 14mr30319221plf.141.1548085675111; Mon, 21 Jan 2019 07:47:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548085675; cv=none; d=google.com; s=arc-20160816; b=vEBfDodp7s1H+/hThmwUI7g7+ZhaKwvXFhd4EUXKHW1a24x0xGzhnEIjR0lNjX5nln 09jzldEWKMSXZvhqSFh4DQ1CvwhWCprH99iexy40Vg7DU/chT2BryGqwnA2aCo6r02dS tjx8Wm4/ct0WgKrKgdR2oD22jEp8jWsiT/mUaRkI+nNxmc9oMnkpKmFEpKReiyxDc0/5 ZfDiWiuhDjLqBR/huElZbc8qgmjnAKgqsiv1i3v62CIswPe6bzITeEzDx/gV2nYhXekj xqkCSPACgDAiZhC2Omkn+OI8jFWoC4HTQQiE2tZOGV0Bg/OtX/JrfCmmMM8Di+n092lo rp9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=5OVAPzvKrDvZq8fYrZpaorEHqmQmOTqero07pB224o0=; b=dzM194c1YFNMcltU5esJdDxo2mrYmEg/mI/G+2Bia6b/vI0WVG52Ow5V2OCPUo6M8h PLkCx1pa717uF5/k4RZafiBf4boOlKrqU1mxgz/iFEUuJnDgxzfX2kaokOFSMuAiCVaE lhQzqy/88N+mzKIg+Yls9KEt6AMvKafulXX1GoP4K09Uws50rtwDuS9E7kVqEST59ZhP HhI5uuCD8XdREZRCT6mD5mYzUIFnCP2v5W6RWiE2Fyq6ojtSwnNEYyteeE71hir4eSv1 IRqVp04rCEa8GPQcLoqBLGmPtX/3tBV28+093l1aMKHM8NfvbdDL8o8/QmaIv2HjRZPi xBpA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b70si12396484pfe.168.2019.01.21.07.47.39; Mon, 21 Jan 2019 07:47:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730584AbfAUPqK (ORCPT + 99 others); Mon, 21 Jan 2019 10:46:10 -0500 Received: from mail.bootlin.com ([62.4.15.54]:32871 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730567AbfAUPqJ (ORCPT ); Mon, 21 Jan 2019 10:46:09 -0500 Received: by mail.bootlin.com (Postfix, from userid 110) id E33AC2078C; Mon, 21 Jan 2019 16:46:05 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.2 Received: from localhost (unknown [185.94.189.187]) by mail.bootlin.com (Postfix) with ESMTPSA id A228220BCD; Mon, 21 Jan 2019 16:45:55 +0100 (CET) From: Maxime Ripard To: Kishon Vijay Abraham I Cc: Thomas Petazzoni , Laurent Pinchart , linux-media@vger.kernel.org, Archit Taneja , Andrzej Hajda , Chen-Yu Tsai , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, Krzysztof Witos , Rafal Ciepiela , Maarten Lankhorst , Sean Paul , Maxime Ripard Subject: [PATCH v5 0/9] phy: Add configuration interface for MIPI D-PHY devices Date: Mon, 21 Jan 2019 16:45:45 +0100 Message-Id: X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Here is a set of patches to allow the phy framework consumers to test and apply runtime configurations. This is needed to support more phy classes that require tuning based on parameters depending on the current use case of the device, in addition to the power state management already provided by the current functions. A first test bed for that API are the MIPI D-PHY devices. There's a number of solutions that have been used so far to support these phy, most of the time being an ad-hoc driver in the consumer. That approach has a big shortcoming though, which is that this is quite difficult to deal with consumers integrated with multiple variants of phy, of multiple consumers integrated with the same phy. The latter case can be found in the Cadence DSI bridge, and the CSI transceiver and receivers. All of them are integrated with the same phy, or can be integrated with different phy, depending on the implementation. I've looked at all the MIPI DSI drivers I could find, and gathered all the parameters I could find. The interface should be complete, and most of the drivers can be converted in the future. The current set converts two of them: the above mentionned Cadence DSI driver so that the v4l2 drivers can use them, and the Allwinner MIPI-DSI driver. Let me know what you think, Maxime Changes from v4: - Removed regression on the variable calculation - Fixed the wakeup unit - Collected Sean Acked-by on the last patch - Collected Sakari Reviewed-by on the first patch Changes from v3 - Rebased on 5.0-rc1 - Added the fixes suggested by Sakari Changes from v2: - Rebased on next - Changed the interface to accomodate for the new submodes - Changed the timings units from nanoseconds to picoseconds - Added minimum and maximum boundaries to the documentation - Moved the clock enabling to phy_power_on in the Cadence DPHY driver - Exported the phy_configure and phy_validate symbols - Rework the phy pll divider computation in the cadence dphy driver Changes from v1: - Rebased on top of 4.20-rc1 - Removed the bus mode and timings parameters from the MIPI D-PHY parameters, since that shouldn't have any impact on the PHY itself. - Reworked the Cadence DSI and D-PHY drivers to take this into account. - Remove the mode parameter from phy_configure - Added phy_configure and phy_validate stubs - Return -EOPNOTSUPP in phy_configure and phy_validate when the operation is not implemented Maxime Ripard (9): phy: dphy: Remove unused header phy: dphy: Change units of wakeup and init parameters phy: dphy: Clarify lanes parameter documentation sun6i: dsi: Convert to generic phy handling phy: Move Allwinner A31 D-PHY driver to drivers/phy/ drm/bridge: cdns: Separate DSI and D-PHY configuration dt-bindings: phy: Move the Cadence D-PHY bindings phy: Add Cadence D-PHY support drm/bridge: cdns: Convert to phy framework Documentation/devicetree/bindings/display/bridge/cdns,dsi.txt | 21 +- Documentation/devicetree/bindings/phy/cdns,dphy.txt | 20 +- drivers/gpu/drm/bridge/Kconfig | 1 +- drivers/gpu/drm/bridge/cdns-dsi.c | 538 +------ drivers/gpu/drm/sun4i/Kconfig | 3 +- drivers/gpu/drm/sun4i/Makefile | 5 +- drivers/gpu/drm/sun4i/sun6i_mipi_dphy.c | 292 +---- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 31 +- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 17 +- drivers/phy/allwinner/Kconfig | 12 +- drivers/phy/allwinner/Makefile | 1 +- drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 318 ++++- drivers/phy/cadence/Kconfig | 13 +- drivers/phy/cadence/Makefile | 1 +- drivers/phy/cadence/cdns-dphy.c | 389 +++++- drivers/phy/phy-core-mipi-dphy.c | 8 +- include/linux/phy/phy-mipi-dphy.h | 13 +- 17 files changed, 894 insertions(+), 789 deletions(-) create mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.txt delete mode 100644 drivers/gpu/drm/sun4i/sun6i_mipi_dphy.c create mode 100644 drivers/phy/allwinner/phy-sun6i-mipi-dphy.c create mode 100644 drivers/phy/cadence/cdns-dphy.c base-commit: bfeffd155283772bbe78c6a05dec7c0128ee500c -- git-series 0.9.1