From patchwork Sat Aug 5 09:32:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 711041 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 541E0EB64DD for ; Sat, 5 Aug 2023 09:32:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229976AbjHEJcL (ORCPT ); Sat, 5 Aug 2023 05:32:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39218 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229473AbjHEJcL (ORCPT ); Sat, 5 Aug 2023 05:32:11 -0400 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1253310CA for ; Sat, 5 Aug 2023 02:32:10 -0700 (PDT) Received: by mail-ej1-x641.google.com with SMTP id a640c23a62f3a-99c1f6f3884so405010566b.0 for ; Sat, 05 Aug 2023 02:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1691227928; x=1691832728; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kSb7V+l5INAZZY1BiIqNw95KAR1Jhg86zX4iEYTQuGQ=; b=Dh2UTNNMhDdp3D18SCMzub1XDaxi9J93/+Mk33+I/zqU0B7vsfOY1ag068EeG1dWZL BWrBI7OwDoYOIXftTZwEQk5O6L3bFUBO/QJ983iN6Sq4TeEFzPossnTk+9TVcNAKQ0Kz E1VWqzbPDCO/SfNj/q99vDee5HbikKoTKlX2M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691227928; x=1691832728; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kSb7V+l5INAZZY1BiIqNw95KAR1Jhg86zX4iEYTQuGQ=; b=WwiNm9SgvqxngMiLIILR7mAEJ7ISLwPjGBvyvlbWBWqX1GzB+5r5mvhAyWct9BGBsc tpdQQ/NTz6vOEaJ8p7j4qOaWl22Vo+rpwFpqKgYBJZGQkEKd7Jyy2XQ/eMmPKbPmpGl5 6Zpo0t5vBiYaQT4LdZAElz8k8Mj03i88n0b3YilIZH+pg2zHMbcRwLpDXILQVJPB26X+ Dzgb3KCwQw3FrhsSR3t2JIFlvWmXkdB9mrnkDENXnlHqwOzmVkQzxW8xBk+mEGrf6SDx E0ewfBrtUJj14tqAwXRZs+3s+n9zhuBptss/Ks0L/KCcq67QXaAqTbnvbokBngvSdLtA n79A== X-Gm-Message-State: AOJu0YxJqvGmdZ1oI1iC3tgied0q5XLO73xzwL+kT7sI6v5WjDPlx86T CB6BCjcR1tva+fMV03wIpl5zNQ== X-Google-Smtp-Source: AGHT+IG6tPUj15ayZgNSb6hJwTs1tpYV27gmxLpUVe4h+xaQyP0nhYgPqh/GN2YCgDMxiER80YT/Lg== X-Received: by 2002:a17:906:31c8:b0:99b:fdbb:31f1 with SMTP id f8-20020a17090631c800b0099bfdbb31f1mr3922911ejf.16.1691227928673; Sat, 05 Aug 2023 02:32:08 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-82-52-12-96.retail.telecomitalia.it. [82.52.12.96]) by smtp.gmail.com with ESMTPSA id j15-20020a170906430f00b0099b76c3041csm2491083ejm.7.2023.08.05.02.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Aug 2023 02:32:08 -0700 (PDT) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: Amarula patchwork , Philippe Cornu , Raphael Gallais-Pou , michael@amarulasolutions.com, Dario Binacchi , Alexandre Torgue , Conor Dooley , Krzysztof Kozlowski , Maxime Coquelin , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com Subject: [RESEND PATCH v7 1/3] ARM: dts: stm32: add ltdc support on stm32f746 MCU Date: Sat, 5 Aug 2023 11:32:00 +0200 Message-Id: <20230805093203.3988194-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230805093203.3988194-1-dario.binacchi@amarulasolutions.com> References: <20230805093203.3988194-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add LTDC (Lcd-tft Display Controller) support. Signed-off-by: Dario Binacchi Reviewed-by: Raphaël Gallais-Pou --- Changes in v7: - Add 'Reviewed-by' tag I forgot in v6. https://lore.kernel.org/linux-arm-kernel/20230629083726.84910-1-dario.binacchi@amarulasolutions.com/T/ arch/arm/boot/dts/st/stm32f746.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32f746.dtsi b/arch/arm/boot/dts/st/stm32f746.dtsi index d1802efd067c..36eda1562e83 100644 --- a/arch/arm/boot/dts/st/stm32f746.dtsi +++ b/arch/arm/boot/dts/st/stm32f746.dtsi @@ -507,6 +507,16 @@ pwm { }; }; + ltdc: display-controller@40016800 { + compatible = "st,stm32-ltdc"; + reg = <0x40016800 0x200>; + interrupts = <88>, <89>; + resets = <&rcc STM32F7_APB2_RESET(LTDC)>; + clocks = <&rcc 1 CLK_LCD>; + clock-names = "lcd"; + status = "disabled"; + }; + pwrcfg: power-config@40007000 { compatible = "st,stm32-power-config", "syscon"; reg = <0x40007000 0x400>; From patchwork Sat Aug 5 09:32:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 710680 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E7A79C00528 for ; Sat, 5 Aug 2023 09:32:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229521AbjHEJcO (ORCPT ); Sat, 5 Aug 2023 05:32:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229977AbjHEJcM (ORCPT ); Sat, 5 Aug 2023 05:32:12 -0400 Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com [IPv6:2a00:1450:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC45B10CA for ; Sat, 5 Aug 2023 02:32:11 -0700 (PDT) Received: by mail-ej1-x642.google.com with SMTP id a640c23a62f3a-99bf3f59905so406920266b.3 for ; Sat, 05 Aug 2023 02:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1691227930; x=1691832730; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PU0Mm1LqR6Sd23PVyNdW/l5iyuu7GETQ6ileDMCjS3c=; b=ShcmEtOxOcxh8Ra+ZrnyCXiLvGdvy66Qe834X+l4o4ColTafa2s7FQabcHJ7pd41Z8 VGEoZnsZ61WcwOZKPnLPgk8jvK1iLvsPQ1zOjMCoMSstdNV+HLwb17RY/mzywp4uQqdp yKr/gEnh19hjxdorHA0mImP/vuS4UH8QguKvE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691227930; x=1691832730; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PU0Mm1LqR6Sd23PVyNdW/l5iyuu7GETQ6ileDMCjS3c=; b=gD5PDf7xfasPAG8sQFH0OvaVjEdgBYwpR8CTQ6Gbc64YWivWbtwGh3e1jC/l6ATAqZ +giB0ubi65kQ11m2iwvKfVdN7bXkX0CHUMU3MJ88nUTlMZ6IR1wPAhjBJtBsJt/thM9g S6tzJMNAMWnRVsEYIg28N6fX3HgnYll7PwhDz45sYTm0zWbzV+FrI62squsnmll6merU q/xOuDkVAojh2JKHPiGexCFPMHTPCQKkVoaCtQiE6vAksaDn+iZtM366k2a8DopJBpGk Hz/bKKkAMDfhplWEy5lsc9yCMDijZ9roe5qaUjgD10IDS742t1uiZlB/ZXnb99AcTMVZ SWBw== X-Gm-Message-State: AOJu0YyA0cUr23K6copg7WiZVLkyRixFluXQlkRazqSqfT7tuYQo1uAR Yr+nlLmJ99EQPilIB3OjlkB9Ig== X-Google-Smtp-Source: AGHT+IFLw4j0bbGPR63vRSuWnCt7hC5dc52zhDYTamFBTkW3DJ+duJwVXTNgwXIKssTfvn9FsO3ZeA== X-Received: by 2002:a17:906:3f1e:b0:975:63f4:4b with SMTP id c30-20020a1709063f1e00b0097563f4004bmr3566000ejj.36.1691227930254; Sat, 05 Aug 2023 02:32:10 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-82-52-12-96.retail.telecomitalia.it. [82.52.12.96]) by smtp.gmail.com with ESMTPSA id j15-20020a170906430f00b0099b76c3041csm2491083ejm.7.2023.08.05.02.32.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Aug 2023 02:32:09 -0700 (PDT) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: Amarula patchwork , Philippe Cornu , Raphael Gallais-Pou , michael@amarulasolutions.com, Dario Binacchi , Alexandre Torgue , Conor Dooley , Krzysztof Kozlowski , Maxime Coquelin , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com Subject: [RESEND PATCH v7 2/3] ARM: dts: stm32: add pin map for LTDC on stm32f7 Date: Sat, 5 Aug 2023 11:32:01 +0200 Message-Id: <20230805093203.3988194-3-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230805093203.3988194-1-dario.binacchi@amarulasolutions.com> References: <20230805093203.3988194-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add pin configurations for using LTDC (LCD-tft Display Controller) on stm32f746-disco board. Signed-off-by: Dario Binacchi Reviewed-by: Raphaël Gallais-Pou --- Changes in v7: - Add 'Reviewed-by' tag I forgot in v6. https://lore.kernel.org/linux-arm-kernel/20230629083726.84910-1-dario.binacchi@amarulasolutions.com/T/ Changes in v3: - rename ltdc-pins-a-0 to ltdc-0. arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi b/arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi index 9f65403295ca..36dad40dd0c7 100644 --- a/arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi +++ b/arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi @@ -365,6 +365,41 @@ pins2 { bias-pull-up; }; }; + + + ltdc_pins_a: ltdc-0 { + pins { + pinmux = , /* LCD_B0 */ + , /* LCD_B4 */ + , /* LCD_VSYNC */ + , /* LCD_HSYNC */ + , /* LCD_CLK */ + , /* LCD_R0 */ + , /* LCD_R1 */ + , /* LCD_R2 */ + , /* LCD_R3 */ + , /* LCD_R4 */ + , /* LCD_R5 */ + , /* LCD_R6 */ + , /* LCD_R7 */ + , /* LCD_G0 */ + , /* LCD_G1 */ + , /* LCD_G2 */ + , /* LCD_G3 */ + , /* LCD_G4 */ + , /* LCD_B1 */ + , /* LCD_B2 */ + , /* LCD_B3 */ + , /* LCD_G5 */ + , /* LCD_G6 */ + , /* LCD_G7 */ + , /* LCD_B5 */ + , /* LCD_B6 */ + , /* LCD_B7 */ + ; /* LCD_DE */ + slew-rate = <2>; + }; + }; }; }; }; From patchwork Sat Aug 5 09:32:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 711040 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7FA1EB64DD for ; Sat, 5 Aug 2023 09:32:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229992AbjHEJcP (ORCPT ); Sat, 5 Aug 2023 05:32:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229988AbjHEJcO (ORCPT ); Sat, 5 Aug 2023 05:32:14 -0400 Received: from mail-ej1-x643.google.com (mail-ej1-x643.google.com [IPv6:2a00:1450:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FA65469C for ; Sat, 5 Aug 2023 02:32:13 -0700 (PDT) Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-99c0cb7285fso380981366b.0 for ; Sat, 05 Aug 2023 02:32:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1691227932; x=1691832732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=x4zfk9+w42D4Vl03+U/DigAoB0zXZh0Gh/1uuAJ0hLQ=; b=LTO+hY60zcfHdFcGBdqJvZs63Hhld+Y0TgVkhhqZbg4k0dXhHB9KvM+4praq0OLijR aHcpCyMoqg2wlt4KfQXQAeT53SyHlvHNASbJfq27+RFJnuLxTgAhKn+AErJ/jrFInur+ nN3f9uKhwrM5tUfDI7gcam14wcokpAHO2Rl4Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691227932; x=1691832732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x4zfk9+w42D4Vl03+U/DigAoB0zXZh0Gh/1uuAJ0hLQ=; b=HH5P9qni88EU1qnzsWwsVa98c+L8jwWQdVLlu7EhcD+9oBVZa++oQUPmFFeOTt/YBT R6F6Ynp2GJ+L/TGymrZmQ5EkjlIukG+lo8L83B8/RkzdYiMDo3zVG0VEqwfQM5ZxAAUF 9AP1sZu/y7UpW8N2DknJLR4LlcxdWD79ezMOtQGAgzXLdh9a1/HhwibhLE+m4mKzh9jG 2GWU889bawgQrpFz0aDfS1H1ROljbjY4Vf4tNaXvO6wR9I1GZ29kY3i/D0P3rvh1VX0w G6y+rCfL3cVUpXMLO5+2Id/OpSUtthfp347EkMsiVPMveF7nmEiRxWvfjYlAqWAJND6l oNpw== X-Gm-Message-State: AOJu0Yy0Ofj5bixF07eWxNeJib01F6NQdjoa8LzL27cGcJebwAFy4mSu HL/m1DYaX/lkxfk+KN4lWqmXTenRulmHmFhYEWdRcVtY X-Google-Smtp-Source: AGHT+IHgkOpo2eRLFlie1PG6CcKvakaHjbcNDgXW+Ek2vfTiqqqNfAJ6HW5TsnQrLWRuJtvMr8uAUA== X-Received: by 2002:a17:906:319b:b0:99b:499c:ddb6 with SMTP id 27-20020a170906319b00b0099b499cddb6mr3105829ejy.68.1691227931847; Sat, 05 Aug 2023 02:32:11 -0700 (PDT) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-82-52-12-96.retail.telecomitalia.it. [82.52.12.96]) by smtp.gmail.com with ESMTPSA id j15-20020a170906430f00b0099b76c3041csm2491083ejm.7.2023.08.05.02.32.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Aug 2023 02:32:11 -0700 (PDT) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: Amarula patchwork , Philippe Cornu , Raphael Gallais-Pou , michael@amarulasolutions.com, Dario Binacchi , Alexandre Torgue , Conor Dooley , Krzysztof Kozlowski , Maxime Coquelin , Rob Herring , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com Subject: [RESEND PATCH v7 3/3] ARM: dts: stm32: support display on stm32f746-disco board Date: Sat, 5 Aug 2023 11:32:02 +0200 Message-Id: <20230805093203.3988194-4-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230805093203.3988194-1-dario.binacchi@amarulasolutions.com> References: <20230805093203.3988194-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add support to Rocktech RK043FN48H display on stm32f746-disco board. Signed-off-by: Dario Binacchi Reviewed-by: Raphaël Gallais-Pou --- Changes in v7: - Add 'Reviewed-by' tag I forgot in v6. https://lore.kernel.org/linux-arm-kernel/20230629083726.84910-1-dario.binacchi@amarulasolutions.com/T/ Changes in v6: - Remove dma nodes from stm32f746-disco.dts, they are not used by LTDC, so there is no need to enable them. Changes in v5: I am confident that framebuffer sizing is a real requirement for STM32 boards, but I need some time to understand if and how to introduce this functionality. Therefore, I drop the following patches to allow the series to be fully merged: - [4/6] dt-bindings: display: stm32-ltdc: add optional st,fb-bpp property - [5/6] ARM: dts: stm32: set framebuffer bit depth on stm32f746-disco - [6/6] drm/stm: set framebuffer bit depth through DTS property Changes in v4: - Use DTS property instead of module parameter to set the framebuffer bit depth. Changes in v3: - drop [4/6] dt-bindings: display: simple: add Rocktech RK043FN48H Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next): https://cgit.freedesktop.org/drm/drm-misc/commit/?id=c42a37a27c777d63961dd634a30f7c887949491a - drop [5/6] drm/panel: simple: add support for Rocktech RK043FN48H panel Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next) https://cgit.freedesktop.org/drm/drm-misc/commit/?id=13cdd12a9f934158f4ec817cf048fcb4384aa9dc arch/arm/boot/dts/st/stm32f746-disco.dts | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32f746-disco.dts b/arch/arm/boot/dts/st/stm32f746-disco.dts index c11616ed5fc6..c00d34179e2e 100644 --- a/arch/arm/boot/dts/st/stm32f746-disco.dts +++ b/arch/arm/boot/dts/st/stm32f746-disco.dts @@ -60,10 +60,41 @@ memory@c0000000 { reg = <0xC0000000 0x800000>; }; + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + linux,cma { + compatible = "shared-dma-pool"; + no-map; + size = <0x80000>; + linux,dma-default; + }; + }; + aliases { serial0 = &usart1; }; + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&gpiok 3 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + + panel_rgb: panel-rgb { + compatible = "rocktech,rk043fn48h"; + backlight = <&backlight>; + enable-gpios = <&gpioi 12 GPIO_ACTIVE_HIGH>; + status = "okay"; + port { + panel_in_rgb: endpoint { + remote-endpoint = <<dc_out_rgb>; + }; + }; + }; + usbotg_hs_phy: usb-phy { #phy-cells = <0>; compatible = "usb-nop-xceiv"; @@ -99,6 +130,18 @@ &i2c1 { status = "okay"; }; +<dc { + pinctrl-0 = <<dc_pins_a>; + pinctrl-names = "default"; + status = "okay"; + + port { + ltdc_out_rgb: endpoint { + remote-endpoint = <&panel_in_rgb>; + }; + }; +}; + &sdio1 { status = "okay"; vmmc-supply = <&mmc_vcard>;