qemu/include/hw/misc/imx25_ccm.h
Eduardo Habkost db1015e92e Move QOM typedefs and add missing includes
Some typedefs and macros are defined after the type check macros.
This makes it difficult to automatically replace their
definitions with OBJECT_DECLARE_TYPE.

Patch generated using:

 $ ./scripts/codeconverter/converter.py -i \
   --pattern=QOMStructTypedefSplit $(git grep -l '' -- '*.[ch]')

which will split "typdef struct { ... } TypedefName"
declarations.

Followed by:

 $ ./scripts/codeconverter/converter.py -i --pattern=MoveSymbols \
    $(git grep -l '' -- '*.[ch]')

which will:
- move the typedefs and #defines above the type check macros
- add missing #include "qom/object.h" lines if necessary

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20200831210740.126168-9-ehabkost@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20200831210740.126168-10-ehabkost@redhat.com>
Message-Id: <20200831210740.126168-11-ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2020-09-09 09:26:43 -04:00

82 lines
2.2 KiB
C

/*
* IMX25 Clock Control Module
*
* Copyright (C) 2012 NICTA
* Updated by Jean-Christophe Dubois <jcd@tribudubois.net>
*
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
#ifndef IMX25_CCM_H
#define IMX25_CCM_H
#include "hw/misc/imx_ccm.h"
#include "qom/object.h"
#define IMX25_CCM_MPCTL_REG 0
#define IMX25_CCM_UPCTL_REG 1
#define IMX25_CCM_CCTL_REG 2
#define IMX25_CCM_CGCR0_REG 3
#define IMX25_CCM_CGCR1_REG 4
#define IMX25_CCM_CGCR2_REG 5
#define IMX25_CCM_PCDR0_REG 6
#define IMX25_CCM_PCDR1_REG 7
#define IMX25_CCM_PCDR2_REG 8
#define IMX25_CCM_PCDR3_REG 9
#define IMX25_CCM_RCSR_REG 10
#define IMX25_CCM_CRDR_REG 11
#define IMX25_CCM_DCVR0_REG 12
#define IMX25_CCM_DCVR1_REG 13
#define IMX25_CCM_DCVR2_REG 14
#define IMX25_CCM_DCVR3_REG 15
#define IMX25_CCM_LTR0_REG 16
#define IMX25_CCM_LTR1_REG 17
#define IMX25_CCM_LTR2_REG 18
#define IMX25_CCM_LTR3_REG 19
#define IMX25_CCM_LTBR0_REG 20
#define IMX25_CCM_LTBR1_REG 21
#define IMX25_CCM_PMCR0_REG 22
#define IMX25_CCM_PMCR1_REG 23
#define IMX25_CCM_PMCR2_REG 24
#define IMX25_CCM_MCR_REG 25
#define IMX25_CCM_LPIMR0_REG 26
#define IMX25_CCM_LPIMR1_REG 27
#define IMX25_CCM_MAX_REG 28
/* CCTL */
#define CCTL_ARM_CLK_DIV_SHIFT (30)
#define CCTL_ARM_CLK_DIV_MASK (0x3)
#define CCTL_AHB_CLK_DIV_SHIFT (28)
#define CCTL_AHB_CLK_DIV_MASK (0x3)
#define CCTL_MPLL_BYPASS_SHIFT (22)
#define CCTL_MPLL_BYPASS_MASK (0x1)
#define CCTL_USB_DIV_SHIFT (16)
#define CCTL_USB_DIV_MASK (0x3F)
#define CCTL_ARM_SRC_SHIFT (13)
#define CCTL_ARM_SRC_MASK (0x1)
#define CCTL_UPLL_DIS_SHIFT (23)
#define CCTL_UPLL_DIS_MASK (0x1)
#define EXTRACT(value, name) (((value) >> CCTL_##name##_SHIFT) \
& CCTL_##name##_MASK)
#define INSERT(value, name) (((value) & CCTL_##name##_MASK) << \
CCTL_##name##_SHIFT)
#define TYPE_IMX25_CCM "imx25.ccm"
typedef struct IMX25CCMState IMX25CCMState;
#define IMX25_CCM(obj) OBJECT_CHECK(IMX25CCMState, (obj), TYPE_IMX25_CCM)
struct IMX25CCMState {
/* <private> */
IMXCCMState parent_obj;
/* <public> */
MemoryRegion iomem;
uint32_t reg[IMX25_CCM_MAX_REG];
};
#endif /* IMX25_CCM_H */