led: bcm6358: convert to use live dt
PATCH 1/2 led: bcm6358: convert to use live dt
Signed-off-by Álvaro Fernández Rojas <[email protected]>
--- drivers/led/led_bcm6358.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-)
drivers/led/led_bcm6358.c +15 -25
@@ -32,8 +32,6 @@#define LED_CTRL_BUSY_SHIFT 3#define LED_CTRL_BUSY_MASK (1 << LED_CTRL_BUSY_SHIFT) -DECLARE_GLOBAL_DATA_PTR ; -struct bcm6358_led_priv {void __iomem *regs;uint8_t pin;
@@ -116,7 +114,6 @@ static int bcm6358_led_probe(struct udevice *dev) {struct led_uc_plat *uc_plat =dev_get_uclass_platdata (dev);fdt_addr_t addr; -fdt_size_t size;/* Top-level LED node */ if (!uc_plat->label) {
@@ -124,17 +121,16 @@ static int bcm6358_led_probe(struct udevice *dev)unsigned int clk_div;u32 set_bits =0 ; - addr =devfdt_get_addr_size_index (dev,0 , &size); + addr =dev_read_addr (dev);if (addr ==FDT_ADDR_T_NONE )return -EINVAL ; - regs =ioremap (addr, size); + regs =ioremap (addr,0 ); -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,clk-dat-low" )) +if (dev_read_bool (dev,"brcm,clk-dat-low" )) set_bits |=LED_CTRL_POL_MASK ; - clk_div =fdtdec_get_uint (gd->fdt_blob,dev_of_offset (dev), -"brcm,clk-div" ,LED_CTRL_CLK_1 ); + clk_div =dev_read_u32_default (dev,"brcm,clk-div" , +LED_CTRL_CLK_1 );switch (clk_div) {case 8 : set_bits |=LED_CTRL_CLK_8 ;
@@ -158,21 +154,18 @@ static int bcm6358_led_probe(struct udevice *dev)struct bcm6358_led_priv *priv =dev_get_priv (dev);unsigned int pin; - addr =devfdt_get_addr_size_index (dev_get_parent (dev),0 , - &size); + addr =dev_read_addr (dev_get_parent (dev));if (addr ==FDT_ADDR_T_NONE )return -EINVAL ; - pin =fdtdec_get_uint (gd->fdt_blob,dev_of_offset (dev),"reg" , -LEDS_MAX ); + pin =dev_read_u32_default (dev,"reg" ,LEDS_MAX );if (pin >=LEDS_MAX )return -EINVAL ; - priv->regs =ioremap (addr, size); + priv->regs =ioremap (addr,0 ); priv->pin = pin; -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"active-low" )) +if (dev_read_bool (dev,"active-low" )) priv->active_low = true; }
@@ -181,27 +174,24 @@ static int bcm6358_led_probe(struct udevice *dev)static int bcm6358_led_bind (struct udevice *parent) { -const void *blob = gd->fdt_blob; -int node; +ofnode node; -for (node =fdt_first_subnode (blob,dev_of_offset (parent)); - node >0 ; - node =fdt_next_subnode (blob, node)) { +ev_for_each_subnode (node, parent) {struct led_uc_plat *uc_plat;struct udevice *dev;const char *label;int ret; - label =fdt_getprop (blob, node,"label" ,NULL ); + label =ofnode_read_string (node,"label" );if (!label) {debug ("%s: node %s has no label\n" , __func__, -fdt_get_name (blob, node,NULL )); +ofnode_get_name (node));return -EINVAL ; } ret =device_bind_driver_to_node (parent,"bcm6358-led" , -fdt_get_name (blob, node,NULL ), -offset_to_ofnode (node), &dev); +ofnode_get_name (node), + node, &dev);if (ret)return ret;
Signature · 1 line
2.11.0
PATCH 2/2 led: bcm6328: convert to use live dt
Signed-off-by Álvaro Fernández Rojas <[email protected]>
--- drivers/led/led_bcm6328.c | 48 +++++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 31 deletions(-)
drivers/led/led_bcm6328.c +17 -31
@@ -38,8 +38,6 @@#define LED_MODE_OFF 3#define LED_MODE_MASK 0x3 -DECLARE_GLOBAL_DATA_PTR ; -struct bcm6328_led_priv {void __iomem *regs;void __iomem *mode;
@@ -151,33 +149,27 @@ static int bcm6328_led_probe(struct udevice *dev) {struct led_uc_plat *uc_plat =dev_get_uclass_platdata (dev);fdt_addr_t addr; -fdt_size_t size;/* Top-level LED node */ if (!uc_plat->label) {void __iomem *regs;u32 set_bits =0 ; - addr =devfdt_get_addr_size_index (dev,0 , &size); + addr =dev_read_addr (dev);if (addr ==FDT_ADDR_T_NONE )return -EINVAL ; - regs =ioremap (addr, size); + regs =ioremap (addr,0 ); -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,serial-leds" )) +if (dev_read_bool (dev,"brcm,serial-leds" )) set_bits |=LED_INIT_SLEDEN_MASK ; -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,serial-mux" )) +if (dev_read_bool (dev,"brcm,serial-mux" )) set_bits |=LED_INIT_SLEDMUX_MASK ; -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,serial-clk-low" )) +if (dev_read_bool (dev,"brcm,serial-clk-low" )) set_bits |=LED_INIT_SLEDCLKNPOL_MASK ; -if (!fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,serial-dat-low" )) +if (!dev_read_bool (dev,"brcm,serial-dat-low" )) set_bits |=LED_INIT_SLEDDATANPOL_MASK ; -if (!fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,serial-shift-inv" )) +if (!dev_read_bool (dev,"brcm,serial-shift-inv" )) set_bits |=LED_INIT_SLEDSHIFTDIR_MASK ;clrsetbits_be32 (regs +LED_INIT_REG , ~0 , set_bits);
@@ -185,17 +177,15 @@ static int bcm6328_led_probe(struct udevice *dev)struct bcm6328_led_priv *priv =dev_get_priv (dev);unsigned int pin; - addr =devfdt_get_addr_size_index (dev_get_parent (dev),0 , - &size); + addr =dev_read_addr (dev_get_parent (dev));if (addr ==FDT_ADDR_T_NONE )return -EINVAL ; - pin =fdtdec_get_uint (gd->fdt_blob,dev_of_offset (dev),"reg" , -LEDS_MAX ); + pin =dev_read_u32_default (dev,"reg" ,LEDS_MAX );if (pin >=LEDS_MAX )return -EINVAL ; - priv->regs =ioremap (addr, size); + priv->regs =ioremap (addr,0 );if (pin <8 ) {/* LEDs 0-7 (bits 47:32) */ priv->mode = priv->regs +LED_MODE_REG_HI ;
@@ -206,8 +196,7 @@ static int bcm6328_led_probe(struct udevice *dev) priv->shift = ((pin -8 ) <<1 ); } -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"active-low" )) +if (dev_read_bool (dev,"active-low" )) priv->active_low = true; }
@@ -216,27 +205,24 @@ static int bcm6328_led_probe(struct udevice *dev)static int bcm6328_led_bind (struct udevice *parent) { -const void *blob = gd->fdt_blob; -int node; +ofnode node; -for (node =fdt_first_subnode (blob,dev_of_offset (parent)); - node >0 ; - node =fdt_next_subnode (blob, node)) { +dev_for_each_subnode (node, parent) {struct led_uc_plat *uc_plat;struct udevice *dev;const char *label;int ret; - label =fdt_getprop (blob, node,"label" ,NULL ); + label =ofnode_read_string (node,"label" );if (!label) {debug ("%s: node %s has no label\n" , __func__, -fdt_get_name (blob, node,NULL )); +ofnode_get_name (node));return -EINVAL ; } ret =device_bind_driver_to_node (parent,"bcm6328-led" , -fdt_get_name (blob, node,NULL ), -offset_to_ofnode (node), &dev); +ofnode_get_name (node), + node, &dev);if (ret)return ret;
Signature · 1 line
2.11.0
PATCH 2/2 led: bcm6328: convert to use live dt
Quoted 4 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- drivers/led/led_bcm6328.c | 48 +++++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 31 deletions(-)
Reviewed-by Simon Glass <[email protected]>
PATCH 1/2 led: bcm6358: convert to use live dt
In reply to Álvaro Fernández RojasHi Alvaro,
Quoted 77 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- drivers/led/led_bcm6358.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-)drivers/led/led_bcm6358.c +9
-16@@ -32,8 +32,6 @@#define LED_CTRL_BUSY_SHIFT 3#define LED_CTRL_BUSY_MASK (1 << LED_CTRL_BUSY_SHIFT) -DECLARE_GLOBAL_DATA_PTR ; -struct bcm6358_led_priv {void __iomem *regs;uint8_t pin;@@ -116,7 +114,6 @@ static int bcm6358_led_probe(struct udevice *dev) {struct led_uc_plat *uc_plat =dev_get_uclass_platdata (dev);fdt_addr_t addr; -fdt_size_t size;/* Top-level LED node */ if (!uc_plat->label) {@@ -124,17 +121,16 @@ static int bcm6358_led_probe(struct udevice *dev)unsigned int clk_div;u32 set_bits =0 ; - addr =devfdt_get_addr_size_index (dev,0 , &size); + addr =dev_read_addr (dev);if (addr ==FDT_ADDR_T_NONE )return -EINVAL ; - regs =ioremap (addr, size); + regs =ioremap (addr,0 ); -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"brcm,clk-dat-low" )) +if (dev_read_bool (dev,"brcm,clk-dat-low" )) set_bits |=LED_CTRL_POL_MASK ; - clk_div =fdtdec_get_uint (gd->fdt_blob,dev_of_offset (dev), -"brcm,clk-div" ,LED_CTRL_CLK_1 ); + clk_div =dev_read_u32_default (dev,"brcm,clk-div" , +LED_CTRL_CLK_1 );switch (clk_div) {case 8 : set_bits |=LED_CTRL_CLK_8 ;@@ -158,21 +154,18 @@ static int bcm6358_led_probe(struct udevice *dev)struct bcm6358_led_priv *priv =dev_get_priv (dev);unsigned int pin; - addr =devfdt_get_addr_size_index (dev_get_parent (dev),0 , - &size); + addr =dev_read_addr (dev_get_parent (dev));if (addr ==FDT_ADDR_T_NONE )return -EINVAL ; - pin =fdtdec_get_uint (gd->fdt_blob,dev_of_offset (dev),"reg" , -LEDS_MAX ); + pin =dev_read_u32_default (dev,"reg" ,LEDS_MAX );if (pin >=LEDS_MAX )return -EINVAL ; - priv->regs =ioremap (addr, size); + priv->regs =ioremap (addr,0 ); priv->pin = pin; -if (fdtdec_get_bool (gd->fdt_blob,dev_of_offset (dev), -"active-low" )) +if (dev_read_bool (dev,"active-low" )) priv->active_low = true; }@@ -181,27 +174,24 @@ static int bcm6358_led_probe(struct udevice *dev)
drivers/led/led_bcm6358.c static int bcm6358_led_probe(struct udevice *dev) · line 179
Quoted 10 lines
drivers/led/led_bcm6358.c +2
-5static int bcm6358_led_bind (struct udevice *parent) { -const void *blob = gd->fdt_blob; -int node; +ofnode node; -for (node =fdt_first_subnode (blob,dev_of_offset (parent)); - node >0 ; - node =fdt_next_subnode (blob, node)) { +ev_for_each_subnode (node, parent) {
Should that be dev_for_each_subnode() ?
Quoted 23 lines
drivers/led/led_bcm6358.c +4
-5struct led_uc_plat *uc_plat;struct udevice *dev;const char *label;int ret; - label =fdt_getprop (blob, node,"label" ,NULL ); + label =ofnode_read_string (node,"label" );if (!label) {debug ("%s: node %s has no label\n" , __func__, -fdt_get_name (blob, node,NULL )); +ofnode_get_name (node));return -EINVAL ; } ret =device_bind_driver_to_node (parent,"bcm6358-led" , -fdt_get_name (blob, node,NULL ), -offset_to_ofnode (node), &dev); +ofnode_get_name (node), + node, &dev);if (ret)return ret; --
Quoted 2 lines
2.11.0
Regards,
Simon