aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/dt_util.h3
-rw-r--r--modules/devices/devicetree/dt_util.c33
2 files changed, 23 insertions, 13 deletions
diff --git a/includes/dt_util.h b/includes/dt_util.h
index 273d227d..e077279b 100644
--- a/includes/dt_util.h
+++ b/includes/dt_util.h
@@ -6,7 +6,6 @@
/* some not-quite-complete stuff that can be disabled */
#define DTEX_PHREFS 1
-#define DTEX_MTUP 1
#ifndef DTR_ROOT
#define DTR_ROOT dtr_find_device_tree_root()
@@ -22,12 +21,14 @@ enum {
DTP_HEX, /* list of 32-bit values displayed in hex */
DTP_UINT, /* unsigned int list */
DTP_INTRUPT, /* interrupt-specifier list */
+ DTP_INTRUPT_EX, /* extended interrupt-specifier list */
DTP_OVR, /* all in /__overrides__ */
DTP_PH, /* phandle */
DTP_PH_REF, /* reference to phandle */
DTP_REG, /* <#address-cells, #size-cells> */
DTP_CLOCKS, /* <phref, #clock-cells> */
DTP_GPIOS, /* <phref, #gpio-cells> */
+ DTP_DMAS, /* dma-specifier list */
};
/* simplest, no aliases.
diff --git a/modules/devices/devicetree/dt_util.c b/modules/devices/devicetree/dt_util.c
index 8cc5fadb..6ef41bd6 100644
--- a/modules/devices/devicetree/dt_util.c
+++ b/modules/devices/devicetree/dt_util.c
@@ -39,11 +39,15 @@ static struct {
{ "cs-gpios", DTP_GPIOS },
{ "phandle", DTP_PH },
{ "interrupts", DTP_INTRUPT },
+ { "interrupts-extended", DTP_INTRUPT_EX },
{ "interrupt-parent", DTP_PH_REF },
{ "interrupt-controller", DTP_EMPTY },
{ "regulator-min-microvolt", DTP_UINT },
{ "regulator-max-microvolt", DTP_UINT },
{ "clock-frequency", DTP_UINT },
+ { "dmas", DTP_DMAS },
+ { "dma-channels", DTP_UINT },
+ { "dma-requests", DTP_UINT },
{ NULL, 0 },
};
@@ -52,6 +56,7 @@ static struct {
} default_values[] = {
{ "#address-cells", 2 },
{ "#size-cells", 1 },
+ { "#dma-cells", 1 },
{ NULL, 0 },
};
@@ -745,18 +750,6 @@ char* dtr_str(dtr_obj *obj) {
case DTP_OVR:
ret = dtr_list_override(obj);
break;
- case DTP_CLOCKS:
- /* <phref, #clock-cells"> */
- if (DTEX_MTUP) {
- ret = dtr_list_phref(obj, "#clock-cells");
- break;
- }
- case DTP_GPIOS:
- /* <phref, #gpio-cells"> */
- if (DTEX_MTUP) {
- ret = dtr_list_phref(obj, "#gpio-cells");
- break;
- }
case DTP_REG:
/* <#address-cells #size-cells> */
ret = dtr_list_reg(obj);
@@ -764,6 +757,22 @@ char* dtr_str(dtr_obj *obj) {
case DTP_INTRUPT:
ret = dtr_list_interrupts(obj);
break;
+ case DTP_INTRUPT_EX:
+ /* <phref, #interrupt-cells"> */
+ ret = dtr_list_phref(obj, "#interrupt-cells");
+ break;
+ case DTP_CLOCKS:
+ /* <phref, #clock-cells"> */
+ ret = dtr_list_phref(obj, "#clock-cells");
+ break;
+ case DTP_GPIOS:
+ /* <phref, #gpio-cells"> */
+ ret = dtr_list_phref(obj, "#gpio-cells");
+ break;
+ case DTP_DMAS:
+ /* <phref, #dma-cells"> */
+ ret = dtr_list_phref(obj, "#dma-cells");
+ break;
case DTP_PH:
case DTP_HEX:
if (obj->length % 4)