xref: /openbmc/qemu/include/hw/usb/imx-usb-phy.h (revision 4dad0a9aa818698e0735c8352bf7925a1660df6f)
10701a5efSGuenter Roeck #ifndef IMX_USB_PHY_H
20701a5efSGuenter Roeck #define IMX_USB_PHY_H
30701a5efSGuenter Roeck 
40701a5efSGuenter Roeck #include "hw/sysbus.h"
50701a5efSGuenter Roeck #include "qemu/bitops.h"
6db1015e9SEduardo Habkost #include "qom/object.h"
70701a5efSGuenter Roeck 
80701a5efSGuenter Roeck enum IMXUsbPhyRegisters {
90701a5efSGuenter Roeck     USBPHY_PWD,
100701a5efSGuenter Roeck     USBPHY_PWD_SET,
110701a5efSGuenter Roeck     USBPHY_PWD_CLR,
120701a5efSGuenter Roeck     USBPHY_PWD_TOG,
130701a5efSGuenter Roeck     USBPHY_TX,
140701a5efSGuenter Roeck     USBPHY_TX_SET,
150701a5efSGuenter Roeck     USBPHY_TX_CLR,
160701a5efSGuenter Roeck     USBPHY_TX_TOG,
170701a5efSGuenter Roeck     USBPHY_RX,
180701a5efSGuenter Roeck     USBPHY_RX_SET,
190701a5efSGuenter Roeck     USBPHY_RX_CLR,
200701a5efSGuenter Roeck     USBPHY_RX_TOG,
210701a5efSGuenter Roeck     USBPHY_CTRL,
220701a5efSGuenter Roeck     USBPHY_CTRL_SET,
230701a5efSGuenter Roeck     USBPHY_CTRL_CLR,
240701a5efSGuenter Roeck     USBPHY_CTRL_TOG,
250701a5efSGuenter Roeck     USBPHY_STATUS,
260701a5efSGuenter Roeck     USBPHY_DEBUG = 0x14,
270701a5efSGuenter Roeck     USBPHY_DEBUG_SET,
280701a5efSGuenter Roeck     USBPHY_DEBUG_CLR,
290701a5efSGuenter Roeck     USBPHY_DEBUG_TOG,
300701a5efSGuenter Roeck     USBPHY_DEBUG0_STATUS,
310701a5efSGuenter Roeck     USBPHY_DEBUG1 = 0x1c,
320701a5efSGuenter Roeck     USBPHY_DEBUG1_SET,
330701a5efSGuenter Roeck     USBPHY_DEBUG1_CLR,
340701a5efSGuenter Roeck     USBPHY_DEBUG1_TOG,
350701a5efSGuenter Roeck     USBPHY_VERSION,
360701a5efSGuenter Roeck     USBPHY_MAX
370701a5efSGuenter Roeck };
380701a5efSGuenter Roeck 
390701a5efSGuenter Roeck #define USBPHY_CTRL_SFTRST BIT(31)
400701a5efSGuenter Roeck 
410701a5efSGuenter Roeck #define TYPE_IMX_USBPHY "imx.usbphy"
42*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(IMXUSBPHYState, IMX_USBPHY)
430701a5efSGuenter Roeck 
44db1015e9SEduardo Habkost struct IMXUSBPHYState {
450701a5efSGuenter Roeck     /* <private> */
460701a5efSGuenter Roeck     SysBusDevice parent_obj;
470701a5efSGuenter Roeck 
480701a5efSGuenter Roeck     /* <public> */
490701a5efSGuenter Roeck     MemoryRegion iomem;
500701a5efSGuenter Roeck 
510701a5efSGuenter Roeck     uint32_t usbphy[USBPHY_MAX];
52db1015e9SEduardo Habkost };
530701a5efSGuenter Roeck 
540701a5efSGuenter Roeck #endif /* IMX_USB_PHY_H */
55