1/*
2 * Copyright 2017, Data61
3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4 * ABN 41 687 119 230.
5 *
6 * This software may be distributed and modified according to the terms of
7 * the BSD 2-Clause license. Note that NO WARRANTY is provided.
8 * See "LICENSE_BSD2.txt" for details.
9 *
10 * @TAG(DATA61_BSD)
11 */
12
13#pragma once
14
15#define EXYNOS_GPIOLEFT_PADDR    0x11400000
16#define EXYNOS_GPIORIGHT_PADDR   0x11000000
17#define EXYNOS_GPIOC2C_PADDR     0x106E0000
18#define EXYNOS_GPIOAUDIO_PADDR   0x03860000
19
20#define EXYNOS_GPIOX_SIZE        0x1000
21#define EXYNOS_GPIOLEFT_SIZE     EXYNOS_GPIOX_SIZE
22#define EXYNOS_GPIORIGHT_SIZE    EXYNOS_GPIOX_SIZE
23#define EXYNOS_GPIOC2C_SIZE      EXYNOS_GPIOX_SIZE
24#define EXYNOS_GPIOAUDIO_SIZE    EXYNOS_GPIOX_SIZE
25
26enum mux_feature {
27    MUX_I2C0,
28    MUX_I2C1,
29    MUX_I2C2,
30    MUX_I2C3,
31    MUX_I2C4,
32    MUX_I2C5,
33    MUX_I2C6,
34    MUX_I2C7,
35    MUX_SPI0,
36    MUX_SPI1,
37    MUX_SPI2,
38    MUX_UART0,
39    MUX_UART0_FLOW,
40    MUX_UART1,
41    MUX_UART1_FLOW,
42    MUX_UART2,
43    MUX_UART2_FLOW,
44    MUX_UART3,
45    MUX_UART3_FLOW,
46    MUX_SROM,
47    MUX_EBI,
48    NMUX_FEATURES
49};
50
51/**
52 * Initialise the mux subsystem with pre-mapped regions.
53 * @param[in]  bankX  A virtual mapping for bank X of the MUX subsystem.
54 *                    bank3 and bank4 are present for compatibility reasons
55 *                    only and can be passed as NULL.
56 * @param[out] mux    On success, this will be filled with the appropriate
57 *                    subsystem data.
58 * @return            0 on success
59 */
60int exynos_mux_init(void* bank1,
61                    void* bank2,
62                    void* bank3,
63                    void* bank4,
64                    mux_sys_t* mux);
65
66