/* * Copyright 2017, Data61 * Commonwealth Scientific and Industrial Research Organisation (CSIRO) * ABN 41 687 119 230. * * This software may be distributed and modified according to the terms of * the BSD 2-Clause license. Note that NO WARRANTY is provided. * See "LICENSE_BSD2.txt" for details. * * @TAG(DATA61_BSD) */ #include "../../mach/exynos/mux.h" #include static struct mux_feature_data i2c0_data[] = { { .port = GPD1, .pin = 0, MUXVALUE_CPD(2, PUD_PULLUP, DRV1X)}, { .port = GPD1, .pin = 1, MUXVALUE_CPD(2, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c1_data[] = { { .port = GPD1, .pin = 2, MUXVALUE_CPD(2, PUD_PULLUP, DRV1X)}, { .port = GPD1, .pin = 3, MUXVALUE_CPD(2, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c2_data[] = { { .port = GPA0, .pin = 6, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPA0, .pin = 7, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c3_data[] = { { .port = GPA1, .pin = 2, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPA1, .pin = 3, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c4_data[] = { { .port = GPB, .pin = 0, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPB, .pin = 1, MUXVALUE_CPD(2, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c5_data[] = { { .port = GPB, .pin = 2, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPB, .pin = 3, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c6_data[] = { { .port = GPC1, .pin = 3, MUXVALUE_CPD(4, PUD_PULLUP, DRV1X)}, { .port = GPC1, .pin = 4, MUXVALUE_CPD(4, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data i2c7_data[] = { { .port = GPD0, .pin = 2, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPD0, .pin = 3, MUXVALUE_CPD(3, PUD_PULLUP, DRV1X)}, { .port = GPIOPORT_NONE } }; /* SPI */ static struct mux_feature_data spi0_data[] = { { .port = GPB, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPB, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPB, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPB, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data spi1_data[] = { { .port = GPB, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPB, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPB, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPB, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data spi2_data[] = { { .port = GPC1, .pin = 1, .value = MUXVALUE_CPD(5, PUD_PULLUP, DRV3X)}, { .port = GPC1, .pin = 2, .value = MUXVALUE_CPD(5, PUD_PULLUP, DRV3X)}, { .port = GPC1, .pin = 3, .value = MUXVALUE_CPD(5, PUD_PULLUP, DRV3X)}, { .port = GPC1, .pin = 4, .value = MUXVALUE_CPD(5, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; /* UART */ static struct mux_feature_data uart0_data[] = { { .port = GPA0, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA0, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart0_flow_data[] = { { .port = GPA0, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA0, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart1_data[] = { { .port = GPA0, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA0, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart1_flow_data[] = { { .port = GPA0, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA0, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart2_data[] = { { .port = GPA1, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA1, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart2_flow_data[] = { { .port = GPA1, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA1, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart3_data[] = { { .port = GPA1, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA1, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; static struct mux_feature_data uart3_flow_data[] = { { .port = GPA1, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPA1, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPIOPORT_NONE } }; /* EBI */ static struct mux_feature_data srom_data[] = { /* SROM_CSn[3:0] */ { .port = GPY0, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY0, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY0, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY0, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* SROM_WAITn */ { .port = GPY1, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* Terminate the list */ { .port = GPIOPORT_NONE } }; static struct mux_feature_data ebi_data[] = { /* EBI_OEn */ { .port = GPY0, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* EBI_WEn */ { .port = GPY0, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* EBI_BE[1:0] */ { .port = GPY1, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY1, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* EBI_ADDR[15:0] */ { .port = GPY3, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY3, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY4, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* EBI_DATA[15:0] */ { .port = GPY5, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY5, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 0, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 1, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 2, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 3, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 4, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 5, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 6, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, { .port = GPY6, .pin = 7, .value = MUXVALUE_CPD(2, PUD_PULLUP, DRV3X)}, /* Terminate the list */ { .port = GPIOPORT_NONE } }; struct mux_feature_data* feature_data[] = { [MUX_I2C0] = i2c0_data, [MUX_I2C1] = i2c1_data, [MUX_I2C2] = i2c2_data, [MUX_I2C3] = i2c3_data, [MUX_I2C4] = i2c4_data, [MUX_I2C5] = i2c5_data, [MUX_I2C6] = i2c6_data, [MUX_I2C7] = i2c7_data, [MUX_SPI0] = spi0_data, [MUX_SPI1] = spi1_data, [MUX_SPI2] = spi2_data, [MUX_UART0] = uart0_data, [MUX_UART1] = uart1_data, [MUX_UART2] = uart2_data, [MUX_UART3] = uart3_data, [MUX_UART0_FLOW] = uart0_flow_data, [MUX_UART1_FLOW] = uart1_flow_data, [MUX_UART2_FLOW] = uart2_flow_data, [MUX_UART3_FLOW] = uart3_flow_data, [MUX_EBI] = ebi_data, [MUX_SROM] = srom_data, };