+Any "options" specified for a protocol decoder which are not actually
+supported options, will be interpreted as being channel name/number assignments.
+.sp
+Example:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr>"
+.br
+.B " \-P spi:wordsize=9:miso=1:mosi=5:clk=3:cs=0"
+.sp
+In this example,
+.B wordsize
+is an option supported by the
+.B spi
+protocol decoder. Additionally, the user tells sigrok to decode the SPI
+protocol using channel 1 as MISO signal for SPI, channel 5 as MOSI, channel 3
+as CLK, and channel 0 as CS# signal.
+.TP
+.BR "\-S, \-\-protocol\-decoder\-stack " <stack>
+This option allows the user to specify a protocol decoder stack, i.e.
+the way in which one protocol decoder's output gets piped into another
+protocol decoder. If not specified, the stack will be set up in the same
+order in which the protocol decoders were given with the
+.B \-\-protocol-decoders
+option.
+.sp
+The decoders are specified by their ID, as shown in the
+.B \-\-version
+output. In addition to the
+.B \-S
+option, all protocol decoders that are used in a stack, must also be specified
+(together with their options, if any) using the
+.B \-P
+parameter.
+.sp
+Example:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-P i2c:sda=4:scl=7,rtc8564"
+.br
+.B " \-S i2c,rtc8564"
+.sp
+In this example, the
+.B \-S
+option specifies that the output of the
+.BR i2c " decoder"
+is piped into the
+.BR rtc8564 " decoder,"
+i.e., the
+.BR rtc8564 " decoder"
+is stacked on top of the
+.BR i2c " decoder."
+.sp
+The respective protocol decoder options and channel name/number assignments
+must be given using the
+.B \-P
+option (you cannot specify them in the
+.B \-S
+option).
+.TP
+.BR "\-A, \-\-protocol\-decoder\-annotations " <annotations>
+By default, only the stack's topmost protocol decoder's annotation output is
+shown. With this option another decoder's annotation can be selected for
+display, by specifying its ID:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid -A i2c"
+.sp
+If a protocol decoder has multiple annotations, you can also specify
+which one of them to show by specifying its short description like this:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
+.br
+.B " \-A i2c=data-read"
+.sp
+Select multiple annotations by separating them with a colon:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
+.br
+.B " \-A i2c=data-read:data-write"
+.sp
+You can also select multiple protocol decoders, with an optional selected
+annotation each, by separating them with commas:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
+.br
+.B " \-A i2c=data-read:data-write,edid"
+.TP
+.BR "\-M, \-\-protocol\-decoder\-meta " <pdname>
+When given, show protocol decoder meta output instead of annotations.
+The argument is the name of the decoder whose meta output to show.
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-M i2c"
+.sp
+Not every decoder generates meta output.
+.TP
+.BR "\-B, \-\-protocol\-decoder\-binary " <binaryspec>
+When given, decoder "raw" data of various kinds is written to stdout instead
+of annotations (this could be raw binary UART/SPI bytes, or WAV files, PCAP
+files, PNG files, or anything else; this is entirely dependent on the
+decoder and what kinds of binary output make sense for that decoder).
+.sp
+No other information is printed to stdout, so this is
+suitable for piping into other programs or saving to a file.
+.sp
+Protocol decoders that support binary output publish a list of binary
+classes, for example the UART decoder might have "TX" and "RX". To
+select TX for output, the argument to this option would be:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-B uart=tx"
+.br
+.sp
+If only the protocol decoder is specified, without binary class, all classes
+are written to stdout:
+.sp
+ $
+.B "sigrok\-cli \-i <file.sr> \-B uart"
+.sp
+(this is only useful in rare cases, generally you would specify a certain
+binary class you're interested in)