Received: by 2002:ab2:4a89:0:b0:1f4:a8b6:6e69 with SMTP id w9csp260287lqj; Wed, 10 Apr 2024 09:35:20 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVRiBuOk1MEtz5l7JxaCucOmweWl9eDEgWFNnD1px0lGcL6g7aCFjoJVSj7TKGjcEsl7ULo1ScXJf5rDvH+olhongnYiq6TUt7jUSjv1Q== X-Google-Smtp-Source: AGHT+IGzzmmF/HfPCinE+3mTx/T39c3Gd0uXMv5fCh3tw2YSZg7S7IhDQbt7ooC0R+bmkYBZINa2 X-Received: by 2002:a17:902:cec4:b0:1e0:bddf:7ed0 with SMTP id d4-20020a170902cec400b001e0bddf7ed0mr3572046plg.27.1712766920006; Wed, 10 Apr 2024 09:35:20 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712766919; cv=pass; d=google.com; s=arc-20160816; b=fBSW328FK6hQlKHdJWYGdKEL3YLakE0QMoANLEe0UqhLyARj4dW1GYi074SavVLThT rlJDAtp5QJfGKnSoVoOum8iyksoonrBA0On0qJPOB8SaTT8iwX4JW2Rk5SdBJzvofcIa pfq1t2HbT64K+vgcJdibVjjltyO4eCi+Qb4TgjYz/JuN5sWL7cYQkGdFkTJvnuD5Grmx yZRhSOaasvmZzl0ePjFIGqZaTPE7ITCpaCttKaMpYOzjFWX0J9dwkF9eoNWqFMzRuAZR TtnBTHp6Dc9dKROn4zc9DUruXgEBXilJnjt7ErcBfA+MIWK2vhCVsaAguDR0QZ6BY1ki tuGQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=BJGphSHS/uXSxMxkAgG1knwu7V9BbW1+t3ZxRBuMKC0=; fh=ZDpKi8viABPMSmZhhJjz11b0uvfXyTjeQwvCPpc81ow=; b=xedx9RtbV37mNvu4SIEFil7bx/dUpQ31u2ahjFWyyvKSyhwW8VKTZr5uBqDtu3PMhf c27mowZH7VsU0J/8wkjMmkKMQZgoPTgkazSUJl7m9ujbfHHt5LNEa2Yf1ksvNyPWIxag 86PYMMG+EU4A+Sa4RgtXb3Xv9csbvrMqNFrX+o3eaKvrvk3EjS35Hm/hazBS8QljeRIc Wtl0bWv1WZvFMw/v+gJX8YECbVtPC1zFd0lWeGW1Xkh1+crX5F4+gCslKZhp/5+MCZRa tSPmWGbuNHK/h6+XJRhZPa2pPZrdZ1wrbC4e8fVGvwz3P22T+FhN0zyiAmO49gI9IFER xNNA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WdGJ+FMW; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-138983-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-138983-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id t4-20020a170902bc4400b001e434292b80si5884968plz.152.2024.04.10.09.35.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Apr 2024 09:35:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-138983-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WdGJ+FMW; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-138983-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-138983-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id F1385286EF1 for ; Wed, 10 Apr 2024 16:34:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4CE8317A93D; Wed, 10 Apr 2024 16:34:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WdGJ+FMW" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8294C17B50C; Wed, 10 Apr 2024 16:33:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712766839; cv=none; b=pKngH3RDXki3SCVZOcaJAIQREdSKzbv7Ei7faQFHCu5dKCvX2AKCKCxvHgdl1DRa2i1/lS0Tu2u58JiYz7mVSAB9/NjpXqRFLy5/MEC7BxUxOS2YkhnrSVeE8r3l14FTlSaOkedRqCBe4XhGPPQFZ8iLdjLaEfgrV3y1WffwRCU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712766839; c=relaxed/simple; bh=+FUDvwQv/pjc3SPd6m6Xsh3tVWiCUKkTIowQBF/v+bo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=c+3EZTijvPOhfUwsue0tqD8ht138ovkc8AADz+/f7EL2U2p9dKn3nFhoqx1xHTwctj3Y68IuPtaKlSJ5NXskDoGfsC3uwgyvnZNOBbYfkvtiMTWPLOxo7kJ48er2vrbiD6FEDHLSNyHrjSNW+M0fFHWxYQc422I8RLGfJnFFI84= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WdGJ+FMW; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8EBAC43390; Wed, 10 Apr 2024 16:33:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712766839; bh=+FUDvwQv/pjc3SPd6m6Xsh3tVWiCUKkTIowQBF/v+bo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=WdGJ+FMWdhh0ULfdq8PAMBRkV2D07vdl12esxN36qRc7iBlgF3igm9UnHdW77OuFa R1W0JHu1+BnlUhglO03XjKxuV9Rt2mCMQCaSdrf4IRQD0U8D5g/dqXC0haKnWOYlx/ Tpra8k4KGnwJ3YtphgLmFLiVaTX5TNMexFojRyJ3FaJEvmdbDTS+6N7skMgDaQOFuC eztJG/y+UXXqSBx5CDHVTVqVsnm+aGnXcRti6BXckFmR/c5/oCclxaYHn2HoTwNkOd FGC8MSUR8t8sqTz/1pWkII2Z0fI6j2RDG+Ademt/aK0H+PfBHKuXYMf9JZ5TszgGZX 22ZZhsz28q9gg== Date: Wed, 10 Apr 2024 11:33:55 -0500 From: Rob Herring To: Yoshinori Sato Cc: linux-sh@vger.kernel.org, Damien Le Moal , Niklas Cassel , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Michael Turquette , Stephen Boyd , David Airlie , Daniel Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Thomas Gleixner , Bjorn Helgaas , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Greg Kroah-Hartman , Jiri Slaby , Magnus Damm , Daniel Lezcano , Rich Felker , John Paul Adrian Glaubitz , Lee Jones , Helge Deller , Heiko Stuebner , Shawn Guo , Sebastian Reichel , Chris Morgan , Linus Walleij , Arnd Bergmann , David Rientjes , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Vlastimil Babka , Baoquan He , Andrew Morton , Guenter Roeck , Kefeng Wang , Stephen Rothwell , Javier Martinez Canillas , Guo Ren , Azeem Shaikh , Max Filippov , Jonathan Corbet , Jacky Huang , Herve Codina , Manikanta Guntupalli , Anup Patel , Biju Das , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Sam Ravnborg , Sergey Shtylyov , Laurent Pinchart , linux-ide@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-pci@vger.kernel.org, linux-serial@vger.kernel.org, linux-fbdev@vger.kernel.org Subject: Re: [RESEND v7 22/37] dt-bindings: display: smi,sm501: SMI SM501 binding json-schema Message-ID: <20240410163355.GA386057-robh@kernel.org> References: <9858ef1c149bd27b27594b3bd388601681d83460.1712207606.git.ysato@users.sourceforge.jp> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9858ef1c149bd27b27594b3bd388601681d83460.1712207606.git.ysato@users.sourceforge.jp> On Thu, Apr 04, 2024 at 02:14:33PM +0900, Yoshinori Sato wrote: > Signed-off-by: Yoshinori Sato > --- > .../bindings/display/smi,sm501.yaml | 398 ++++++++++++++++++ > 1 file changed, 398 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/smi,sm501.yaml > > diff --git a/Documentation/devicetree/bindings/display/smi,sm501.yaml b/Documentation/devicetree/bindings/display/smi,sm501.yaml > new file mode 100644 > index 000000000000..06c6af4fa4a9 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/smi,sm501.yaml > @@ -0,0 +1,398 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/smi,sm501.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Silicon Motion SM501 Mobile Multimedia Companion Chip > + > +maintainers: > + - Yoshinori Sato > + > +description: | Don't need '|' > + These DT bindings describe the SM501. Drop "These DT bindings describe" and just describe what the h/w is. > + > +properties: > + compatible: > + const: > + smi,sm501 > + > + reg: > + maxItems: 2 > + description: | > + First entry: System Configuration register > + Second entry: IO space (Display Controller register) items: - description: System Configuration register - description: IO space (Display Controller register) Is it just 1 register in each or should be "registers"? > + > + interrupts: > + description: SM501 interrupt to the cpu should be described here. > + > + mode: > + $ref: /schemas/types.yaml#/definitions/string > + description: select a video mode > + > + edid: > + description: | Don't need '|'. > + verbatim EDID data block describing attached display. s/verbatim/Verbatim/ > + Data from the detailed timing descriptor will be used to > + program the display controller. > + > + little-endian: > + $ref: /schemas/types.yaml#/definitions/flag > + description: available on big endian systems, to set different foreign endian. > + big-endian: > + $ref: /schemas/types.yaml#/definitions/flag > + description: available on little endian systems, to set different foreign endian. > + > + swap-fb-endian: All these custom properties need vendor prefix. But really, why are so many custom properties needed? Other display controllers don't need so many, why does this one? Do you actually have users of all of them. > + $ref: /schemas/types.yaml#/definitions/flag > + description: swap framebuffer byteorder. > + > + route-crt-panel: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Panel output merge to CRT. > + > + crt: > + type: object > + description: CRT output control > + properties: > + edid: Huh? You already defined edid elsewhere. > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: | > + verbatim EDID data block describing attached display. > + Data from the detailed timing descriptor will be used to > + program the display controller. > + > + smi,flags: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: Display control flags. > + items: > + anyOf: > + - const: use-init-done > + - const: disable-at-exit > + - const: use-hwcursor > + - const: use-hwaccel > + - const: panel-no-fpen > + - const: panel-no-vbiasen > + - const: panel-inv-fpen > + - const: panel-inv-vbiasen > + maxItems: 8 > + > + bpp: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Color depth > + > + panel: Isn't this just the same as 'crt'? > + type: object > + description: Panel output control > + properties: > + edid: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: | > + verbatim EDID data block describing attached display. > + Data from the detailed timing descriptor will be used to > + program the display controller. > + > + smi,flags: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: Display control flags. > + items: > + anyOf: > + - const: use-init-done > + - const: disable-at-exit > + - const: use-hwcursor > + - const: use-hwaccel > + - const: panel-no-fpen > + - const: panel-no-vbiasen > + - const: panel-inv-fpen > + - const: panel-inv-vbiasen > + maxItems: 8 > + > + bpp: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Color depth > + > + smi,devices: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: Select SM501 device functions. > + items: > + anyOf: > + - const: usb-host > + - const: usb-slave > + - const: ssp0 > + - const: ssp1 > + - const: uart0 > + - const: uart1 > + - const: fbaccel > + - const: ac97 > + - const: i2s > + - const: gpio > + minItems: 1 > + maxItems: 10 > + > + smi,mclk: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: mclk frequency. > + > + smi,m1xclk: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: m1xclk frequency. Clock stuff? Use the clock binding. > + > + misc-timing: > + type: object > + description: Miscellaneous Timing register values. > + properties: > + ex: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Extend bus holding time. > + > + xc: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Xscale clock input select. > + > + usb-over-current-detect-disable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB host current detection disable (Us=0). > + > + usb-over-current-detect-enable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB host current detection disable (Us=1). > + > + sdram-clock-mode1-288mhz: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SSM1 bit is clear. > + > + sdram-clock-mode1-div: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SSM1 bit is set. > + > + sm1: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SDRAM clock divider for PW mode 1. > + > + sdram-clock-mode0-288mhz: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SSM0 bit is clear. > + > + sdram-clock-mode0-div: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SSM0 bit is set. > + > + sm0: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: SDRAM clock divider for PW mode 0. > + > + pll-debug-input: > + $ref: /schemas/types.yaml#/definitions/flag > + description: 96MHz PLL debug input reference frequency (Deb=0). > + > + pll-debug-output: > + $ref: /schemas/types.yaml#/definitions/flag > + description: 96MHz PLL debug output frequency (Deb=1). > + > + no-acpi-control: > + $ref: /schemas/types.yaml#/definitions/flag > + description: No ACPI control (A=0). > + > + acpi-control: > + $ref: /schemas/types.yaml#/definitions/flag > + description: No ACPI control (A=1). > + > + divider: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Second PLL output frequency. > + > + usb-host-normal: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB Host normal mode. > + > + usb-host-simulation: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB Host simulation mode. > + > + delay: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Delay time to latch read data. Set the value to 10x. > + > + misc-control: > + type: object > + description: Miscellaneous Control register values. > + properties: > + pad: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: PCI Pad drive strength. > + > + usbclk: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: USB Clcok Select. > + > + uart1: > + $ref: /schemas/types.yaml#/definitions/flag > + description: UART1 (SSP=0) > + > + ssp1: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SSP1 (SSP=1) > + > + latch-address-disable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: 8051 Latch disable (Lat=0). > + > + latch-address-enable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: 8051 Latch enable (Lat=1). > + > + panel-data-18bit: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Flat Panel data 18bit (FP=0). > + > + panel-data-24bit: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Flat Panel data 24bit (FP=1). > + > + xtal-freq-24mhz: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Crystal frequency 24MHz (Freq=0). > + > + xtal-freq-12mhz: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Crystal frequency 12MHz (Freq=1). What's the relationship between these 2 properties? What if neither is present? What if both are? Define properties such that you can't have invalid combinations. Yes, we could just handle that with constraints, but why start with a bad design. There's other cases of this same pattern here. > + > + refresh: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Internal memory refresh timing. > + > + hold: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: BUS Hold time. > + > + sh-ready-low: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SuperH ready polarity active low (SH=0). > + > + sh-ready-high: > + $ref: /schemas/types.yaml#/definitions/flag > + description: SuperH ready polarity active high (SH=1). > + > + interrupt-normal: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Interrupt normal (II=0). > + > + interrupt-inverted: > + $ref: /schemas/types.yaml#/definitions/flag > + description: Interrupt Inverting (II=1). > + > + pll-clock-count-disable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: PLL clock count disable. > + > + pll-clock-count-enaable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: PLL clock count enable. > + > + dac-power-enable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: DAC Power enable (DAC=0). > + > + dac-power-disable: > + $ref: /schemas/types.yaml#/definitions/flag > + description: DAC Power disable (DAC=1). > + > + usb-slave-cpu: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB slave controller cpu (MC=0). > + > + usb-slave-8051: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB slave controller 8051MCU (MC=1). > + > + burst-length-8: > + $ref: /schemas/types.yaml#/definitions/flag > + description: CPU Master burst length 8 (BL=0). > + > + burst-length-1: > + $ref: /schemas/types.yaml#/definitions/flag > + description: CPU Master burst length 1 (BL=1). > + > + usb-port-master: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB port master. > + > + usb-port-slave: > + $ref: /schemas/types.yaml#/definitions/flag > + description: USB port slave. > + > + vr-mmio-30mb: > + $ref: /schemas/types.yaml#/definitions/flag > + description: NEC VR Memory map MMIO locatedat 30MB (VR=0) > + > + vr-mmio-62mb: > + $ref: /schemas/types.yaml#/definitions/flag > + description: NEC VR Memory map MMIO locatedat 62MB (VR=1) > + > + gpio-pin-control: > + type: object > + description: GPIO control configuration. > + properties: > + pin: > + type: object > + properties: > + gpio: 'gpio' is already in use as a property name. > + $ref: /schemas/types.yaml#/definitions/flag > + description: pin in/out use GPIO. > + function: > + $ref: /schemas/types.yaml#/definitions/flag > + description: pin in/out use function. Why do you need 2 nodes and 2 properties to define 3 possible states? There is not present, 'gpio', or 'function'. That's a single tri-state property. What does not present mean? > + > + gpio-i2c: > + type: object > + description: GPIO I2C definition. > + properties: > + i2c: > + type: object > + properties: > + bus: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: I2C bus number. How is bus number a property of the h/w? > + > + sda: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: I2C SDA pin port number. > + > + scl: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: I2C SCL pin port number. > + > + delay: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: bit transmission delay. > + > + timeout: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: transmission timeout. > + > +additionalProperties: false > + > +required: > + - compatible > + - reg > + - interrupts > + > + > +examples: > + # MPC5200 > + - | > + display@1,0 { Not a correct unit address. > + compatible = "smi,sm501"; > + reg = <0x00000000 0x00800000 > + 0x03e00000 0x00200000>; > + interrupts = <1 1 3>; > + mode = "640x480-32@60"; > + edid = [00 ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 > + 00 00 01 04 00 00 00 00 00 00 00 00 00 00 00 00 > + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > + 00 00 00 00 00 00 f0 0a 80 fb 20 e0 25 10 32 60 > + 02 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 > + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bd]; Kind of a sparse example. Please make examples using optional properties. > + }; > -- > 2.39.2 >