Exemplo n.º 1
0
static void configure_gpios(spi_dev *dev, bool as_master) {
    const struct spi_pins *pins = dev_to_spi_pins(dev);

    if (!pins) {
        return;
    }

    const stm32_pin_info *nssi  = &PIN_MAP[pins->nss];
    const stm32_pin_info *scki  = &PIN_MAP[pins->sck];
    const stm32_pin_info *misoi = &PIN_MAP[pins->miso];
    const stm32_pin_info *mosii = &PIN_MAP[pins->mosi];

    disable_pwm(nssi);
    disable_pwm(scki);
    disable_pwm(misoi);
    disable_pwm(mosii);

    spi_gpio_cfg(as_master,
                 nssi->gpio_device,
                 nssi->gpio_bit,
                 scki->gpio_device,
                 scki->gpio_bit,
                 misoi->gpio_bit,
                 mosii->gpio_bit);
}
Exemplo n.º 2
0
static void
spi_config_gpio(struct s3c2410_spi *device)
{
    uintptr_t ms, p_ms;
    (void)device;

    /* XXX what to do if fail? -gl */
    if (gpio_base == NULL)
    {
        ms = memsection_create_user(0x1000, &p_ms);
        hardware_back_memsection(ms, S3C2410_GPIO_PHYS, L4_IOMemory);
        gpio_base = (uint32_t *)p_ms;
    }

//    Turn on the backlight
    spi_gpio_cfg(gpio_base, S3C2410_GPB0, 0x01);
    spi_gpio_set(gpio_base, S3C2410_GPB0, 1);

//    But not the vibrator!
//    spi_gpio_cfg(gpio_base, S3C2410_GPB3, S3C2410_GPG3_OUTPUT);
//    spi_gpio_set(gpio_base, S3C2410_GPB3, 1);

    /* Put the MOSI/MISO pins in a known-state */
    spi_gpio_cfg(gpio_base, S3C2410_GPG6, S3C2410_GPG6_OUTPUT);

    spi_gpio_cfg(gpio_base, S3C2410_GPG7, S3C2410_GPG7_OUTPUT);
    spi_gpio_set(gpio_base, S3C2410_GPG6, 1);
    spi_gpio_set(gpio_base, S3C2410_GPG7, 1);

    /* disable CS */
    spi_gpio_cfg(gpio_base, S3C2410_GPG3, S3C2410_GPG3_OUTPUT);
    spi_gpio_set(gpio_base, S3C2410_GPG3, 1);

    /*
     * Set the GPIO pins to functional mode, i.e. we will use
     * SPI as a UART instead of bit-banging - nt
     */
    spi_gpio_cfg(gpio_base, S3C2410_GPG5, S3C2410_GPG5_SPIMISO1);
    spi_gpio_cfg(gpio_base, S3C2410_GPG6, S3C2410_GPG6_SPIMOSI1);
    spi_gpio_cfg(gpio_base, S3C2410_GPG7, S3C2410_GPG7_SPICLK1);

    /*
     * conf pull-up register
     * get LCM out of reset
     *
     * nt - don't worry, this is done by u-boot
     */

    return;
}