On 11/11/14 14:23, Lucas Stach wrote: > Am Dienstag, den 11.11.2014, 14:20 +0000 schrieb Zubair Lutfullah > Kakakhel: >> Hi Andy, >> >> This patch adds the reg-io-width binding. >> >> Hence the binding patch should come before it. >> >> >> On 11/11/14 12:53, Andy Yan wrote: >>> On rockchip rk3288, only word(32-bit) accesses are >>> permitted for hdmi registers. Byte width accesses (writeb, >>> readb) generate an imprecise external abort. >>> >>> Signed-off-by: Andy Yan <andy.yan@xxxxxxxxxxxxxx> >>> >>> --- >>> >>> } >>> >>> static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg) >>> @@ -1499,6 +1527,23 @@ static int dw_hdmi_bind(struct device *dev, struct device *master, void *data) >>> struct device_node *ddc_node; >>> struct resource *iores; >>> int ret, irq; >>> + u32 val = 1; >>> + >>> + of_property_read_u32(np, "reg-io-width", &val); >>> + >>> + switch (val) { >>> + case 4: >>> + hdmi->write = dw_hdmi_writel; >>> + hdmi->read = dw_hdmi_readl; >>> + break; >>> + case 1: >>> + hdmi->write = dw_hdmi_writeb; >>> + hdmi->read = dw_hdmi_readb; >>> + break; >>> + default: >>> + dev_err(dev, "reg-io-width must be 1 or 4\n"); >>> + return -EINVAL; >>> + } >> >> The binding patch says this is an optional property. >> But here if undefined it returns -EINVAL. >> >> I would keep it optional and default it to byte access. > > That's exactly what the patch does. val is initialized to 1, which is > not changed if the property could not be found in the DT. The default > case will only be taken if the property is present in DT but has any > other value than 1 or 4, which is an error. > I missed the initialization. My bad. Thanks ZubairLK -- 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