diff mbox series

[v2,5/7] hw/arm: Add AXP-209 to Cubieboard

Message ID 20221218211918.3592-6-strahinja.p.jankovic@gmail.com (mailing list archive)
State New, archived
Headers show
Series Enable Cubieboard A10 boot SPL from SD card | expand

Commit Message

Strahinja Jankovic Dec. 18, 2022, 9:19 p.m. UTC
SPL Boot for Cubieboard expects AXP-209 connected to I2C0 bus.

Signed-off-by: Strahinja Jankovic <strahinja.p.jankovic@gmail.com>
---
 hw/arm/cubieboard.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Philippe Mathieu-Daudé Dec. 18, 2022, 9:55 p.m. UTC | #1
On 18/12/22 22:19, Strahinja Jankovic wrote:
> SPL Boot for Cubieboard expects AXP-209 connected to I2C0 bus.
> 
> Signed-off-by: Strahinja Jankovic <strahinja.p.jankovic@gmail.com>
> ---
>   hw/arm/cubieboard.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c
> index 5e3372a3c7..afc7980414 100644
> --- a/hw/arm/cubieboard.c
> +++ b/hw/arm/cubieboard.c
> @@ -20,6 +20,7 @@
>   #include "hw/boards.h"
>   #include "hw/qdev-properties.h"
>   #include "hw/arm/allwinner-a10.h"
> +#include "hw/i2c/i2c.h"
>   
>   static struct arm_boot_info cubieboard_binfo = {
>       .loader_start = AW_A10_SDRAM_BASE,
> @@ -34,6 +35,7 @@ static void cubieboard_init(MachineState *machine)
>       BlockBackend *blk;
>       BusState *bus;
>       DeviceState *carddev;
> +    I2CBus *i2c;
>   
>       /* BIOS is not supported by this board */
>       if (machine->firmware) {
> @@ -80,6 +82,10 @@ static void cubieboard_init(MachineState *machine)
>           exit(1);
>       }
>   
> +    /* Connect AXP 209 */
> +    i2c = (I2CBus *)qdev_get_child_bus(DEVICE(&a10->i2c0), "i2c");

Preferably using I2C_BUS() instead of the cast:

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

> +    i2c_slave_create_simple(i2c, "allwinner.axp209", 0x34);
> +
>       /* Retrieve SD bus */
>       di = drive_get(IF_SD, 0, 0);
>       blk = di ? blk_by_legacy_dinfo(di) : NULL;
diff mbox series

Patch

diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c
index 5e3372a3c7..afc7980414 100644
--- a/hw/arm/cubieboard.c
+++ b/hw/arm/cubieboard.c
@@ -20,6 +20,7 @@ 
 #include "hw/boards.h"
 #include "hw/qdev-properties.h"
 #include "hw/arm/allwinner-a10.h"
+#include "hw/i2c/i2c.h"
 
 static struct arm_boot_info cubieboard_binfo = {
     .loader_start = AW_A10_SDRAM_BASE,
@@ -34,6 +35,7 @@  static void cubieboard_init(MachineState *machine)
     BlockBackend *blk;
     BusState *bus;
     DeviceState *carddev;
+    I2CBus *i2c;
 
     /* BIOS is not supported by this board */
     if (machine->firmware) {
@@ -80,6 +82,10 @@  static void cubieboard_init(MachineState *machine)
         exit(1);
     }
 
+    /* Connect AXP 209 */
+    i2c = (I2CBus *)qdev_get_child_bus(DEVICE(&a10->i2c0), "i2c");
+    i2c_slave_create_simple(i2c, "allwinner.axp209", 0x34);
+
     /* Retrieve SD bus */
     di = drive_get(IF_SD, 0, 0);
     blk = di ? blk_by_legacy_dinfo(di) : NULL;