On Tue, 12 Nov 2013 23:48:22 +0100 Stephen Warren <swarren@xxxxxxxxxxxxx> wrote: > On 11/11/2013 01:31 AM, Hiroshi Doyu wrote: > > Create a header file to define the swgroup IDs used by the IOMMU(SMMU) > > binding. "swgroup" is a group of H/W clients which a Tegra SoC > > supports. This unique ID can be used to calculate MC_SMMU_<swgroup > > name>_ASID_0 register offset and MC_<swgroup name>_HOTRESET_*_0 > > register bit. This will allow the same header to be used by both > > device tree files, and drivers implementing this binding, which > > guarantees that the two stay in sync. This also makes device trees > > more readable by using names instead of magic numbers. For HOTRESET > > bit shifting we need another conversion table, which will come later. > > > diff --git a/include/dt-bindings/memory/tegra-swgroup.h b/include/dt-bindings/memory/tegra-swgroup.h > > > +#define TEGRA_SWGROUP_PPCS2 32 /* 0xab0 */ > > + > > +#define TEGRA_SWGROUP_MAX 64 > > + > > +#define TEGRA_SWGROUP_BIT(x) (1ULL << TEGRA_SWGROUP_##x) > > If I put the following into a DT and compile it: > > #define TEGRA_SWGROUP_PPCS2 32 /* 0xab0 */ > #define TEGRA_SWGROUP_BIT(x) (1ULL << TEGRA_SWGROUP_##x) > / { > test-prop = <(TEGRA_SWGROUP_BIT(PPCS2))>; > }; > > I get: > > Error: arch/arm/boot/dts/tegra20.dtsi:11.28-29 integer value out of > range 0000000000000020 (32 bits) > FATAL ERROR: Syntax error parsing input tree > > Is TEGRA_SWGROUP_BIT() not meant to be used in DT files? If it is, the > definition is broken. If it is not, it should be defined in the driver > not the header, since DT files have no use for it. I'd like to use the macro in DT but what I want is 2 cells from 64 bit. For the above example, I want the following 2 cell to be generated but I haven't found any ways yet. #define TEGRA_SWGROUP_PPCS2 32 /* 0xab0 */ #define TEGRA_SWGROUP_BIT(x) (1ULL << TEGRA_SWGROUP_##x) / { test-prop = <0x00000000 0x00000001>; }; -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html