cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

setup-sdhci-gpio-s3c64xx.c (1639B)


      1// SPDX-License-Identifier: GPL-2.0
      2//
      3// Copyright 2008 Simtec Electronics
      4//	Ben Dooks <ben@simtec.co.uk>
      5//	http://armlinux.simtec.co.uk/
      6//
      7// S3C64XX - Helper functions for setting up SDHCI device(s) GPIO (HSMMC)
      8
      9#include <linux/kernel.h>
     10#include <linux/types.h>
     11#include <linux/interrupt.h>
     12#include <linux/platform_device.h>
     13#include <linux/io.h>
     14#include <linux/gpio.h>
     15
     16#include "gpio-cfg.h"
     17#include "sdhci.h"
     18#include "gpio-samsung.h"
     19
     20void s3c64xx_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
     21{
     22	struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
     23
     24	/* Set all the necessary GPG pins to special-function 2 */
     25	s3c_gpio_cfgrange_nopull(S3C64XX_GPG(0), 2 + width, S3C_GPIO_SFN(2));
     26
     27	if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
     28		s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP);
     29		s3c_gpio_cfgpin(S3C64XX_GPG(6), S3C_GPIO_SFN(2));
     30	}
     31}
     32
     33void s3c64xx_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
     34{
     35	struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
     36
     37	/* Set all the necessary GPH pins to special-function 2 */
     38	s3c_gpio_cfgrange_nopull(S3C64XX_GPH(0), 2 + width, S3C_GPIO_SFN(2));
     39
     40	if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
     41		s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP);
     42		s3c_gpio_cfgpin(S3C64XX_GPG(6), S3C_GPIO_SFN(3));
     43	}
     44}
     45
     46void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
     47{
     48	/* Set all the necessary GPH pins to special-function 3 */
     49	s3c_gpio_cfgrange_nopull(S3C64XX_GPH(6), width, S3C_GPIO_SFN(3));
     50
     51	/* Set all the necessary GPC pins to special-function 3 */
     52	s3c_gpio_cfgrange_nopull(S3C64XX_GPC(4), 2, S3C_GPIO_SFN(3));
     53}