With this patch the following property assignment:

    property = ['a' 2b '\r'];

is equivalent to:

    property = [61 2b 0d];

Signed-off-by: Anton Staaf <[email protected]>
Cc: Jon Loeliger <[email protected]>
Cc: David Gibson <[email protected]>
---
 Documentation/dts-format.txt |    5 +++--
 dtc-lexer.l                  |   14 ++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/Documentation/dts-format.txt b/Documentation/dts-format.txt
index eae8b76..555bd89 100644
--- a/Documentation/dts-format.txt
+++ b/Documentation/dts-format.txt
@@ -48,11 +48,12 @@ NUL-terminated strings, as bytestrings or a combination of 
these.
        e.g. compatible = "simple-bus";
 
 * A bytestring is enclosed in square brackets [] with each byte
-  represented by two hexadecimal digits.  Spaces between each byte are
-  optional.
+  represented by two hexadecimal digits or a character literal.
+  Spaces between each byte or character literal are optional.
 
        e.g. local-mac-address = [00 00 12 34 56 78]; or equivalently
             local-mac-address = [000012345678];
+       e.g. keymap = ['a' 'b' 'c' 'd'];
 
 * Values may have several comma-separated components, which are
   concatenated together.
diff --git a/dtc-lexer.l b/dtc-lexer.l
index d4f9eaa..31cd18a 100644
--- a/dtc-lexer.l
+++ b/dtc-lexer.l
@@ -142,6 +142,20 @@ static int pop_input_file(void);
                        return DT_BYTE;
                }
 
+<BYTESTRING>{CHAR_LITERAL} {
+                       DPRINT("Character literal: %s\n", yytext);
+                       yylval.byte = yytext[1];
+                       DPRINT("Byte: %02x\n", (int)yylval.byte);
+                       return DT_BYTE;
+               }
+
+<BYTESTRING>{CHAR_ESCAPED} {
+                       DPRINT("Character escaped literal: %s\n", yytext);
+                       yylval.byte = get_escape_char_exact(yytext+1, yyleng-2);
+                       DPRINT("Byte: %02x\n", (int)yylval.byte);
+                       return DT_BYTE;
+               }
+
 <BYTESTRING>"]"        {
                        DPRINT("/BYTESTRING\n");
                        BEGIN_DEFAULT();
-- 
1.7.3.1

_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to