From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philippe CORNU Subject: [PATCH v5 0/7] STM32 DSI HOST Date: Mon, 3 Jul 2017 10:41:20 +0200 Message-ID: <1499071287-10414-1-git-send-email-philippe.cornu@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexandre Torgue , Thierry Reding , David Airlie , Maxime Coquelin , Russell King , Mark Rutland , Rob Herring , Arnd Bergmann , Benjamin Gaignard , Yannick Fertre , Neil Armstrong , Archit Taneja , Eric Anholt , Chris Zhong , Andrzej Hajda , Xinliang Liu , zourongrong@gmail.com, Xinwei Kong , Chen Feng , Mark Yao Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Philippe Cornu , Fabien Dessenne , dri-devel@lists.freedesktop.org, Mickael Reulier , Vincent Abriou , Gabriel Fernandez , Ludovic Barre List-Id: devicetree@vger.kernel.org VmVyc2lvbiA1OgotIGJyaWRnZS9zeW5vcHNpcy9kdy1taXBpLWRzaS5jOiBJbXByb3ZlIHRoZSBk aXJlY3QgY2FsbCB0byBwYW5lbAogIGJyaWRnZSBwb3N0X2Rpc2FibGUoKSAmIHJlbGF0ZWQgY29t bWVudHMgKEFyY2hpdCBUYW5lamEpCi0gc3RtL2x0ZGMuYzogZml4IGxlYWsgb2YgcGl4ZWwgY2xv Y2sgZW5hYmxlIGluIHNvbWUgZXJyb3IKICBwYXRocyAoRXJpYyBBbmhvbHQpCi0gYmluZGluZ3Mv ZGlzcGxheS9icmlkZ2UvZHdfbWlwaV9kc2kudHh0OiBhZGQgcGl4ZWwgY2xvY2sgJiByZW1vdmUK ICAiZHJpdmVyIiAoUm9iIEhlcnJpbmcsIEFyY2hpdCBUYW5lamEpCi0gYmluZGluZ3MvZGlzcGxh eS9zdCxzdG0zMi1sdGRjLnR4dDogcmVtb3ZlICJkcml2ZXIiIChSb2IgSGVycmluZywKICBBcmNo aXQgVGFuZWphKQoKVmVyc2lvbiA0OgotIGJyaWRnZS9zeW5vcHNpcy9kdy1taXBpLWRzaS5jOiBB ZGQgcGFuZWwtYnJpZGdlIHN1cHBvcnQgKC00NSBsaW5lcywKICBidXQgbm8gc28gZWFzeSB0byBk bykgYW5kIGlzX3BhbmVsX2JyaWRnZSBmb3IgYSBiZXR0ZXIgY2xlYW4gdXAsIGFkZAogIHN0bSBj b3B5cmlnaHQvcmVtb3ZlIGRwbXNfbW9kZS9yZW1vdmUgZHJtX29mLmgvaW1wcm92ZSBjbGsKICBt YW5hZ2VtZW50L2FkZCBtb2RlX3ZhbGlkICh0aGFua3MgdG8gY29tbWVudHMgb2YgQXJjaGl0IFRh bmVqYSksIHVzZQogICJEZXNpZ25XYXJlIiBpbnN0ZWFkIG9mICJEZXNpZ253YXJlICh0aGFua3Mg dG8gY29tbWVudHMgb2YgTmVpbAogIEFybXN0cm9uZykKLSBicmlkZ2Uvc3lub3BzaXMvS2NvbmZp ZzogUmVtb3ZlIGhlbHAgc2VjdGlvbiB0byBoaWRlIGl0IGluIG1lbnVjb25maWcKICAodGhhbmtz IHRvIGNvbW1lbnRzIG9mIEFyY2hpdCBUYW5lamEpCi0gaW5jbHVkZS9kcm0vYnJpZGdlL2R3X21p cGlfZHNpLmg6IFJlbW92ZSBkcm1QLmggKHRoYW5rcyB0byBjb21tZW50cwogIG9mIEFyY2hpdCBU YW5lamEpCi0gYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvZHdfbWlwaV9kc2kudHh0OiBJbXByb3Zl IG9wdGlvbmFsIHByb3BlcnR5CiAgZXhwbGFuYXRpb25zICh0aGFua3MgdG8gY29tbWVudHMgb2Yg TmVpbCBBcm1zdHJvbmcpCi0gc3RtL2x0ZGMuYzogQWRkIGlzX3BhbmVsX2JyaWRnZSBmb3IgYSBi ZXR0ZXIgY2xlYW4gdXAvcmVtb3ZlCiAgZHJtX2VuY29kZXJfaGVscGVyX2FkZCgpICh0aGFua3Mg dG8gY29tbWVudHMgb2YgRXJpYyBBbmhvbHQpCi0gc3RtL2R3X21pcGlfZHNpLXN0bS5jOiByZW1v dmUgbWF0aDY0LmgvdXNlIERSTV9XQVJOL3JlbW92ZSB3YXJuaW5ncwogICh0aGFua3MgdG8gY29t bWVudHMgb2YgQXJjaGl0IFRhbmVqYSksIG1pbm9yIGFsaWdubWVudCBmaXggKHRoYW5rcyB0bwog IGNvbW1lbnRzIG9mIE5laWwgQXJtc3Ryb25nKQotIGJpbmRpbmdzL2Rpc3BsYXkvc3Qsc3RtMzIt bHRkYy50eHQ6IHVzZSBncmFwaCBiaW5kaW5nIGluIHRoZSAKICBleGFtcGxlL2ltcHJvdmUgcG9y dHMgdXNhZ2UgZG9jICh0aGFua3MgdG8gY29tbWVudHMgb2YgUm9iIEhlcnJpbmcpLAogIHVzZSAi RFNJIiBpbnN0ZWFkIG9mICJkc2kiIHdoZXJlIHJlbGV2YW50ICh0aGFua3MgdG8gY29tbWVudHMg b2YgTmVpbAogIEFybXN0cm9uZykKClZlcnNpb24gMzoKLSBzdG0vbHRkYzogVXNlIHBhbmVsLWJy aWRnZSAoLTE3MCBsaW5lcyksIHRoYW5rcyB0byBjb21tZW50cyBvZiBFcmljIEFuaG9sdCwKICBC b3JpcyBCcmV6aWxsb24sIEFyY2hpdCBUYW5lamEgJiBBbmRyemVqIEhhamRhLgotIFN5bm9wc3lz IGRzaTogQWRkIGR3X21pcGlfZHNpLmggKGZvcmdvdHRlbiBpbiB2MiksIHRoYW5rcyB0byBjb21t ZW50cyBvZgogIE5laWwgQXJtc3Ryb25nLgotIFN5bm9wc3lzIGRzaS9kdy1taXBpLWRzaS5jOiBh ZGQgZHdfbWlwaV9kc2lfZHBoeV9pbml0KCkgJgogIGR3X21pcGlfZHNpX2RwaHlfZW5hYmxlKCkg dG8gYmV0dGVyIG1hbmFnZSBEVyBwaHktZGVkaWNhdGVkIHJlZ3MsIHJlbW92ZQogIGR3X21pcGlf ZHNpX21vZGUgZW51bSwgcmVtb3ZlIHN0bTMyIHBhdGNoIGZvciBscG0sIHJlbW92ZSBwbGxyZWYg KG1hbmFnZSBpbgogIHRoZSB2ZW5kb3IgcGh5KSB0aGFua3MgdG8gY29tbWVudHMgb2YgQXJjaGl0 IFRhbmVqYS4gQWRkIG1vZGVfZmxhZ3MgdG8gcGh5CiAgcGFyYW1ldGVycyB0byBiZXR0ZXIgYWRq dXN0IGxhbmUgbWJwcyBhY2NvcmRpbmcgdG8gZHNpIGJ1cnN0IGFuZCBub24gYnVyc3QKICBtb2Rl cyB0b2RvcyBpbiBjYXBzLgotIHN0bS9kd19taXBpX2RzaS1zdG0uYzogQWRkIHBsbHJlZiBtYW5h Z2VtZW50LgotIGR0LWJpbmRpbmdzL2Rpc3BsYXkvc3RtOiBTcGxpdCBkdC1iaW5kaW5ncyBwYXRj aCBpbiB0d28gKHBhcmVudCBub2RlCiAgcmVtb3ZhbC8gZHNpKSwgYWRkIHJlcXVpcmVkIG5vZGVz IChwb3J0ICYgcGFuZWwvYnJpZGdlKSwgdXBkYXRlcyB0aGFua3MgdG8KICBjb21tZW50cyBvZiBS b2IgSGVycmluZy4KLSBkdC1iaW5kaW5ncy9kaXNwbGF5L1N5bm9wc3lzIGRzaTogcmVtb3ZlIHBv cnQgYXMgcGFydCBvZiB0aGUgdmVuZG9yCiAgZG9jdW1lbnRhdGlvbiwgYWRkIHBhbmVsL2JyaWRn ZSBub2RlLCB1cGRhdGUgZHQtYmluZGluZ3MgdGhhbmtzIHRvIGNvbW1lbnRzCiAgb2YgUm9iIEhl cnJpbmcuCi0gQWRkIG1vcmUgcGVvcGxlIGZyb20gSGlzaWxpY29uICYgUm9ja2NoaXAuCgpWZXJz aW9uIDI6Ci0gQWRkIGEgZ2VuZXJpYyBTeW5vcHN5cyBEZXNpZ25XYXJlIE1JUEkgRFNJIGJyaWRn ZSBkcml2ZXIgZm9sbG93aW5nCiAgY29tbWVudHMgZnJvbSBOZWlsIEFybXN0cm9uZyAmIEFyY2hp dCBUYW5lamEuCi0gVXNlIGRybV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZSgpIHRoYW5rcyB0byBF cmljIEFuaG9sdCBjb21tZW50cwotIFVwZGF0ZSBkdC1iaW5kaW5ncyB0aGFua3MgdG8gUm9iIEhl cnJpbmcgY29tbWVudHMKClZlcnNpb24gMToKLSBJbml0aWFsIGNvbW1pdAoKVGhlIHB1cnBvc2Ug b2YgdGhpcyBzZXQgb2YgcGF0Y2hlcyBpcyB0byBhZGQgdGhlIG1pcGkgZHNpIGhvc3QgZHJpdmVy CnRvIHRoZSBzdG0zMiBmYW1pbHkuCgpUaGlzIG1pcGkgZHNpIGhvc3QgZHJpdmVyIGlzIGJhc2Vk IG9uIHRoZSBSb2NrY2hpcCB2ZXJzaW9uIG9mIHRoZQpTeW5vcHN5cyBEZXNpZ253YXJlIG1pcGkg ZHNpIGRyaXZlciAocm9ja2NoaXAvZHctbWlwaS1kc2kuYykKbW9kaWZpZWQgZm9yIHRoZSBzdG0z MiBmYW1pbHk6CiAgICAtIHJlcGxhY2UgUm9ja2NoaXAgZGlnaXRhbCAmIHBoeSBzcGVjaWZpYyBl eHRlbnNpb25zIHdpdGggc3RtMzIncyBvbmVzLgogICAgLSBhZGQgYSBicmlkZ2UKClBoaWxpcHBl IENPUk5VICg3KToKICBkcm0vc3RtOiBsdGRjOiBGaXggbGVhayBvZiBweCBjbGsgZW5hYmxlIGlu IHNvbWUgZXJyb3IgcGF0aHMKICBkcm0vc3RtOiBsdGRjOiBBZGQgcGFuZWwtYnJpZGdlIHN1cHBv cnQKICBkdC1iaW5kaW5nczogZGlzcGxheTogQWRkIFN5bm9wc3lzIERXIE1JUEkgRFNJIGhvc3Qg Y29udHJvbGxlcgogIGRybS9icmlkZ2Uvc3lub3BzeXM6IEFkZCBNSVBJIERTSSBob3N0IGNvbnRy b2xsZXIgYnJpZGdlCiAgZHQtYmluZGluZ3M6IGRpc3BsYXk6IHN0bTMyOiByZW1vdmUgc3QtZGlz cGxheS1zdWJzeXN0ZW0gcGFyZW50IG5vZGUKICAgIHJlcXVpcmVtZW50CiAgZHQtYmluZGluZ3M6 IGRpc3BsYXk6IHN0bTMyOiBBZGQgRFNJIGNvbnRyb2xsZXIKICBkcm0vc3RtOiBBZGQgU1RNMzIg RFNJIGNvbnRyb2xsZXIgZHJpdmVyCgogLi4uL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL2R3X21p cGlfZHNpLnR4dCAgICAgICAgfCAgMzIgKwogLi4uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxh eS9zdCxzdG0zMi1sdGRjLnR4dCAgfCAxMDUgKystCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5 bm9wc3lzL0tjb25maWcgICAgICAgICAgICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3N5bm9wc3lzL01ha2VmaWxlICAgICAgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3N5bm9wc3lzL2R3LW1pcGktZHNpLmMgICAgICB8IDk3OSArKysrKysrKysrKysrKysrKysr KysKIGRyaXZlcnMvZ3B1L2RybS9zdG0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA5ICstCiBkcml2ZXJzL2dwdS9kcm0vc3RtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vc3RtL2R3X21pcGlfZHNpLXN0bS5jICAgICAgICAg ICAgICB8IDM1MiArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3N0bS9sdGRjLmMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyMjAgKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9zdG0vbHRkYy5oICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBpbmNsdWRlL2RybS9icmlkZ2UvZHdfbWlw aV9kc2kuaCAgICAgICAgICAgICAgICAgICB8ICAzOSArCiAxMSBmaWxlcyBjaGFuZ2VkLCAxNTY2 IGluc2VydGlvbnMoKyksIDE4MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvZHdfbWlwaV9kc2ku dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9k dy1taXBpLWRzaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3N0bS9kd19t aXBpX2RzaS1zdG0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2JyaWRnZS9kd19t aXBpX2RzaS5oCgotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: philippe.cornu@st.com (Philippe CORNU) Date: Mon, 3 Jul 2017 10:41:20 +0200 Subject: [PATCH v5 0/7] STM32 DSI HOST Message-ID: <1499071287-10414-1-git-send-email-philippe.cornu@st.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Version 5: - bridge/synopsis/dw-mipi-dsi.c: Improve the direct call to panel bridge post_disable() & related comments (Archit Taneja) - stm/ltdc.c: fix leak of pixel clock enable in some error paths (Eric Anholt) - bindings/display/bridge/dw_mipi_dsi.txt: add pixel clock & remove "driver" (Rob Herring, Archit Taneja) - bindings/display/st,stm32-ltdc.txt: remove "driver" (Rob Herring, Archit Taneja) Version 4: - bridge/synopsis/dw-mipi-dsi.c: Add panel-bridge support (-45 lines, but no so easy to do) and is_panel_bridge for a better clean up, add stm copyright/remove dpms_mode/remove drm_of.h/improve clk management/add mode_valid (thanks to comments of Archit Taneja), use "DesignWare" instead of "Designware (thanks to comments of Neil Armstrong) - bridge/synopsis/Kconfig: Remove help section to hide it in menuconfig (thanks to comments of Archit Taneja) - include/drm/bridge/dw_mipi_dsi.h: Remove drmP.h (thanks to comments of Archit Taneja) - bindings/display/bridge/dw_mipi_dsi.txt: Improve optional property explanations (thanks to comments of Neil Armstrong) - stm/ltdc.c: Add is_panel_bridge for a better clean up/remove drm_encoder_helper_add() (thanks to comments of Eric Anholt) - stm/dw_mipi_dsi-stm.c: remove math64.h/use DRM_WARN/remove warnings (thanks to comments of Archit Taneja), minor alignment fix (thanks to comments of Neil Armstrong) - bindings/display/st,stm32-ltdc.txt: use graph binding in the example/improve ports usage doc (thanks to comments of Rob Herring), use "DSI" instead of "dsi" where relevant (thanks to comments of Neil Armstrong) Version 3: - stm/ltdc: Use panel-bridge (-170 lines), thanks to comments of Eric Anholt, Boris Brezillon, Archit Taneja & Andrzej Hajda. - Synopsys dsi: Add dw_mipi_dsi.h (forgotten in v2), thanks to comments of Neil Armstrong. - Synopsys dsi/dw-mipi-dsi.c: add dw_mipi_dsi_dphy_init() & dw_mipi_dsi_dphy_enable() to better manage DW phy-dedicated regs, remove dw_mipi_dsi_mode enum, remove stm32 patch for lpm, remove pllref (manage in the vendor phy) thanks to comments of Archit Taneja. Add mode_flags to phy parameters to better adjust lane mbps according to dsi burst and non burst modes todos in caps. - stm/dw_mipi_dsi-stm.c: Add pllref management. - dt-bindings/display/stm: Split dt-bindings patch in two (parent node removal/ dsi), add required nodes (port & panel/bridge), updates thanks to comments of Rob Herring. - dt-bindings/display/Synopsys dsi: remove port as part of the vendor documentation, add panel/bridge node, update dt-bindings thanks to comments of Rob Herring. - Add more people from Hisilicon & Rockchip. Version 2: - Add a generic Synopsys DesignWare MIPI DSI bridge driver following comments from Neil Armstrong & Archit Taneja. - Use drm_of_find_panel_or_bridge() thanks to Eric Anholt comments - Update dt-bindings thanks to Rob Herring comments Version 1: - Initial commit The purpose of this set of patches is to add the mipi dsi host driver to the stm32 family. This mipi dsi host driver is based on the Rockchip version of the Synopsys Designware mipi dsi driver (rockchip/dw-mipi-dsi.c) modified for the stm32 family: - replace Rockchip digital & phy specific extensions with stm32's ones. - add a bridge Philippe CORNU (7): drm/stm: ltdc: Fix leak of px clk enable in some error paths drm/stm: ltdc: Add panel-bridge support dt-bindings: display: Add Synopsys DW MIPI DSI host controller drm/bridge/synopsys: Add MIPI DSI host controller bridge dt-bindings: display: stm32: remove st-display-subsystem parent node requirement dt-bindings: display: stm32: Add DSI controller drm/stm: Add STM32 DSI controller driver .../bindings/display/bridge/dw_mipi_dsi.txt | 32 + .../devicetree/bindings/display/st,stm32-ltdc.txt | 105 ++- drivers/gpu/drm/bridge/synopsys/Kconfig | 6 + drivers/gpu/drm/bridge/synopsys/Makefile | 2 + drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 979 +++++++++++++++++++++ drivers/gpu/drm/stm/Kconfig | 9 +- drivers/gpu/drm/stm/Makefile | 2 + drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 352 ++++++++ drivers/gpu/drm/stm/ltdc.c | 220 +---- drivers/gpu/drm/stm/ltdc.h | 3 +- include/drm/bridge/dw_mipi_dsi.h | 39 + 11 files changed, 1566 insertions(+), 183 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/bridge/dw_mipi_dsi.txt create mode 100644 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c create mode 100644 drivers/gpu/drm/stm/dw_mipi_dsi-stm.c create mode 100644 include/drm/bridge/dw_mipi_dsi.h -- 1.9.1