pinctrl: single: check "register-width" DT property
In more recent versions of the Linux kernel the driver's probe function returns an error if the "pinctrl-single,register-width" DT property is missing. The lack of this information, in fact, does not allow to know whether to access the registers of the controller at 8, 16, ... bits. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:

committed by
Lokesh Vutla

parent
9fd8a430f3
commit
971c64a452
@@ -22,7 +22,7 @@ struct single_pdata {
|
|||||||
fdt_addr_t base;
|
fdt_addr_t base;
|
||||||
int offset;
|
int offset;
|
||||||
u32 mask;
|
u32 mask;
|
||||||
int width;
|
u32 width;
|
||||||
bool bits_per_mux;
|
bool bits_per_mux;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -184,9 +184,13 @@ static int single_of_to_plat(struct udevice *dev)
|
|||||||
fdt_addr_t addr;
|
fdt_addr_t addr;
|
||||||
fdt_size_t size;
|
fdt_size_t size;
|
||||||
struct single_pdata *pdata = dev_get_plat(dev);
|
struct single_pdata *pdata = dev_get_plat(dev);
|
||||||
|
int ret;
|
||||||
|
|
||||||
pdata->width =
|
ret = dev_read_u32(dev, "pinctrl-single,register-width", &pdata->width);
|
||||||
dev_read_u32_default(dev, "pinctrl-single,register-width", 0);
|
if (ret) {
|
||||||
|
dev_err(dev, "missing register width\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
addr = dev_read_addr_size(dev, "reg", &size);
|
addr = dev_read_addr_size(dev, "reg", &size);
|
||||||
if (addr == FDT_ADDR_T_NONE) {
|
if (addr == FDT_ADDR_T_NONE) {
|
||||||
|
Reference in New Issue
Block a user