diff mbox series

misc/pca955*: Move models under hw/gpio

Message ID 20240325134833.1484265-1-clg@redhat.com
State New
Headers show
Series misc/pca955*: Move models under hw/gpio | expand

Commit Message

Cédric Le Goater March 25, 2024, 1:48 p.m. UTC
The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
PCA9552 also can drive LEDs. Do all the necessary adjustments to move
the models under hw/gpio.

Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 MAINTAINERS                              | 4 ++--
 include/hw/{misc => gpio}/pca9552.h      | 0
 include/hw/{misc => gpio}/pca9552_regs.h | 0
 include/hw/{misc => gpio}/pca9554.h      | 0
 include/hw/{misc => gpio}/pca9554_regs.h | 0
 hw/arm/aspeed.c                          | 2 +-
 hw/{misc => gpio}/pca9552.c              | 4 ++--
 hw/{misc => gpio}/pca9554.c              | 4 ++--
 tests/qtest/pca9552-test.c               | 2 +-
 tests/qtest/pnv-host-i2c-test.c          | 4 ++--
 hw/gpio/meson.build                      | 2 ++
 hw/gpio/trace-events                     | 4 ++++
 hw/misc/meson.build                      | 2 --
 hw/misc/trace-events                     | 4 ----
 14 files changed, 16 insertions(+), 16 deletions(-)
 rename include/hw/{misc => gpio}/pca9552.h (100%)
 rename include/hw/{misc => gpio}/pca9552_regs.h (100%)
 rename include/hw/{misc => gpio}/pca9554.h (100%)
 rename include/hw/{misc => gpio}/pca9554_regs.h (100%)
 rename hw/{misc => gpio}/pca9552.c (99%)
 rename hw/{misc => gpio}/pca9554.c (99%)

Comments

Thomas Huth March 25, 2024, 2:04 p.m. UTC | #1
On 25/03/2024 14.48, Cédric Le Goater wrote:
> The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
> PCA9552 also can drive LEDs. Do all the necessary adjustments to move
> the models under hw/gpio.
> 
> Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---

Reviewed-by: Thomas Huth <thuth@redhat.com>
Glenn Miles March 25, 2024, 2:59 p.m. UTC | #2
Thanks for doing this, Cédric!

Reviewed-by: Glenn Miles <milesg@linux.vnet.ibm.com>

-Glenn

On Mon, 2024-03-25 at 14:48 +0100, Cédric Le Goater wrote:
> The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
> PCA9552 also can drive LEDs. Do all the necessary adjustments to move
> the models under hw/gpio.
> 
> Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>  MAINTAINERS                              | 4 ++--
>  include/hw/{misc => gpio}/pca9552.h      | 0
>  include/hw/{misc => gpio}/pca9552_regs.h | 0
>  include/hw/{misc => gpio}/pca9554.h      | 0
>  include/hw/{misc => gpio}/pca9554_regs.h | 0
>  hw/arm/aspeed.c                          | 2 +-
>  hw/{misc => gpio}/pca9552.c              | 4 ++--
>  hw/{misc => gpio}/pca9554.c              | 4 ++--
>  tests/qtest/pca9552-test.c               | 2 +-
>  tests/qtest/pnv-host-i2c-test.c          | 4 ++--
>  hw/gpio/meson.build                      | 2 ++
>  hw/gpio/trace-events                     | 4 ++++
>  hw/misc/meson.build                      | 2 --
>  hw/misc/trace-events                     | 4 ----
>  14 files changed, 16 insertions(+), 16 deletions(-)
>  rename include/hw/{misc => gpio}/pca9552.h (100%)
>  rename include/hw/{misc => gpio}/pca9552_regs.h (100%)
>  rename include/hw/{misc => gpio}/pca9554.h (100%)
>  rename include/hw/{misc => gpio}/pca9554_regs.h (100%)
>  rename hw/{misc => gpio}/pca9552.c (99%)
>  rename hw/{misc => gpio}/pca9554.c (99%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 409d7db4d457..a07af6b9d48e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1549,8 +1549,8 @@ M: Glenn Miles <milesg@linux.vnet.ibm.com>
>  L: qemu-ppc@nongnu.org
>  L: qemu-arm@nongnu.org
>  S: Odd Fixes
> -F: hw/misc/pca955*.c
> -F: include/hw/misc/pca955*.h
> +F: hw/gpio/pca955*.c
> +F: include/hw/gpio/pca955*.h
> 
>  virtex_ml507
>  M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
> diff --git a/include/hw/misc/pca9552.h b/include/hw/gpio/pca9552.h
> similarity index 100%
> rename from include/hw/misc/pca9552.h
> rename to include/hw/gpio/pca9552.h
> diff --git a/include/hw/misc/pca9552_regs.h
> b/include/hw/gpio/pca9552_regs.h
> similarity index 100%
> rename from include/hw/misc/pca9552_regs.h
> rename to include/hw/gpio/pca9552_regs.h
> diff --git a/include/hw/misc/pca9554.h b/include/hw/gpio/pca9554.h
> similarity index 100%
> rename from include/hw/misc/pca9554.h
> rename to include/hw/gpio/pca9554.h
> diff --git a/include/hw/misc/pca9554_regs.h
> b/include/hw/gpio/pca9554_regs.h
> similarity index 100%
> rename from include/hw/misc/pca9554_regs.h
> rename to include/hw/gpio/pca9554_regs.h
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 729f66941462..badf6f6fa09d 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -18,7 +18,7 @@
>  #include "hw/block/flash.h"
>  #include "hw/i2c/i2c_mux_pca954x.h"
>  #include "hw/i2c/smbus_eeprom.h"
> -#include "hw/misc/pca9552.h"
> +#include "hw/gpio/pca9552.h"
>  #include "hw/nvram/eeprom_at24c.h"
>  #include "hw/sensor/tmp105.h"
>  #include "hw/misc/led.h"
> diff --git a/hw/misc/pca9552.c b/hw/gpio/pca9552.c
> similarity index 99%
> rename from hw/misc/pca9552.c
> rename to hw/gpio/pca9552.c
> index 2ae13af35e93..27d4db068095 100644
> --- a/hw/misc/pca9552.c
> +++ b/hw/gpio/pca9552.c
> @@ -15,8 +15,8 @@
>  #include "qemu/module.h"
>  #include "qemu/bitops.h"
>  #include "hw/qdev-properties.h"
> -#include "hw/misc/pca9552.h"
> -#include "hw/misc/pca9552_regs.h"
> +#include "hw/gpio/pca9552.h"
> +#include "hw/gpio/pca9552_regs.h"
>  #include "hw/irq.h"
>  #include "migration/vmstate.h"
>  #include "qapi/error.h"
> diff --git a/hw/misc/pca9554.c b/hw/gpio/pca9554.c
> similarity index 99%
> rename from hw/misc/pca9554.c
> rename to hw/gpio/pca9554.c
> index 5e31696797d9..7d10a64ba7c1 100644
> --- a/hw/misc/pca9554.c
> +++ b/hw/gpio/pca9554.c
> @@ -11,8 +11,8 @@
>  #include "qemu/module.h"
>  #include "qemu/bitops.h"
>  #include "hw/qdev-properties.h"
> -#include "hw/misc/pca9554.h"
> -#include "hw/misc/pca9554_regs.h"
> +#include "hw/gpio/pca9554.h"
> +#include "hw/gpio/pca9554_regs.h"
>  #include "hw/irq.h"
>  #include "migration/vmstate.h"
>  #include "qapi/error.h"
> diff --git a/tests/qtest/pca9552-test.c b/tests/qtest/pca9552-test.c
> index ccca2b3d9140..747495769239 100644
> --- a/tests/qtest/pca9552-test.c
> +++ b/tests/qtest/pca9552-test.c
> @@ -12,7 +12,7 @@
>  #include "libqtest.h"
>  #include "libqos/qgraph.h"
>  #include "libqos/i2c.h"
> -#include "hw/misc/pca9552_regs.h"
> +#include "hw/gpio/pca9552_regs.h"
> 
>  #define PCA9552_TEST_ID   "pca9552-test"
>  #define PCA9552_TEST_ADDR 0x60
> diff --git a/tests/qtest/pnv-host-i2c-test.c b/tests/qtest/pnv-host-
> i2c-test.c
> index c6351772520c..7f64d597ac1d 100644
> --- a/tests/qtest/pnv-host-i2c-test.c
> +++ b/tests/qtest/pnv-host-i2c-test.c
> @@ -8,8 +8,8 @@
>   */
>  #include "qemu/osdep.h"
>  #include "libqtest.h"
> -#include "hw/misc/pca9554_regs.h"
> -#include "hw/misc/pca9552_regs.h"
> +#include "hw/gpio/pca9554_regs.h"
> +#include "hw/gpio/pca9552_regs.h"
>  #include "pnv-xscom.h"
> 
>  #define PPC_BIT(bit)            (0x8000000000000000ULL >> (bit))
> diff --git a/hw/gpio/meson.build b/hw/gpio/meson.build
> index 791e93a97bcc..a7495d196ae9 100644
> --- a/hw/gpio/meson.build
> +++ b/hw/gpio/meson.build
> @@ -2,6 +2,8 @@ system_ss.add(when: 'CONFIG_GPIO_KEY', if_true:
> files('gpio_key.c'))
>  system_ss.add(when: 'CONFIG_GPIO_MPC8XXX', if_true:
> files('mpc8xxx.c'))
>  system_ss.add(when: 'CONFIG_GPIO_PWR', if_true: files('gpio_pwr.c'))
>  system_ss.add(when: 'CONFIG_MAX7310', if_true: files('max7310.c'))
> +system_ss.add(when: 'CONFIG_PCA9552', if_true: files('pca9552.c'))
> +system_ss.add(when: 'CONFIG_PCA9554', if_true: files('pca9554.c'))
>  system_ss.add(when: 'CONFIG_PL061', if_true: files('pl061.c'))
>  system_ss.add(when: 'CONFIG_ZAURUS', if_true: files('zaurus.c'))
> 
> diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events
> index 9331f4289d5a..b91cc7e9a45d 100644
> --- a/hw/gpio/trace-events
> +++ b/hw/gpio/trace-events
> @@ -13,6 +13,10 @@ nrf51_gpio_write(uint64_t offset, uint64_t value)
> "offset 0x%" PRIx64 " value 0x
>  nrf51_gpio_set(int64_t line, int64_t value) "line %" PRIi64 " value
> %" PRIi64
>  nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %"
> PRIi64 " value %" PRIi64
> 
> +# pca9552.c
> +pca955x_gpio_status(const char *description, const char *buf) "%s
> GPIOs 0-15 [%s]"
> +pca955x_gpio_change(const char *description, unsigned id, unsigned
> prev_state, unsigned current_state) "%s GPIO id:%u status: %u -> %u"
> +
>  # pl061.c
>  pl061_update(const char *id, uint32_t dir, uint32_t data, uint32_t
> pullups, uint32_t floating) "%s GPIODIR 0x%x GPIODATA 0x%x pullups
> 0x%x floating 0x%x"
>  pl061_set_output(const char *id, int gpio, int level) "%s setting
> output %d to %d"
> diff --git a/hw/misc/meson.build b/hw/misc/meson.build
> index 8e1ddc00f9b2..dd6cf89a5449 100644
> --- a/hw/misc/meson.build
> +++ b/hw/misc/meson.build
> @@ -3,8 +3,6 @@ system_ss.add(when: 'CONFIG_EDU', if_true:
> files('edu.c'))
>  system_ss.add(when: 'CONFIG_FW_CFG_DMA', if_true:
> files('vmcoreinfo.c'))
>  system_ss.add(when: 'CONFIG_ISA_DEBUG', if_true:
> files('debugexit.c'))
>  system_ss.add(when: 'CONFIG_ISA_TESTDEV', if_true: files('pc-
> testdev.c'))
> -system_ss.add(when: 'CONFIG_PCA9552', if_true: files('pca9552.c'))
> -system_ss.add(when: 'CONFIG_PCA9554', if_true: files('pca9554.c'))
>  system_ss.add(when: 'CONFIG_PCI_TESTDEV', if_true: files('pci-
> testdev.c'))
>  system_ss.add(when: 'CONFIG_UNIMP', if_true: files('unimp.c'))
>  system_ss.add(when: 'CONFIG_EMPTY_SLOT', if_true:
> files('empty_slot.c'))
> diff --git a/hw/misc/trace-events b/hw/misc/trace-events
> index 0374eb33ac52..4896001f35de 100644
> --- a/hw/misc/trace-events
> +++ b/hw/misc/trace-events
> @@ -340,10 +340,6 @@ grlib_apb_pnp_read(uint64_t addr, unsigned size,
> uint32_t value) "APB PnP read a
>  led_set_intensity(const char *color, const char *desc, uint8_t
> intensity_percent) "LED desc:'%s' color:%s intensity: %u%%"
>  led_change_intensity(const char *color, const char *desc, uint8_t
> old_intensity_percent, uint8_t new_intensity_percent) "LED desc:'%s'
> color:%s intensity %u%% -> %u%%"
> 
> -# pca9552.c
> -pca955x_gpio_status(const char *description, const char *buf) "%s
> GPIOs 0-15 [%s]"
> -pca955x_gpio_change(const char *description, unsigned id, unsigned
> prev_state, unsigned current_state) "%s GPIO id:%u status: %u -> %u"
> -
>  # bcm2835_cprman.c
>  bcm2835_cprman_read(uint64_t offset, uint64_t value) "offset:0x%"
> PRIx64 " value:0x%" PRIx64
>  bcm2835_cprman_write(uint64_t offset, uint64_t value) "offset:0x%"
> PRIx64 " value:0x%" PRIx64
Andrew Jeffery March 25, 2024, 11:27 p.m. UTC | #3
On Mon, 2024-03-25 at 14:48 +0100, Cédric Le Goater wrote:
> The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
> PCA9552 also can drive LEDs. Do all the necessary adjustments to move
> the models under hw/gpio.
> 
> Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>

Acked-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Philippe Mathieu-Daudé March 26, 2024, 9:55 a.m. UTC | #4
On 25/3/24 14:48, Cédric Le Goater wrote:
> The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
> PCA9552 also can drive LEDs. Do all the necessary adjustments to move
> the models under hw/gpio.
> 
> Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>   MAINTAINERS                              | 4 ++--
>   include/hw/{misc => gpio}/pca9552.h      | 0
>   include/hw/{misc => gpio}/pca9552_regs.h | 0
>   include/hw/{misc => gpio}/pca9554.h      | 0
>   include/hw/{misc => gpio}/pca9554_regs.h | 0
>   hw/arm/aspeed.c                          | 2 +-
>   hw/{misc => gpio}/pca9552.c              | 4 ++--
>   hw/{misc => gpio}/pca9554.c              | 4 ++--
>   tests/qtest/pca9552-test.c               | 2 +-
>   tests/qtest/pnv-host-i2c-test.c          | 4 ++--
>   hw/gpio/meson.build                      | 2 ++
>   hw/gpio/trace-events                     | 4 ++++
>   hw/misc/meson.build                      | 2 --
>   hw/misc/trace-events                     | 4 ----
>   14 files changed, 16 insertions(+), 16 deletions(-)
>   rename include/hw/{misc => gpio}/pca9552.h (100%)
>   rename include/hw/{misc => gpio}/pca9552_regs.h (100%)
>   rename include/hw/{misc => gpio}/pca9554.h (100%)
>   rename include/hw/{misc => gpio}/pca9554_regs.h (100%)
>   rename hw/{misc => gpio}/pca9552.c (99%)
>   rename hw/{misc => gpio}/pca9554.c (99%)

Thanks, patch queued.
Cédric Le Goater March 26, 2024, 10:16 a.m. UTC | #5
On 3/26/24 10:55, Philippe Mathieu-Daudé wrote:
> On 25/3/24 14:48, Cédric Le Goater wrote:
>> The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
>> PCA9552 also can drive LEDs. Do all the necessary adjustments to move
>> the models under hw/gpio.
>>
>> Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>> ---
>>   MAINTAINERS                              | 4 ++--
>>   include/hw/{misc => gpio}/pca9552.h      | 0
>>   include/hw/{misc => gpio}/pca9552_regs.h | 0
>>   include/hw/{misc => gpio}/pca9554.h      | 0
>>   include/hw/{misc => gpio}/pca9554_regs.h | 0
>>   hw/arm/aspeed.c                          | 2 +-
>>   hw/{misc => gpio}/pca9552.c              | 4 ++--
>>   hw/{misc => gpio}/pca9554.c              | 4 ++--
>>   tests/qtest/pca9552-test.c               | 2 +-
>>   tests/qtest/pnv-host-i2c-test.c          | 4 ++--
>>   hw/gpio/meson.build                      | 2 ++
>>   hw/gpio/trace-events                     | 4 ++++
>>   hw/misc/meson.build                      | 2 --
>>   hw/misc/trace-events                     | 4 ----
>>   14 files changed, 16 insertions(+), 16 deletions(-)
>>   rename include/hw/{misc => gpio}/pca9552.h (100%)
>>   rename include/hw/{misc => gpio}/pca9552_regs.h (100%)
>>   rename include/hw/{misc => gpio}/pca9554.h (100%)
>>   rename include/hw/{misc => gpio}/pca9554_regs.h (100%)
>>   rename hw/{misc => gpio}/pca9552.c (99%)
>>   rename hw/{misc => gpio}/pca9554.c (99%)
> 
> Thanks, patch queued.

This one is merged,

https://gitlab.com/qemu-project/qemu/-/commit/6328d8ffa6cb9d750e4bfcfd73ac25d3a39ceb63

Thanks,

C.
Philippe Mathieu-Daudé March 26, 2024, 12:05 p.m. UTC | #6
On 26/3/24 11:16, Cédric Le Goater wrote:
> On 3/26/24 10:55, Philippe Mathieu-Daudé wrote:
>> On 25/3/24 14:48, Cédric Le Goater wrote:
>>> The PCA9552 and PCA9554 devices are both I2C GPIO controllers and the
>>> PCA9552 also can drive LEDs. Do all the necessary adjustments to move
>>> the models under hw/gpio.
>>>
>>> Cc: Glenn Miles <milesg@linux.vnet.ibm.com>
>>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>>> ---
>>>   MAINTAINERS                              | 4 ++--
>>>   include/hw/{misc => gpio}/pca9552.h      | 0
>>>   include/hw/{misc => gpio}/pca9552_regs.h | 0
>>>   include/hw/{misc => gpio}/pca9554.h      | 0
>>>   include/hw/{misc => gpio}/pca9554_regs.h | 0
>>>   hw/arm/aspeed.c                          | 2 +-
>>>   hw/{misc => gpio}/pca9552.c              | 4 ++--
>>>   hw/{misc => gpio}/pca9554.c              | 4 ++--
>>>   tests/qtest/pca9552-test.c               | 2 +-
>>>   tests/qtest/pnv-host-i2c-test.c          | 4 ++--
>>>   hw/gpio/meson.build                      | 2 ++
>>>   hw/gpio/trace-events                     | 4 ++++
>>>   hw/misc/meson.build                      | 2 --
>>>   hw/misc/trace-events                     | 4 ----
>>>   14 files changed, 16 insertions(+), 16 deletions(-)
>>>   rename include/hw/{misc => gpio}/pca9552.h (100%)
>>>   rename include/hw/{misc => gpio}/pca9552_regs.h (100%)
>>>   rename include/hw/{misc => gpio}/pca9554.h (100%)
>>>   rename include/hw/{misc => gpio}/pca9554_regs.h (100%)
>>>   rename hw/{misc => gpio}/pca9552.c (99%)
>>>   rename hw/{misc => gpio}/pca9554.c (99%)
>>
>> Thanks, patch queued.
> 
> This one is merged,
> 
> https://gitlab.com/qemu-project/qemu/-/commit/6328d8ffa6cb9d750e4bfcfd73ac25d3a39ceb63

Yes I just realized when updating my tree that Thomas sent a PR with
your patches. Sorry for the noise.

> 
> Thanks,
> 
> C.
> 
>
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 409d7db4d457..a07af6b9d48e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1549,8 +1549,8 @@  M: Glenn Miles <milesg@linux.vnet.ibm.com>
 L: qemu-ppc@nongnu.org
 L: qemu-arm@nongnu.org
 S: Odd Fixes
-F: hw/misc/pca955*.c
-F: include/hw/misc/pca955*.h
+F: hw/gpio/pca955*.c
+F: include/hw/gpio/pca955*.h
 
 virtex_ml507
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
diff --git a/include/hw/misc/pca9552.h b/include/hw/gpio/pca9552.h
similarity index 100%
rename from include/hw/misc/pca9552.h
rename to include/hw/gpio/pca9552.h
diff --git a/include/hw/misc/pca9552_regs.h b/include/hw/gpio/pca9552_regs.h
similarity index 100%
rename from include/hw/misc/pca9552_regs.h
rename to include/hw/gpio/pca9552_regs.h
diff --git a/include/hw/misc/pca9554.h b/include/hw/gpio/pca9554.h
similarity index 100%
rename from include/hw/misc/pca9554.h
rename to include/hw/gpio/pca9554.h
diff --git a/include/hw/misc/pca9554_regs.h b/include/hw/gpio/pca9554_regs.h
similarity index 100%
rename from include/hw/misc/pca9554_regs.h
rename to include/hw/gpio/pca9554_regs.h
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 729f66941462..badf6f6fa09d 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -18,7 +18,7 @@ 
 #include "hw/block/flash.h"
 #include "hw/i2c/i2c_mux_pca954x.h"
 #include "hw/i2c/smbus_eeprom.h"
-#include "hw/misc/pca9552.h"
+#include "hw/gpio/pca9552.h"
 #include "hw/nvram/eeprom_at24c.h"
 #include "hw/sensor/tmp105.h"
 #include "hw/misc/led.h"
diff --git a/hw/misc/pca9552.c b/hw/gpio/pca9552.c
similarity index 99%
rename from hw/misc/pca9552.c
rename to hw/gpio/pca9552.c
index 2ae13af35e93..27d4db068095 100644
--- a/hw/misc/pca9552.c
+++ b/hw/gpio/pca9552.c
@@ -15,8 +15,8 @@ 
 #include "qemu/module.h"
 #include "qemu/bitops.h"
 #include "hw/qdev-properties.h"
-#include "hw/misc/pca9552.h"
-#include "hw/misc/pca9552_regs.h"
+#include "hw/gpio/pca9552.h"
+#include "hw/gpio/pca9552_regs.h"
 #include "hw/irq.h"
 #include "migration/vmstate.h"
 #include "qapi/error.h"
diff --git a/hw/misc/pca9554.c b/hw/gpio/pca9554.c
similarity index 99%
rename from hw/misc/pca9554.c
rename to hw/gpio/pca9554.c
index 5e31696797d9..7d10a64ba7c1 100644
--- a/hw/misc/pca9554.c
+++ b/hw/gpio/pca9554.c
@@ -11,8 +11,8 @@ 
 #include "qemu/module.h"
 #include "qemu/bitops.h"
 #include "hw/qdev-properties.h"
-#include "hw/misc/pca9554.h"
-#include "hw/misc/pca9554_regs.h"
+#include "hw/gpio/pca9554.h"
+#include "hw/gpio/pca9554_regs.h"
 #include "hw/irq.h"
 #include "migration/vmstate.h"
 #include "qapi/error.h"
diff --git a/tests/qtest/pca9552-test.c b/tests/qtest/pca9552-test.c
index ccca2b3d9140..747495769239 100644
--- a/tests/qtest/pca9552-test.c
+++ b/tests/qtest/pca9552-test.c
@@ -12,7 +12,7 @@ 
 #include "libqtest.h"
 #include "libqos/qgraph.h"
 #include "libqos/i2c.h"
-#include "hw/misc/pca9552_regs.h"
+#include "hw/gpio/pca9552_regs.h"
 
 #define PCA9552_TEST_ID   "pca9552-test"
 #define PCA9552_TEST_ADDR 0x60
diff --git a/tests/qtest/pnv-host-i2c-test.c b/tests/qtest/pnv-host-i2c-test.c
index c6351772520c..7f64d597ac1d 100644
--- a/tests/qtest/pnv-host-i2c-test.c
+++ b/tests/qtest/pnv-host-i2c-test.c
@@ -8,8 +8,8 @@ 
  */
 #include "qemu/osdep.h"
 #include "libqtest.h"
-#include "hw/misc/pca9554_regs.h"
-#include "hw/misc/pca9552_regs.h"
+#include "hw/gpio/pca9554_regs.h"
+#include "hw/gpio/pca9552_regs.h"
 #include "pnv-xscom.h"
 
 #define PPC_BIT(bit)            (0x8000000000000000ULL >> (bit))
diff --git a/hw/gpio/meson.build b/hw/gpio/meson.build
index 791e93a97bcc..a7495d196ae9 100644
--- a/hw/gpio/meson.build
+++ b/hw/gpio/meson.build
@@ -2,6 +2,8 @@  system_ss.add(when: 'CONFIG_GPIO_KEY', if_true: files('gpio_key.c'))
 system_ss.add(when: 'CONFIG_GPIO_MPC8XXX', if_true: files('mpc8xxx.c'))
 system_ss.add(when: 'CONFIG_GPIO_PWR', if_true: files('gpio_pwr.c'))
 system_ss.add(when: 'CONFIG_MAX7310', if_true: files('max7310.c'))
+system_ss.add(when: 'CONFIG_PCA9552', if_true: files('pca9552.c'))
+system_ss.add(when: 'CONFIG_PCA9554', if_true: files('pca9554.c'))
 system_ss.add(when: 'CONFIG_PL061', if_true: files('pl061.c'))
 system_ss.add(when: 'CONFIG_ZAURUS', if_true: files('zaurus.c'))
 
diff --git a/hw/gpio/trace-events b/hw/gpio/trace-events
index 9331f4289d5a..b91cc7e9a45d 100644
--- a/hw/gpio/trace-events
+++ b/hw/gpio/trace-events
@@ -13,6 +13,10 @@  nrf51_gpio_write(uint64_t offset, uint64_t value) "offset 0x%" PRIx64 " value 0x
 nrf51_gpio_set(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
 nrf51_gpio_update_output_irq(int64_t line, int64_t value) "line %" PRIi64 " value %" PRIi64
 
+# pca9552.c
+pca955x_gpio_status(const char *description, const char *buf) "%s GPIOs 0-15 [%s]"
+pca955x_gpio_change(const char *description, unsigned id, unsigned prev_state, unsigned current_state) "%s GPIO id:%u status: %u -> %u"
+
 # pl061.c
 pl061_update(const char *id, uint32_t dir, uint32_t data, uint32_t pullups, uint32_t floating) "%s GPIODIR 0x%x GPIODATA 0x%x pullups 0x%x floating 0x%x"
 pl061_set_output(const char *id, int gpio, int level) "%s setting output %d to %d"
diff --git a/hw/misc/meson.build b/hw/misc/meson.build
index 8e1ddc00f9b2..dd6cf89a5449 100644
--- a/hw/misc/meson.build
+++ b/hw/misc/meson.build
@@ -3,8 +3,6 @@  system_ss.add(when: 'CONFIG_EDU', if_true: files('edu.c'))
 system_ss.add(when: 'CONFIG_FW_CFG_DMA', if_true: files('vmcoreinfo.c'))
 system_ss.add(when: 'CONFIG_ISA_DEBUG', if_true: files('debugexit.c'))
 system_ss.add(when: 'CONFIG_ISA_TESTDEV', if_true: files('pc-testdev.c'))
-system_ss.add(when: 'CONFIG_PCA9552', if_true: files('pca9552.c'))
-system_ss.add(when: 'CONFIG_PCA9554', if_true: files('pca9554.c'))
 system_ss.add(when: 'CONFIG_PCI_TESTDEV', if_true: files('pci-testdev.c'))
 system_ss.add(when: 'CONFIG_UNIMP', if_true: files('unimp.c'))
 system_ss.add(when: 'CONFIG_EMPTY_SLOT', if_true: files('empty_slot.c'))
diff --git a/hw/misc/trace-events b/hw/misc/trace-events
index 0374eb33ac52..4896001f35de 100644
--- a/hw/misc/trace-events
+++ b/hw/misc/trace-events
@@ -340,10 +340,6 @@  grlib_apb_pnp_read(uint64_t addr, unsigned size, uint32_t value) "APB PnP read a
 led_set_intensity(const char *color, const char *desc, uint8_t intensity_percent) "LED desc:'%s' color:%s intensity: %u%%"
 led_change_intensity(const char *color, const char *desc, uint8_t old_intensity_percent, uint8_t new_intensity_percent) "LED desc:'%s' color:%s intensity %u%% -> %u%%"
 
-# pca9552.c
-pca955x_gpio_status(const char *description, const char *buf) "%s GPIOs 0-15 [%s]"
-pca955x_gpio_change(const char *description, unsigned id, unsigned prev_state, unsigned current_state) "%s GPIO id:%u status: %u -> %u"
-
 # bcm2835_cprman.c
 bcm2835_cprman_read(uint64_t offset, uint64_t value) "offset:0x%" PRIx64 " value:0x%" PRIx64
 bcm2835_cprman_write(uint64_t offset, uint64_t value) "offset:0x%" PRIx64 " value:0x%" PRIx64