Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'boards-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC board changes from Arnd Bergmann:
"As we continue to replace board files with device tree descriptions,
this part of the ARM support is getting smaller. We have basically
just defconfig changes here this time, and a significant number of
Renesas shmobile changes, as Renesas is still in the process of
deprecating board file support"

* tag 'boards-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (92 commits)
ARM: enable fhandle in multi_v7_defconfig
ARM: tegra: enable fhandle in tegra_defconfig
ARM: update multi_v7_defconfig for Tegra
ARM: add Marvell Dove and some drivers to multi_v7 defconfig
ARM: fix duplicate symbols in multi_v5_defconfig
ARM: pxa: add gpio keys information
ARM: tegra: defconfig updates
ARM: config: keystone: enable AEMIF/NAND support
ARM: qcom: Enable basic support for Qualcomm platforms in multi_v7_defconfig
ARM: kirkwood: Add HP T5325 devices to {multi|mvebu}_v5_defconfig
ARM: config: Add mvebu_v5_defconfig
ARM: config: Add a multi_v5_defconfig
ARM: shmobile: r7s72100: update defconfig for I2C usage
ARM: shmobile: Remove Lager DT reference legacy clock bits
ARM: shmobile: Remove Koelsch DT reference legacy clock bits
ARM: shmobile: Remove KZM9D board code
ARM: mvebu: update defconfigs for Armada 375 and 38x
ARM: dove: Enable watchdog support in the defconfig
ARM: mvebu: Enable watchdog support in defconfig
ARM: config: keystone: enable led support
...

+2196 -216
+3 -1
arch/arm/boot/dts/r8a7778-bockw-reference.dts
··· 17 17 /dts-v1/; 18 18 #include "r8a7778.dtsi" 19 19 #include <dt-bindings/interrupt-controller/irq.h> 20 + #include <dt-bindings/gpio/gpio.h> 20 21 21 22 / { 22 23 model = "bockw"; ··· 85 84 86 85 sdhi0_pins: sd0 { 87 86 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", 88 - "sdhi0_cd", "sdhi0_wp"; 87 + "sdhi0_cd"; 89 88 renesas,function = "sdhi0"; 90 89 }; 91 90 ··· 102 101 vmmc-supply = <&fixedregulator3v3>; 103 102 bus-width = <4>; 104 103 status = "okay"; 104 + wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>; 105 105 }; 106 106 107 107 &hspi0 {
+2
arch/arm/configs/ape6evm_defconfig
··· 48 48 # CONFIG_IPV6_SIT is not set 49 49 CONFIG_NETFILTER=y 50 50 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 51 + CONFIG_DEVTMPFS=y 52 + CONFIG_DEVTMPFS_MOUNT=y 51 53 # CONFIG_FW_LOADER_USER_HELPER is not set 52 54 CONFIG_NETDEVICES=y 53 55 # CONFIG_NET_CADENCE is not set
+2
arch/arm/configs/armadillo800eva_defconfig
··· 58 58 # CONFIG_IPV6 is not set 59 59 # CONFIG_WIRELESS is not set 60 60 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 61 + CONFIG_DEVTMPFS=y 62 + CONFIG_DEVTMPFS_MOUNT=y 61 63 CONFIG_SCSI=y 62 64 CONFIG_BLK_DEV_SD=y 63 65 CONFIG_MD=y
+2
arch/arm/configs/bockw_defconfig
··· 44 44 # CONFIG_INET_DIAG is not set 45 45 # CONFIG_IPV6 is not set 46 46 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 47 + CONFIG_DEVTMPFS=y 48 + CONFIG_DEVTMPFS_MOUNT=y 47 49 # CONFIG_STANDALONE is not set 48 50 # CONFIG_PREVENT_FIRMWARE_BUILD is not set 49 51 # CONFIG_FW_LOADER is not set
+2 -1
arch/arm/configs/dove_defconfig
··· 48 48 CONFIG_MTD_CFI_STAA=y 49 49 CONFIG_MTD_PHYSMAP=y 50 50 CONFIG_MTD_M25P80=y 51 - CONFIG_MTD_UBI=y 52 51 CONFIG_BLK_DEV_LOOP=y 53 52 CONFIG_BLK_DEV_RAM=y 54 53 CONFIG_BLK_DEV_RAM_COUNT=1 ··· 79 80 # CONFIG_HWMON is not set 80 81 CONFIG_THERMAL=y 81 82 CONFIG_DOVE_THERMAL=y 83 + CONFIG_WATCHDOG=y 84 + CONFIG_ORION_WATCHDOG=y 82 85 CONFIG_USB=y 83 86 CONFIG_USB_XHCI_HCD=y 84 87 CONFIG_USB_EHCI_HCD=y
+7 -1
arch/arm/configs/genmai_defconfig
··· 50 50 # CONFIG_IPV6 is not set 51 51 # CONFIG_WIRELESS is not set 52 52 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 53 + CONFIG_DEVTMPFS=y 54 + CONFIG_DEVTMPFS_MOUNT=y 55 + CONFIG_EEPROM_AT24=y 53 56 CONFIG_NETDEVICES=y 54 57 # CONFIG_NET_CORE is not set 55 58 # CONFIG_NET_VENDOR_ARC is not set ··· 81 78 CONFIG_SERIAL_SH_SCI_NR_UARTS=10 82 79 CONFIG_SERIAL_SH_SCI_CONSOLE=y 83 80 # CONFIG_HW_RANDOM is not set 84 - CONFIG_I2C_SH_MOBILE=y 81 + CONFIG_I2C_CHARDEV=y 82 + CONFIG_I2C_RIIC=y 83 + CONFIG_SPI=y 84 + CONFIG_SPI_RSPI=y 85 85 # CONFIG_HWMON is not set 86 86 CONFIG_THERMAL=y 87 87 CONFIG_RCAR_THERMAL=y
+15
arch/arm/configs/keystone_defconfig
··· 111 111 CONFIG_MTD_PLATRAM=y 112 112 CONFIG_MTD_M25P80=y 113 113 CONFIG_MTD_NAND=y 114 + CONFIG_MTD_NAND_DAVINCI=y 114 115 CONFIG_MTD_UBI=y 115 116 CONFIG_PROC_DEVICETREE=y 116 117 CONFIG_BLK_DEV_LOOP=y ··· 132 131 CONFIG_SPI_SPIDEV=y 133 132 # CONFIG_HWMON is not set 134 133 CONFIG_WATCHDOG=y 134 + CONFIG_WATCHDOG_CORE=y 135 + CONFIG_DAVINCI_WATCHDOG=y 135 136 CONFIG_USB=y 136 137 CONFIG_USB_DEBUG=y 137 138 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y ··· 148 145 CONFIG_TI_EDMA=y 149 146 CONFIG_COMMON_CLK_DEBUG=y 150 147 CONFIG_MEMORY=y 148 + CONFIG_TI_AEMIF=y 151 149 CONFIG_EXT4_FS=y 152 150 CONFIG_EXT4_FS_POSIX_ACL=y 153 151 CONFIG_MSDOS_FS=y ··· 181 177 CONFIG_CRYPTO_ANSI_CPRNG=y 182 178 CONFIG_CRYPTO_USER_API_HASH=y 183 179 CONFIG_CRYPTO_USER_API_SKCIPHER=y 180 + CONFIG_GPIOLIB=y 181 + CONFIG_GPIO_SYSFS=y 182 + CONFIG_GPIO_DAVINCI=y 183 + CONFIG_LEDS_CLASS=y 184 + CONFIG_NEW_LEDS=y 185 + CONFIG_LEDS_GPIO=y 186 + CONFIG_LEDS_TRIGGERS=y 187 + CONFIG_LEDS_TRIGGER_ONESHOT=y 188 + CONFIG_LEDS_TRIGGER_HEARTBEAT=y 189 + CONFIG_LEDS_TRIGGER_BACKLIGHT=y 190 + CONFIG_LEDS_TRIGGER_GPIO=y
+20 -1
arch/arm/configs/koelsch_defconfig
··· 8 8 CONFIG_EMBEDDED=y 9 9 CONFIG_PERF_EVENTS=y 10 10 CONFIG_SLAB=y 11 - # CONFIG_BLOCK is not set 12 11 CONFIG_ARCH_SHMOBILE_LEGACY=y 13 12 CONFIG_ARCH_R8A7791=y 14 13 CONFIG_MACH_KOELSCH=y ··· 34 35 CONFIG_INET=y 35 36 CONFIG_IP_PNP=y 36 37 CONFIG_IP_PNP_DHCP=y 38 + CONFIG_DEVTMPFS=y 39 + CONFIG_DEVTMPFS_MOUNT=y 37 40 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 41 + CONFIG_BLK_DEV_SD=y 42 + CONFIG_ATA=y 43 + CONFIG_SATA_RCAR=y 44 + CONFIG_MTD=y 45 + CONFIG_MTD_M25P80=y 38 46 CONFIG_NETDEVICES=y 39 47 # CONFIG_NET_VENDOR_ARC is not set 40 48 # CONFIG_NET_CADENCE is not set ··· 59 53 # CONFIG_NET_VENDOR_VIA is not set 60 54 # CONFIG_NET_VENDOR_WIZNET is not set 61 55 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set 56 + CONFIG_KEYBOARD_GPIO=y 62 57 # CONFIG_INPUT_MOUSE is not set 63 58 # CONFIG_LEGACY_PTYS is not set 64 59 CONFIG_SERIAL_SH_SCI=y 65 60 CONFIG_SERIAL_SH_SCI_NR_UARTS=20 66 61 CONFIG_SERIAL_SH_SCI_CONSOLE=y 62 + CONFIG_I2C=y 63 + CONFIG_I2C_RCAR=y 64 + CONFIG_SPI=y 65 + CONFIG_SPI_RSPI=y 66 + CONFIG_GPIOLIB=y 67 + CONFIG_GPIO_RCAR=y 67 68 # CONFIG_HWMON is not set 68 69 CONFIG_THERMAL=y 69 70 CONFIG_RCAR_THERMAL=y 71 + CONFIG_REGULATOR=y 72 + CONFIG_REGULATOR_FIXED_VOLTAGE=y 73 + CONFIG_REGULATOR_GPIO=y 70 74 # CONFIG_HID is not set 71 75 # CONFIG_USB_SUPPORT is not set 76 + CONFIG_MMC=y 77 + CONFIG_MMC_SDHI=y 72 78 CONFIG_NEW_LEDS=y 73 79 CONFIG_LEDS_CLASS=y 80 + CONFIG_LEDS_GPIO=y 74 81 # CONFIG_IOMMU_SUPPORT is not set 75 82 # CONFIG_DNOTIFY is not set 76 83 CONFIG_TMPFS=y
-89
arch/arm/configs/kzm9d_defconfig
··· 1 - # CONFIG_ARM_PATCH_PHYS_VIRT is not set 2 - CONFIG_EXPERIMENTAL=y 3 - CONFIG_SYSVIPC=y 4 - CONFIG_NO_HZ=y 5 - CONFIG_IKCONFIG=y 6 - CONFIG_IKCONFIG_PROC=y 7 - CONFIG_LOG_BUF_SHIFT=16 8 - CONFIG_CC_OPTIMIZE_FOR_SIZE=y 9 - CONFIG_SYSCTL_SYSCALL=y 10 - CONFIG_EMBEDDED=y 11 - CONFIG_PERF_EVENTS=y 12 - CONFIG_SLAB=y 13 - # CONFIG_BLK_DEV_BSG is not set 14 - # CONFIG_IOSCHED_DEADLINE is not set 15 - # CONFIG_IOSCHED_CFQ is not set 16 - CONFIG_ARCH_SHMOBILE_LEGACY=y 17 - CONFIG_ARCH_EMEV2=y 18 - CONFIG_MACH_KZM9D=y 19 - CONFIG_MEMORY_START=0x40000000 20 - CONFIG_MEMORY_SIZE=0x10000000 21 - # CONFIG_SH_TIMER_TMU is not set 22 - # CONFIG_SWP_EMULATE is not set 23 - # CONFIG_CACHE_L2X0 is not set 24 - CONFIG_SMP=y 25 - CONFIG_NR_CPUS=2 26 - CONFIG_HOTPLUG_CPU=y 27 - # CONFIG_LOCAL_TIMERS is not set 28 - CONFIG_AEABI=y 29 - # CONFIG_OABI_COMPAT is not set 30 - # CONFIG_CROSS_MEMORY_ATTACH is not set 31 - CONFIG_FORCE_MAX_ZONEORDER=13 32 - CONFIG_ZBOOT_ROM_TEXT=0x0 33 - CONFIG_ZBOOT_ROM_BSS=0x0 34 - CONFIG_ARM_APPENDED_DTB=y 35 - CONFIG_AUTO_ZRELADDR=y 36 - CONFIG_VFP=y 37 - # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 38 - CONFIG_PM_RUNTIME=y 39 - CONFIG_NET=y 40 - CONFIG_PACKET=y 41 - CONFIG_UNIX=y 42 - CONFIG_INET=y 43 - CONFIG_IP_PNP=y 44 - CONFIG_IP_PNP_DHCP=y 45 - # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 46 - # CONFIG_INET_XFRM_MODE_TUNNEL is not set 47 - # CONFIG_INET_XFRM_MODE_BEET is not set 48 - # CONFIG_INET_LRO is not set 49 - # CONFIG_INET_DIAG is not set 50 - # CONFIG_IPV6 is not set 51 - # CONFIG_WIRELESS is not set 52 - CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 53 - # CONFIG_BLK_DEV is not set 54 - CONFIG_NETDEVICES=y 55 - # CONFIG_NET_VENDOR_BROADCOM is not set 56 - # CONFIG_NET_VENDOR_CHELSIO is not set 57 - # CONFIG_NET_VENDOR_CIRRUS is not set 58 - # CONFIG_NET_VENDOR_FARADAY is not set 59 - # CONFIG_NET_VENDOR_INTEL is not set 60 - # CONFIG_NET_VENDOR_MARVELL is not set 61 - # CONFIG_NET_VENDOR_MICREL is not set 62 - # CONFIG_NET_VENDOR_NATSEMI is not set 63 - # CONFIG_NET_VENDOR_SEEQ is not set 64 - CONFIG_SMSC911X=y 65 - # CONFIG_NET_VENDOR_STMICRO is not set 66 - # CONFIG_NET_VENDOR_WIZNET is not set 67 - # CONFIG_WLAN is not set 68 - # CONFIG_INPUT_MOUSEDEV is not set 69 - # CONFIG_INPUT_KEYBOARD is not set 70 - # CONFIG_INPUT_MOUSE is not set 71 - # CONFIG_SERIO is not set 72 - # CONFIG_LEGACY_PTYS is not set 73 - # CONFIG_DEVKMEM is not set 74 - CONFIG_SERIAL_8250=y 75 - CONFIG_SERIAL_8250_CONSOLE=y 76 - CONFIG_SERIAL_8250_EM=y 77 - # CONFIG_HW_RANDOM is not set 78 - CONFIG_GPIOLIB=y 79 - CONFIG_GPIO_EM=y 80 - # CONFIG_HWMON is not set 81 - # CONFIG_HID_SUPPORT is not set 82 - # CONFIG_USB_SUPPORT is not set 83 - # CONFIG_IOMMU_SUPPORT is not set 84 - # CONFIG_DNOTIFY is not set 85 - CONFIG_TMPFS=y 86 - # CONFIG_MISC_FILESYSTEMS is not set 87 - CONFIG_NFS_FS=y 88 - CONFIG_ROOT_NFS=y 89 - # CONFIG_FTRACE is not set
+2
arch/arm/configs/kzm9g_defconfig
··· 60 60 CONFIG_SH_IRDA=y 61 61 # CONFIG_WIRELESS is not set 62 62 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 63 + CONFIG_DEVTMPFS=y 64 + CONFIG_DEVTMPFS_MOUNT=y 63 65 CONFIG_SCSI=y 64 66 CONFIG_BLK_DEV_SD=y 65 67 CONFIG_NETDEVICES=y
+21
arch/arm/configs/lager_defconfig
··· 49 49 # CONFIG_IPV6 is not set 50 50 # CONFIG_WIRELESS is not set 51 51 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 52 + CONFIG_DEVTMPFS=y 53 + CONFIG_DEVTMPFS_MOUNT=y 54 + CONFIG_MTD=y 55 + CONFIG_MTD_M25P80=y 56 + CONFIG_BLK_DEV_SD=y 57 + CONFIG_ATA=y 58 + CONFIG_SATA_RCAR=y 52 59 CONFIG_NETDEVICES=y 53 60 # CONFIG_NET_CORE is not set 54 61 # CONFIG_NET_VENDOR_ARC is not set ··· 88 81 CONFIG_I2C=y 89 82 CONFIG_I2C_GPIO=y 90 83 CONFIG_I2C_RCAR=y 84 + CONFIG_SPI=y 85 + CONFIG_SPI_RSPI=y 91 86 CONFIG_GPIO_SH_PFC=y 92 87 CONFIG_GPIOLIB=y 93 88 CONFIG_GPIO_RCAR=y ··· 99 90 CONFIG_REGULATOR=y 100 91 CONFIG_REGULATOR_FIXED_VOLTAGE=y 101 92 CONFIG_REGULATOR_GPIO=y 93 + CONFIG_MEDIA_SUPPORT=y 94 + CONFIG_MEDIA_CAMERA_SUPPORT=y 95 + CONFIG_V4L_PLATFORM_DRIVERS=y 96 + CONFIG_SOC_CAMERA=y 97 + CONFIG_SOC_CAMERA_PLATFORM=y 98 + CONFIG_VIDEO_RCAR_VIN=y 99 + # CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set 100 + CONFIG_VIDEO_ADV7180=y 102 101 CONFIG_DRM=y 103 102 CONFIG_DRM_RCAR_DU=y 103 + CONFIG_SOUND=y 104 + CONFIG_SND=y 105 + CONFIG_SND_SOC=y 106 + CONFIG_SND_SOC_RCAR=y 104 107 # CONFIG_USB_SUPPORT is not set 105 108 CONFIG_MMC=y 106 109 CONFIG_MMC_SDHI=y
+2
arch/arm/configs/mackerel_defconfig
··· 42 42 # CONFIG_IPV6 is not set 43 43 # CONFIG_WIRELESS is not set 44 44 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 45 + CONFIG_DEVTMPFS=y 46 + CONFIG_DEVTMPFS_MOUNT=y 45 47 # CONFIG_FIRMWARE_IN_KERNEL is not set 46 48 CONFIG_MTD=y 47 49 CONFIG_MTD_CONCAT=y
+2
arch/arm/configs/marzen_defconfig
··· 43 43 # CONFIG_IPV6 is not set 44 44 # CONFIG_WIRELESS is not set 45 45 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 46 + CONFIG_DEVTMPFS=y 47 + CONFIG_DEVTMPFS_MOUNT=y 46 48 # CONFIG_STANDALONE is not set 47 49 # CONFIG_PREVENT_FIRMWARE_BUILD is not set 48 50 # CONFIG_FW_LOADER is not set
+190
arch/arm/configs/multi_v5_defconfig
··· 1 + CONFIG_SYSVIPC=y 2 + CONFIG_NO_HZ=y 3 + CONFIG_HIGH_RES_TIMERS=y 4 + CONFIG_LOG_BUF_SHIFT=19 5 + CONFIG_PROFILING=y 6 + CONFIG_OPROFILE=y 7 + CONFIG_KPROBES=y 8 + CONFIG_MODULES=y 9 + CONFIG_MODULE_UNLOAD=y 10 + # CONFIG_BLK_DEV_BSG is not set 11 + # CONFIG_ARCH_MULTI_V7 is not set 12 + CONFIG_ARCH_MVEBU=y 13 + CONFIG_MACH_KIRKWOOD=y 14 + CONFIG_MACH_T5325=y 15 + CONFIG_ARCH_MXC=y 16 + CONFIG_MACH_IMX25_DT=y 17 + CONFIG_MACH_IMX27_DT=y 18 + CONFIG_ARCH_U300=y 19 + CONFIG_PCI_MVEBU=y 20 + CONFIG_PREEMPT=y 21 + CONFIG_AEABI=y 22 + CONFIG_HIGHMEM=y 23 + CONFIG_ZBOOT_ROM_TEXT=0x0 24 + CONFIG_ZBOOT_ROM_BSS=0x0 25 + CONFIG_ARM_APPENDED_DTB=y 26 + CONFIG_ARM_ATAG_DTB_COMPAT=y 27 + CONFIG_CPU_FREQ=y 28 + CONFIG_CPU_FREQ_STAT_DETAILS=y 29 + CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y 30 + CONFIG_CPU_IDLE=y 31 + CONFIG_ARM_KIRKWOOD_CPUIDLE=y 32 + CONFIG_NET=y 33 + CONFIG_PACKET=y 34 + CONFIG_UNIX=y 35 + CONFIG_INET=y 36 + CONFIG_IP_MULTICAST=y 37 + CONFIG_IP_PNP=y 38 + CONFIG_IP_PNP_DHCP=y 39 + CONFIG_IP_PNP_BOOTP=y 40 + # CONFIG_IPV6 is not set 41 + CONFIG_NET_PKTGEN=m 42 + CONFIG_CFG80211=y 43 + CONFIG_MAC80211=y 44 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 45 + CONFIG_MTD=y 46 + CONFIG_MTD_CMDLINE_PARTS=y 47 + CONFIG_MTD_BLOCK=y 48 + CONFIG_MTD_CFI=y 49 + CONFIG_MTD_JEDECPROBE=y 50 + CONFIG_MTD_CFI_ADV_OPTIONS=y 51 + CONFIG_MTD_CFI_GEOMETRY=y 52 + # CONFIG_MTD_MAP_BANK_WIDTH_4 is not set 53 + CONFIG_MTD_CFI_INTELEXT=y 54 + CONFIG_MTD_CFI_STAA=y 55 + CONFIG_MTD_PHYSMAP=y 56 + CONFIG_MTD_M25P80=y 57 + CONFIG_MTD_NAND=y 58 + CONFIG_MTD_NAND_ORION=y 59 + CONFIG_BLK_DEV_LOOP=y 60 + CONFIG_EEPROM_AT24=y 61 + # CONFIG_SCSI_PROC_FS is not set 62 + CONFIG_BLK_DEV_SD=y 63 + CONFIG_BLK_DEV_SR=m 64 + CONFIG_CHR_DEV_SG=m 65 + CONFIG_ATA=y 66 + CONFIG_SATA_AHCI=y 67 + CONFIG_SATA_MV=y 68 + CONFIG_NETDEVICES=y 69 + CONFIG_NET_DSA_MV88E6123_61_65=y 70 + CONFIG_MV643XX_ETH=y 71 + CONFIG_R8169=y 72 + CONFIG_MARVELL_PHY=y 73 + CONFIG_LIBERTAS=y 74 + CONFIG_LIBERTAS_SDIO=y 75 + CONFIG_INPUT_EVDEV=y 76 + CONFIG_KEYBOARD_GPIO=y 77 + # CONFIG_INPUT_MOUSE is not set 78 + CONFIG_LEGACY_PTY_COUNT=16 79 + # CONFIG_DEVKMEM is not set 80 + CONFIG_SERIAL_8250=y 81 + CONFIG_SERIAL_8250_CONSOLE=y 82 + CONFIG_SERIAL_8250_RUNTIME_UARTS=2 83 + CONFIG_SERIAL_OF_PLATFORM=y 84 + # CONFIG_HW_RANDOM is not set 85 + CONFIG_I2C=y 86 + # CONFIG_I2C_COMPAT is not set 87 + CONFIG_I2C_CHARDEV=y 88 + CONFIG_I2C_MV64XXX=y 89 + CONFIG_I2C_NOMADIK=y 90 + CONFIG_SPI=y 91 + CONFIG_SPI_ORION=y 92 + CONFIG_GPIO_SYSFS=y 93 + CONFIG_POWER_SUPPLY=y 94 + CONFIG_POWER_RESET=y 95 + CONFIG_POWER_RESET_GPIO=y 96 + CONFIG_POWER_RESET_QNAP=y 97 + CONFIG_SENSORS_ADT7475=y 98 + CONFIG_SENSORS_LM63=y 99 + CONFIG_SENSORS_LM75=y 100 + CONFIG_SENSORS_LM85=y 101 + CONFIG_THERMAL=y 102 + CONFIG_KIRKWOOD_THERMAL=y 103 + CONFIG_WATCHDOG=y 104 + CONFIG_ORION_WATCHDOG=y 105 + CONFIG_FB=y 106 + CONFIG_SOUND=y 107 + CONFIG_SND=y 108 + CONFIG_SND_SOC=y 109 + CONFIG_SND_KIRKWOOD_SOC=y 110 + CONFIG_SND_KIRKWOOD_SOC_T5325=y 111 + # CONFIG_ABX500_CORE is not set 112 + CONFIG_REGULATOR=y 113 + CONFIG_REGULATOR_FIXED_VOLTAGE=y 114 + CONFIG_HID_DRAGONRISE=y 115 + CONFIG_HID_GYRATION=y 116 + CONFIG_HID_TWINHAN=y 117 + CONFIG_HID_NTRIG=y 118 + CONFIG_HID_PANTHERLORD=y 119 + CONFIG_HID_PETALYNX=y 120 + CONFIG_HID_SAMSUNG=y 121 + CONFIG_HID_SONY=y 122 + CONFIG_HID_SUNPLUS=y 123 + CONFIG_HID_GREENASIA=y 124 + CONFIG_HID_SMARTJOYPLUS=y 125 + CONFIG_HID_TOPSEED=y 126 + CONFIG_HID_THRUSTMASTER=y 127 + CONFIG_HID_ZEROPLUS=y 128 + CONFIG_USB=y 129 + CONFIG_USB_XHCI_HCD=y 130 + CONFIG_USB_EHCI_HCD=y 131 + CONFIG_USB_EHCI_ROOT_HUB_TT=y 132 + CONFIG_USB_PRINTER=m 133 + CONFIG_USB_STORAGE=y 134 + CONFIG_USB_STORAGE_DATAFAB=y 135 + CONFIG_USB_STORAGE_FREECOM=y 136 + CONFIG_USB_STORAGE_SDDR09=y 137 + CONFIG_USB_STORAGE_SDDR55=y 138 + CONFIG_USB_STORAGE_JUMPSHOT=y 139 + CONFIG_MMC=y 140 + CONFIG_SDIO_UART=y 141 + CONFIG_MMC_MVSDIO=y 142 + CONFIG_NEW_LEDS=y 143 + CONFIG_LEDS_CLASS=y 144 + CONFIG_LEDS_GPIO=y 145 + CONFIG_LEDS_TRIGGERS=y 146 + CONFIG_LEDS_TRIGGER_TIMER=y 147 + CONFIG_LEDS_TRIGGER_HEARTBEAT=y 148 + CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 149 + CONFIG_RTC_CLASS=y 150 + CONFIG_RTC_DRV_RS5C372=y 151 + CONFIG_RTC_DRV_PCF8563=y 152 + CONFIG_RTC_DRV_S35390A=y 153 + CONFIG_RTC_DRV_MV=y 154 + CONFIG_DMADEVICES=y 155 + CONFIG_MV_XOR=y 156 + CONFIG_STAGING=y 157 + CONFIG_FB_XGI=y 158 + CONFIG_EXT2_FS=y 159 + CONFIG_EXT3_FS=y 160 + # CONFIG_EXT3_FS_XATTR is not set 161 + CONFIG_EXT4_FS=y 162 + CONFIG_ISO9660_FS=m 163 + CONFIG_JOLIET=y 164 + CONFIG_UDF_FS=m 165 + CONFIG_MSDOS_FS=y 166 + CONFIG_VFAT_FS=y 167 + CONFIG_TMPFS=y 168 + CONFIG_JFFS2_FS=y 169 + CONFIG_CRAMFS=y 170 + CONFIG_NFS_FS=y 171 + CONFIG_ROOT_NFS=y 172 + CONFIG_NLS_CODEPAGE_437=y 173 + CONFIG_NLS_CODEPAGE_850=y 174 + CONFIG_NLS_ISO8859_1=y 175 + CONFIG_NLS_ISO8859_2=y 176 + CONFIG_NLS_UTF8=y 177 + CONFIG_DEBUG_INFO=y 178 + CONFIG_DEBUG_FS=y 179 + CONFIG_MAGIC_SYSRQ=y 180 + CONFIG_DEBUG_KERNEL=y 181 + # CONFIG_SCHED_DEBUG is not set 182 + # CONFIG_DEBUG_PREEMPT is not set 183 + # CONFIG_FTRACE is not set 184 + CONFIG_DEBUG_USER=y 185 + CONFIG_CRYPTO_CBC=m 186 + CONFIG_CRYPTO_PCBC=m 187 + # CONFIG_CRYPTO_ANSI_CPRNG is not set 188 + CONFIG_CRYPTO_DEV_MV_CESA=y 189 + CONFIG_CRC_CCITT=y 190 + CONFIG_LIBCRC32C=y
+23
arch/arm/configs/multi_v7_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 + CONFIG_FHANDLE=y 2 3 CONFIG_IRQ_DOMAIN_DEBUG=y 3 4 CONFIG_NO_HZ=y 4 5 CONFIG_HIGH_RES_TIMERS=y ··· 10 9 CONFIG_PARTITION_ADVANCED=y 11 10 CONFIG_ARCH_MVEBU=y 12 11 CONFIG_MACH_ARMADA_370=y 12 + CONFIG_MACH_ARMADA_375=y 13 + CONFIG_MACH_ARMADA_38X=y 13 14 CONFIG_MACH_ARMADA_XP=y 15 + CONFIG_MACH_DOVE=y 14 16 CONFIG_ARCH_BCM=y 15 17 CONFIG_ARCH_BCM_5301X=y 16 18 CONFIG_ARCH_BCM_MOBILE=y ··· 36 32 CONFIG_SOC_AM33XX=y 37 33 CONFIG_SOC_DRA7XX=y 38 34 CONFIG_SOC_AM43XX=y 35 + CONFIG_ARCH_QCOM=y 36 + CONFIG_ARCH_MSM8X60=y 37 + CONFIG_ARCH_MSM8960=y 38 + CONFIG_ARCH_MSM8974=y 39 39 CONFIG_ARCH_ROCKCHIP=y 40 40 CONFIG_ARCH_SOCFPGA=y 41 41 CONFIG_PLAT_SPEAR=y ··· 104 96 CONFIG_DEVTMPFS=y 105 97 CONFIG_DEVTMPFS_MOUNT=y 106 98 CONFIG_DMA_CMA=y 99 + CONFIG_CMA_SIZE_MBYTES=64 107 100 CONFIG_OMAP_OCP2SCP=y 108 101 CONFIG_MTD=y 109 102 CONFIG_MTD_M25P80=y ··· 122 113 CONFIG_NETDEVICES=y 123 114 CONFIG_SUN4I_EMAC=y 124 115 CONFIG_NET_CALXEDA_XGMAC=y 116 + CONFIG_MV643XX_ETH=y 125 117 CONFIG_MVNETA=y 126 118 CONFIG_KS8851=y 127 119 CONFIG_R8169=y ··· 158 148 CONFIG_SERIAL_TEGRA=y 159 149 CONFIG_SERIAL_IMX=y 160 150 CONFIG_SERIAL_IMX_CONSOLE=y 151 + CONFIG_SERIAL_MSM=y 152 + CONFIG_SERIAL_MSM_CONSOLE=y 161 153 CONFIG_SERIAL_VT8500=y 162 154 CONFIG_SERIAL_VT8500_CONSOLE=y 163 155 CONFIG_SERIAL_OF_PLATFORM=y ··· 173 161 CONFIG_SERIAL_ST_ASC_CONSOLE=y 174 162 CONFIG_I2C_CHARDEV=y 175 163 CONFIG_I2C_MUX=y 164 + CONFIG_I2C_MUX_PCA954x=y 176 165 CONFIG_I2C_MUX_PINCTRL=y 177 166 CONFIG_I2C_DESIGNWARE_PLATFORM=y 178 167 CONFIG_I2C_MV64XXX=y ··· 202 189 CONFIG_POWER_RESET_GPIO=y 203 190 CONFIG_SENSORS_LM90=y 204 191 CONFIG_THERMAL=y 192 + CONFIG_DOVE_THERMAL=y 205 193 CONFIG_ARMADA_THERMAL=y 194 + CONFIG_WATCHDOG=y 195 + CONFIG_ORION_WATCHDOG=y 206 196 CONFIG_MFD_AS3722=y 207 197 CONFIG_MFD_CROS_EC=y 208 198 CONFIG_MFD_CROS_EC_SPI=y ··· 230 214 CONFIG_MEDIA_SUPPORT=y 231 215 CONFIG_MEDIA_CAMERA_SUPPORT=y 232 216 CONFIG_MEDIA_USB_SUPPORT=y 217 + CONFIG_USB_VIDEO_CLASS=y 218 + CONFIG_USB_GSPCA=y 233 219 CONFIG_DRM=y 234 220 CONFIG_DRM_TEGRA=y 235 221 CONFIG_DRM_PANEL_SIMPLE=y ··· 274 256 CONFIG_MMC_SDHCI=y 275 257 CONFIG_MMC_SDHCI_ESDHC_IMX=y 276 258 CONFIG_MMC_SDHCI_TEGRA=y 259 + CONFIG_MMC_SDHCI_DOVE=y 277 260 CONFIG_MMC_SDHCI_SPEAR=y 278 261 CONFIG_MMC_SDHCI_BCM_KONA=y 279 262 CONFIG_MMC_OMAP=y ··· 315 296 CONFIG_KEYBOARD_NVEC=y 316 297 CONFIG_SERIO_NVEC_PS2=y 317 298 CONFIG_NVEC_POWER=y 299 + CONFIG_COMMON_CLK_QCOM=y 300 + CONFIG_MSM_GCC_8660=y 301 + CONFIG_MSM_MMCC_8960=y 302 + CONFIG_MSM_MMCC_8974=y 318 303 CONFIG_TEGRA_IOMMU_GART=y 319 304 CONFIG_TEGRA_IOMMU_SMMU=y 320 305 CONFIG_MEMORY=y
+9
arch/arm/configs/mvebu_defconfig arch/arm/configs/mvebu_v7_defconfig
··· 10 10 CONFIG_MODULE_UNLOAD=y 11 11 CONFIG_ARCH_MVEBU=y 12 12 CONFIG_MACH_ARMADA_370=y 13 + CONFIG_MACH_ARMADA_375=y 14 + CONFIG_MACH_ARMADA_38X=y 13 15 CONFIG_MACH_ARMADA_XP=y 14 16 CONFIG_NEON=y 15 17 # CONFIG_CACHE_L2X0 is not set ··· 65 63 CONFIG_GPIO_SYSFS=y 66 64 CONFIG_THERMAL=y 67 65 CONFIG_ARMADA_THERMAL=y 66 + CONFIG_SOUND=y 67 + CONFIG_SND=y 68 + CONFIG_SND_SOC=y 69 + CONFIG_SND_KIRKWOOD_SOC=y 70 + CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=y 71 + CONFIG_WATCHDOG=y 72 + CONFIG_ORION_WATCHDOG=y 68 73 CONFIG_USB_SUPPORT=y 69 74 CONFIG_USB=y 70 75 CONFIG_USB_EHCI_HCD=y
+181
arch/arm/configs/mvebu_v5_defconfig
··· 1 + CONFIG_SYSVIPC=y 2 + CONFIG_NO_HZ=y 3 + CONFIG_HIGH_RES_TIMERS=y 4 + CONFIG_LOG_BUF_SHIFT=19 5 + CONFIG_PROFILING=y 6 + CONFIG_OPROFILE=y 7 + CONFIG_KPROBES=y 8 + CONFIG_MODULES=y 9 + CONFIG_MODULE_UNLOAD=y 10 + # CONFIG_BLK_DEV_BSG is not set 11 + # CONFIG_ARCH_MULTI_V7 is not set 12 + CONFIG_ARCH_MVEBU=y 13 + CONFIG_MACH_KIRKWOOD=y 14 + CONFIG_MACH_T5325=y 15 + # CONFIG_CPU_FEROCEON_OLD_ID is not set 16 + CONFIG_PCI_MVEBU=y 17 + CONFIG_PREEMPT=y 18 + CONFIG_AEABI=y 19 + CONFIG_HIGHMEM=y 20 + CONFIG_ZBOOT_ROM_TEXT=0x0 21 + CONFIG_ZBOOT_ROM_BSS=0x0 22 + CONFIG_CPU_FREQ=y 23 + CONFIG_CPU_FREQ_STAT_DETAILS=y 24 + CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y 25 + CONFIG_CPU_IDLE=y 26 + CONFIG_NET=y 27 + CONFIG_PACKET=y 28 + CONFIG_UNIX=y 29 + CONFIG_INET=y 30 + CONFIG_IP_MULTICAST=y 31 + CONFIG_IP_PNP=y 32 + CONFIG_IP_PNP_DHCP=y 33 + CONFIG_IP_PNP_BOOTP=y 34 + # CONFIG_IPV6 is not set 35 + CONFIG_NET_PKTGEN=m 36 + CONFIG_CFG80211=y 37 + CONFIG_MAC80211=y 38 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 39 + CONFIG_MTD=y 40 + CONFIG_MTD_CMDLINE_PARTS=y 41 + CONFIG_MTD_BLOCK=y 42 + CONFIG_MTD_CFI=y 43 + CONFIG_MTD_JEDECPROBE=y 44 + CONFIG_MTD_CFI_ADV_OPTIONS=y 45 + CONFIG_MTD_CFI_GEOMETRY=y 46 + # CONFIG_MTD_MAP_BANK_WIDTH_4 is not set 47 + CONFIG_MTD_CFI_INTELEXT=y 48 + CONFIG_MTD_CFI_STAA=y 49 + CONFIG_MTD_PHYSMAP=y 50 + CONFIG_MTD_M25P80=y 51 + CONFIG_MTD_NAND=y 52 + CONFIG_MTD_NAND_ORION=y 53 + CONFIG_BLK_DEV_LOOP=y 54 + CONFIG_EEPROM_AT24=y 55 + # CONFIG_SCSI_PROC_FS is not set 56 + CONFIG_BLK_DEV_SD=y 57 + CONFIG_BLK_DEV_SR=m 58 + CONFIG_CHR_DEV_SG=m 59 + CONFIG_ATA=y 60 + CONFIG_SATA_AHCI=y 61 + CONFIG_SATA_MV=y 62 + CONFIG_NETDEVICES=y 63 + CONFIG_NET_DSA_MV88E6123_61_65=y 64 + CONFIG_MV643XX_ETH=y 65 + CONFIG_R8169=y 66 + CONFIG_MARVELL_PHY=y 67 + CONFIG_LIBERTAS=y 68 + CONFIG_LIBERTAS_SDIO=y 69 + CONFIG_INPUT_EVDEV=y 70 + CONFIG_KEYBOARD_GPIO=y 71 + # CONFIG_INPUT_MOUSE is not set 72 + CONFIG_LEGACY_PTY_COUNT=16 73 + # CONFIG_DEVKMEM is not set 74 + CONFIG_SERIAL_8250=y 75 + CONFIG_SERIAL_8250_CONSOLE=y 76 + CONFIG_SERIAL_8250_RUNTIME_UARTS=2 77 + CONFIG_SERIAL_OF_PLATFORM=y 78 + # CONFIG_HW_RANDOM is not set 79 + CONFIG_I2C=y 80 + # CONFIG_I2C_COMPAT is not set 81 + CONFIG_I2C_CHARDEV=y 82 + CONFIG_I2C_MV64XXX=y 83 + CONFIG_SPI=y 84 + CONFIG_SPI_ORION=y 85 + CONFIG_GPIO_SYSFS=y 86 + CONFIG_POWER_SUPPLY=y 87 + CONFIG_POWER_RESET=y 88 + CONFIG_POWER_RESET_GPIO=y 89 + CONFIG_POWER_RESET_QNAP=y 90 + CONFIG_SENSORS_ADT7475=y 91 + CONFIG_SENSORS_LM63=y 92 + CONFIG_SENSORS_LM75=y 93 + CONFIG_SENSORS_LM85=y 94 + CONFIG_THERMAL=y 95 + CONFIG_WATCHDOG=y 96 + CONFIG_ORION_WATCHDOG=y 97 + CONFIG_FB=y 98 + CONFIG_SOUND=y 99 + CONFIG_SND=y 100 + CONFIG_SND_SOC=y 101 + CONFIG_SND_KIRKWOOD_SOC=y 102 + CONFIG_SND_KIRKWOOD_SOC_T5325=y 103 + CONFIG_REGULATOR=y 104 + CONFIG_REGULATOR_FIXED_VOLTAGE=y 105 + CONFIG_HID_DRAGONRISE=y 106 + CONFIG_HID_GYRATION=y 107 + CONFIG_HID_TWINHAN=y 108 + CONFIG_HID_NTRIG=y 109 + CONFIG_HID_PANTHERLORD=y 110 + CONFIG_HID_PETALYNX=y 111 + CONFIG_HID_SAMSUNG=y 112 + CONFIG_HID_SONY=y 113 + CONFIG_HID_SUNPLUS=y 114 + CONFIG_HID_GREENASIA=y 115 + CONFIG_HID_SMARTJOYPLUS=y 116 + CONFIG_HID_TOPSEED=y 117 + CONFIG_HID_THRUSTMASTER=y 118 + CONFIG_HID_ZEROPLUS=y 119 + CONFIG_USB=y 120 + CONFIG_USB_XHCI_HCD=y 121 + CONFIG_USB_EHCI_HCD=y 122 + CONFIG_USB_EHCI_ROOT_HUB_TT=y 123 + CONFIG_USB_PRINTER=m 124 + CONFIG_USB_STORAGE=y 125 + CONFIG_USB_STORAGE_DATAFAB=y 126 + CONFIG_USB_STORAGE_FREECOM=y 127 + CONFIG_USB_STORAGE_SDDR09=y 128 + CONFIG_USB_STORAGE_SDDR55=y 129 + CONFIG_USB_STORAGE_JUMPSHOT=y 130 + CONFIG_MMC=y 131 + CONFIG_SDIO_UART=y 132 + CONFIG_MMC_MVSDIO=y 133 + CONFIG_NEW_LEDS=y 134 + CONFIG_LEDS_CLASS=y 135 + CONFIG_LEDS_GPIO=y 136 + CONFIG_LEDS_TRIGGERS=y 137 + CONFIG_LEDS_TRIGGER_TIMER=y 138 + CONFIG_LEDS_TRIGGER_HEARTBEAT=y 139 + CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 140 + CONFIG_RTC_CLASS=y 141 + CONFIG_RTC_DRV_RS5C372=y 142 + CONFIG_RTC_DRV_PCF8563=y 143 + CONFIG_RTC_DRV_S35390A=y 144 + CONFIG_RTC_DRV_MV=y 145 + CONFIG_DMADEVICES=y 146 + CONFIG_MV_XOR=y 147 + CONFIG_STAGING=y 148 + CONFIG_FB_XGI=y 149 + CONFIG_EXT2_FS=y 150 + CONFIG_EXT3_FS=y 151 + # CONFIG_EXT3_FS_XATTR is not set 152 + CONFIG_EXT4_FS=y 153 + CONFIG_ISO9660_FS=m 154 + CONFIG_JOLIET=y 155 + CONFIG_UDF_FS=m 156 + CONFIG_MSDOS_FS=y 157 + CONFIG_VFAT_FS=y 158 + CONFIG_TMPFS=y 159 + CONFIG_JFFS2_FS=y 160 + CONFIG_CRAMFS=y 161 + CONFIG_NFS_FS=y 162 + CONFIG_ROOT_NFS=y 163 + CONFIG_NLS_CODEPAGE_437=y 164 + CONFIG_NLS_CODEPAGE_850=y 165 + CONFIG_NLS_ISO8859_1=y 166 + CONFIG_NLS_ISO8859_2=y 167 + CONFIG_NLS_UTF8=y 168 + CONFIG_DEBUG_INFO=y 169 + CONFIG_DEBUG_FS=y 170 + CONFIG_MAGIC_SYSRQ=y 171 + CONFIG_DEBUG_KERNEL=y 172 + # CONFIG_SCHED_DEBUG is not set 173 + # CONFIG_DEBUG_PREEMPT is not set 174 + # CONFIG_FTRACE is not set 175 + CONFIG_DEBUG_USER=y 176 + CONFIG_CRYPTO_CBC=m 177 + CONFIG_CRYPTO_PCBC=m 178 + # CONFIG_CRYPTO_ANSI_CPRNG is not set 179 + CONFIG_CRYPTO_DEV_MV_CESA=y 180 + CONFIG_CRC_CCITT=y 181 + CONFIG_LIBCRC32C=y
+129
arch/arm/configs/shmobile_defconfig
··· 1 + CONFIG_SYSVIPC=y 2 + CONFIG_NO_HZ=y 3 + CONFIG_IKCONFIG=y 4 + CONFIG_IKCONFIG_PROC=y 5 + CONFIG_LOG_BUF_SHIFT=16 6 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 7 + CONFIG_SYSCTL_SYSCALL=y 8 + CONFIG_EMBEDDED=y 9 + CONFIG_PERF_EVENTS=y 10 + CONFIG_SLAB=y 11 + CONFIG_ARCH_SHMOBILE_MULTI=y 12 + CONFIG_ARCH_EMEV2=y 13 + CONFIG_ARCH_R8A7790=y 14 + CONFIG_ARCH_R8A7791=y 15 + CONFIG_MACH_KOELSCH=y 16 + CONFIG_MACH_LAGER=y 17 + # CONFIG_SWP_EMULATE is not set 18 + CONFIG_CPU_BPREDICT_DISABLE=y 19 + CONFIG_PL310_ERRATA_588369=y 20 + CONFIG_ARM_ERRATA_754322=y 21 + CONFIG_PCI=y 22 + CONFIG_PCI_RCAR_GEN2=y 23 + CONFIG_SMP=y 24 + CONFIG_SCHED_MC=y 25 + CONFIG_HAVE_ARM_ARCH_TIMER=y 26 + CONFIG_NR_CPUS=8 27 + CONFIG_AEABI=y 28 + CONFIG_ZBOOT_ROM_TEXT=0x0 29 + CONFIG_ZBOOT_ROM_BSS=0x0 30 + CONFIG_ARM_APPENDED_DTB=y 31 + CONFIG_KEXEC=y 32 + CONFIG_VFP=y 33 + CONFIG_NEON=y 34 + # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 35 + CONFIG_NET=y 36 + CONFIG_PACKET=y 37 + CONFIG_UNIX=y 38 + CONFIG_INET=y 39 + CONFIG_IP_PNP=y 40 + CONFIG_IP_PNP_DHCP=y 41 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 42 + CONFIG_DEVTMPFS=y 43 + CONFIG_DEVTMPFS_MOUNT=y 44 + CONFIG_MTD=y 45 + CONFIG_MTD_M25P80=y 46 + CONFIG_BLK_DEV_SD=y 47 + CONFIG_ATA=y 48 + CONFIG_SATA_RCAR=y 49 + CONFIG_NETDEVICES=y 50 + # CONFIG_NET_VENDOR_ARC is not set 51 + # CONFIG_NET_CADENCE is not set 52 + # CONFIG_NET_VENDOR_BROADCOM is not set 53 + # CONFIG_NET_VENDOR_CIRRUS is not set 54 + # CONFIG_NET_VENDOR_FARADAY is not set 55 + # CONFIG_NET_VENDOR_INTEL is not set 56 + # CONFIG_NET_VENDOR_MARVELL is not set 57 + # CONFIG_NET_VENDOR_MICREL is not set 58 + # CONFIG_NET_VENDOR_NATSEMI is not set 59 + CONFIG_SH_ETH=y 60 + # CONFIG_NET_VENDOR_SEEQ is not set 61 + CONFIG_SMSC911X=y 62 + # CONFIG_NET_VENDOR_STMICRO is not set 63 + # CONFIG_NET_VENDOR_VIA is not set 64 + # CONFIG_NET_VENDOR_WIZNET is not set 65 + CONFIG_SMSC_PHY=y 66 + # CONFIG_INPUT_MOUSEDEV_PSAUX is not set 67 + CONFIG_KEYBOARD_GPIO=y 68 + # CONFIG_INPUT_MOUSE is not set 69 + # CONFIG_LEGACY_PTYS is not set 70 + CONFIG_SERIAL_8250=y 71 + CONFIG_SERIAL_8250_CONSOLE=y 72 + CONFIG_SERIAL_8250_EXTENDED=y 73 + CONFIG_SERIAL_8250_EM=y 74 + CONFIG_SERIAL_SH_SCI=y 75 + CONFIG_SERIAL_SH_SCI_NR_UARTS=20 76 + CONFIG_SERIAL_SH_SCI_CONSOLE=y 77 + CONFIG_I2C_GPIO=y 78 + CONFIG_I2C_RCAR=y 79 + CONFIG_SPI=y 80 + CONFIG_SPI_RSPI=y 81 + CONFIG_GPIO_EM=y 82 + CONFIG_GPIO_RCAR=y 83 + # CONFIG_HWMON is not set 84 + CONFIG_THERMAL=y 85 + CONFIG_RCAR_THERMAL=y 86 + CONFIG_REGULATOR=y 87 + CONFIG_REGULATOR_FIXED_VOLTAGE=y 88 + CONFIG_REGULATOR_GPIO=y 89 + CONFIG_MEDIA_SUPPORT=y 90 + CONFIG_MEDIA_CAMERA_SUPPORT=y 91 + CONFIG_V4L_PLATFORM_DRIVERS=y 92 + CONFIG_SOC_CAMERA=y 93 + CONFIG_SOC_CAMERA_PLATFORM=y 94 + CONFIG_VIDEO_RCAR_VIN=y 95 + # CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set 96 + CONFIG_VIDEO_ADV7180=y 97 + CONFIG_DRM=y 98 + CONFIG_DRM_RCAR_DU=y 99 + CONFIG_SOUND=y 100 + CONFIG_SND=y 101 + CONFIG_SND_SOC=y 102 + CONFIG_SND_SOC_RCAR=y 103 + CONFIG_USB_RCAR_GEN2_PHY=y 104 + CONFIG_MMC=y 105 + CONFIG_MMC_SDHI=y 106 + CONFIG_MMC_SH_MMCIF=y 107 + CONFIG_NEW_LEDS=y 108 + CONFIG_LEDS_CLASS=y 109 + CONFIG_LEDS_GPIO=y 110 + CONFIG_RTC_CLASS=y 111 + CONFIG_DMADEVICES=y 112 + CONFIG_SH_DMAE=y 113 + # CONFIG_IOMMU_SUPPORT is not set 114 + # CONFIG_DNOTIFY is not set 115 + CONFIG_MSDOS_FS=y 116 + CONFIG_VFAT_FS=y 117 + CONFIG_TMPFS=y 118 + CONFIG_CONFIGFS_FS=y 119 + # CONFIG_MISC_FILESYSTEMS is not set 120 + CONFIG_NFS_FS=y 121 + CONFIG_NFS_V3_ACL=y 122 + CONFIG_NFS_V4=y 123 + CONFIG_NFS_V4_1=y 124 + CONFIG_ROOT_NFS=y 125 + CONFIG_NLS_CODEPAGE_437=y 126 + CONFIG_NLS_ISO8859_1=y 127 + # CONFIG_ENABLE_WARN_DEPRECATED is not set 128 + # CONFIG_ENABLE_MUST_CHECK is not set 129 + # CONFIG_ARM_UNWIND is not set
+3
arch/arm/configs/sunxi_defconfig
··· 24 24 # CONFIG_WIRELESS is not set 25 25 CONFIG_DEVTMPFS=y 26 26 CONFIG_DEVTMPFS_MOUNT=y 27 + CONFIG_EEPROM_SUNXI_SID=y 27 28 CONFIG_NETDEVICES=y 28 29 CONFIG_SUN4I_EMAC=y 29 30 # CONFIG_NET_CADENCE is not set ··· 49 48 # CONFIG_I2C_COMPAT is not set 50 49 CONFIG_I2C_CHARDEV=y 51 50 CONFIG_I2C_MV64XXX=y 51 + CONFIG_SPI=y 52 + CONFIG_SPI_SUN6I=y 52 53 CONFIG_GPIO_SYSFS=y 53 54 # CONFIG_HWMON is not set 54 55 CONFIG_WATCHDOG=y
+6 -1
arch/arm/configs/tegra_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 + CONFIG_FHANDLE=y 2 3 CONFIG_NO_HZ=y 3 4 CONFIG_HIGH_RES_TIMERS=y 4 5 CONFIG_IKCONFIG=y ··· 87 86 CONFIG_DEVTMPFS_MOUNT=y 88 87 # CONFIG_FIRMWARE_IN_KERNEL is not set 89 88 CONFIG_DMA_CMA=y 89 + CONFIG_CMA_SIZE_MBYTES=64 90 90 CONFIG_MTD=y 91 91 CONFIG_MTD_M25P80=y 92 92 CONFIG_PROC_DEVICETREE=y ··· 127 125 CONFIG_SERIAL_OF_PLATFORM=y 128 126 # CONFIG_HW_RANDOM is not set 129 127 # CONFIG_I2C_COMPAT is not set 128 + CONFIG_I2C_MUX_PCA954x=y 130 129 CONFIG_I2C_MUX_PINCTRL=y 131 130 CONFIG_I2C_TEGRA=y 132 131 CONFIG_SPI=y ··· 144 141 CONFIG_BATTERY_SBS=y 145 142 CONFIG_CHARGER_TPS65090=y 146 143 CONFIG_POWER_RESET=y 144 + CONFIG_POWER_RESET_AS3722=y 147 145 CONFIG_POWER_RESET_GPIO=y 148 146 CONFIG_SENSORS_LM90=y 149 147 CONFIG_MFD_AS3722=y ··· 170 166 CONFIG_MEDIA_SUPPORT=y 171 167 CONFIG_MEDIA_CAMERA_SUPPORT=y 172 168 CONFIG_MEDIA_USB_SUPPORT=y 173 - CONFIG_USB_VIDEO_CLASS=m 169 + CONFIG_USB_VIDEO_CLASS=y 170 + CONFIG_USB_GSPCA=y 174 171 CONFIG_DRM=y 175 172 CONFIG_DRM_TEGRA=y 176 173 CONFIG_DRM_PANEL_SIMPLE=y
+40
arch/arm/mach-pxa/corgi.c
··· 32 32 #include <linux/spi/pxa2xx_spi.h> 33 33 #include <linux/mtd/sharpsl.h> 34 34 #include <linux/input/matrix_keypad.h> 35 + #include <linux/gpio_keys.h> 35 36 #include <linux/module.h> 36 37 #include <video/w100fb.h> 37 38 ··· 406 405 }, 407 406 }; 408 407 408 + static struct gpio_keys_button corgi_gpio_keys[] = { 409 + { 410 + .type = EV_SW, 411 + .code = SW_LID, 412 + .gpio = CORGI_GPIO_SWA, 413 + .desc = "Lid close switch", 414 + .debounce_interval = 500, 415 + }, 416 + { 417 + .type = EV_SW, 418 + .code = SW_TABLET_MODE, 419 + .gpio = CORGI_GPIO_SWB, 420 + .desc = "Tablet mode switch", 421 + .debounce_interval = 500, 422 + }, 423 + { 424 + .type = EV_SW, 425 + .code = SW_HEADPHONE_INSERT, 426 + .gpio = CORGI_GPIO_AK_INT, 427 + .desc = "HeadPhone insert", 428 + .debounce_interval = 500, 429 + }, 430 + }; 431 + 432 + static struct gpio_keys_platform_data corgi_gpio_keys_platform_data = { 433 + .buttons = corgi_gpio_keys, 434 + .nbuttons = ARRAY_SIZE(corgi_gpio_keys), 435 + .poll_interval = 250, 436 + }; 437 + 438 + static struct platform_device corgi_gpio_keys_device = { 439 + .name = "gpio-keys-polled", 440 + .id = -1, 441 + .dev = { 442 + .platform_data = &corgi_gpio_keys_platform_data, 443 + }, 444 + }; 445 + 409 446 /* 410 447 * Corgi LEDs 411 448 */ ··· 685 646 static struct platform_device *devices[] __initdata = { 686 647 &corgiscoop_device, 687 648 &corgifb_device, 649 + &corgi_gpio_keys_device, 688 650 &corgikbd_device, 689 651 &corgiled_device, 690 652 &corgi_audio_device,
+11 -7
arch/arm/mach-shmobile/Kconfig
··· 45 45 config MACH_KOELSCH 46 46 bool "Koelsch board" 47 47 depends on ARCH_R8A7791 48 - 49 - config MACH_KZM9D 50 - bool "KZM9D board" 51 - depends on ARCH_EMEV2 52 - select REGULATOR_FIXED_VOLTAGE if REGULATOR 48 + select MICREL_PHY if SH_ETH 53 49 54 50 config MACH_LAGER 55 51 bool "Lager board" 56 52 depends on ARCH_R8A7790 53 + select MICREL_PHY if SH_ETH 57 54 58 55 comment "Renesas ARM SoCs System Configuration" 59 56 endif ··· 163 166 config MACH_APE6EVM 164 167 bool "APE6EVM board" 165 168 depends on ARCH_R8A73A4 169 + select SMSC_PHY if SMSC911X 166 170 select USE_OF 167 171 168 172 config MACH_APE6EVM_REFERENCE 169 173 bool "APE6EVM board - Reference Device Tree Implementation" 170 174 depends on ARCH_R8A73A4 175 + select SMSC_PHY if SMSC911X 171 176 select USE_OF 172 177 ---help--- 173 178 Use reference implementation of APE6EVM board support ··· 183 184 depends on ARCH_SH7372 184 185 select ARCH_REQUIRE_GPIOLIB 185 186 select REGULATOR_FIXED_VOLTAGE if REGULATOR 187 + select SMSC_PHY if SMSC911X 186 188 select SND_SOC_AK4642 if SND_SIMPLE_CARD 187 189 select USE_OF 188 190 ··· 192 192 depends on ARCH_R8A7740 193 193 select ARCH_REQUIRE_GPIOLIB 194 194 select REGULATOR_FIXED_VOLTAGE if REGULATOR 195 + select SMSC_PHY if SH_ETH 195 196 select SND_SOC_WM8978 if SND_SIMPLE_CARD 196 197 select USE_OF 197 198 ··· 201 200 depends on ARCH_R8A7740 202 201 select ARCH_REQUIRE_GPIOLIB 203 202 select REGULATOR_FIXED_VOLTAGE if REGULATOR 203 + select SMSC_PHY if SH_ETH 204 204 select SND_SOC_WM8978 if SND_SIMPLE_CARD 205 205 select USE_OF 206 206 ---help--- ··· 215 213 bool "BOCK-W platform" 216 214 depends on ARCH_R8A7778 217 215 select ARCH_REQUIRE_GPIOLIB 218 - select RENESAS_INTC_IRQPIN 219 216 select REGULATOR_FIXED_VOLTAGE if REGULATOR 220 - select USE_OF 217 + select RENESAS_INTC_IRQPIN 221 218 select SND_SOC_AK4554 if SND_SIMPLE_CARD 222 219 select SND_SOC_AK4642 if SND_SIMPLE_CARD 220 + select USE_OF 223 221 224 222 config MACH_BOCKW_REFERENCE 225 223 bool "BOCK-W - Reference Device Tree Implementation" ··· 275 273 bool "Lager board" 276 274 depends on ARCH_R8A7790 277 275 select USE_OF 276 + select MICREL_PHY if SH_ETH 277 + select SND_SOC_AK4642 if SND_SIMPLE_CARD 278 278 279 279 config MACH_KOELSCH 280 280 bool "Koelsch board"
-1
arch/arm/mach-shmobile/Makefile
··· 59 59 ifdef CONFIG_ARCH_SHMOBILE_MULTI 60 60 obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o 61 61 obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o 62 - obj-$(CONFIG_MACH_KZM9D) += board-kzm9d-reference.o 63 62 obj-$(CONFIG_MACH_LAGER) += board-lager-reference.o 64 63 else 65 64 obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o
+2
arch/arm/mach-shmobile/board-armadillo800eva.c
··· 383 383 .id = -1, 384 384 .dev = { 385 385 .platform_data = &sh_eth_platdata, 386 + .dma_mask = &sh_eth_device.dev.coherent_dma_mask, 387 + .coherent_dma_mask = DMA_BIT_MASK(32), 386 388 }, 387 389 .resource = sh_eth_resources, 388 390 .num_resources = ARRAY_SIZE(sh_eth_resources),
+31 -14
arch/arm/mach-shmobile/board-bockw.c
··· 1 1 /* 2 2 * Bock-W board support 3 3 * 4 - * Copyright (C) 2013 Renesas Solutions Corp. 4 + * Copyright (C) 2013-2014 Renesas Solutions Corp. 5 5 * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 6 - * Copyright (C) 2013 Cogent Embedded, Inc. 6 + * Copyright (C) 2013-2014 Cogent Embedded, Inc. 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by ··· 168 168 }, 169 169 .driver_param = { 170 170 .buswait_bwait = 4, 171 + .d0_tx_id = HPBDMA_SLAVE_USBFUNC_TX, 172 + .d1_rx_id = HPBDMA_SLAVE_USBFUNC_RX, 171 173 }, 172 174 }; 173 175 ··· 233 231 * and getting the link state from the PHY indirectly. 234 232 */ 235 233 .no_ether_link = 1, 234 + }; 235 + 236 + static struct platform_device_info ether_info __initdata = { 237 + .parent = &platform_bus, 238 + .name = "r8a777x-ether", 239 + .id = -1, 240 + .res = ether_resources, 241 + .num_res = ARRAY_SIZE(ether_resources), 242 + .data = &ether_platform_data, 243 + .size_data = sizeof(ether_platform_data), 244 + .dma_mask = DMA_BIT_MASK(32), 236 245 }; 237 246 238 247 /* I2C */ ··· 345 332 RSND_SSI_UNUSED, /* SSI 0 */ 346 333 RSND_SSI_UNUSED, /* SSI 1 */ 347 334 RSND_SSI_UNUSED, /* SSI 2 */ 348 - RSND_SSI_SET(1, 0, gic_iid(0x85), RSND_SSI_PLAY), 349 - RSND_SSI_SET(2, 0, gic_iid(0x85), RSND_SSI_CLK_PIN_SHARE), 350 - RSND_SSI_SET(0, 0, gic_iid(0x86), RSND_SSI_PLAY), 351 - RSND_SSI_SET(0, 0, gic_iid(0x86), 0), 352 - RSND_SSI_SET(3, 0, gic_iid(0x86), RSND_SSI_PLAY), 353 - RSND_SSI_SET(4, 0, gic_iid(0x86), RSND_SSI_CLK_PIN_SHARE), 335 + RSND_SSI_SET(1, HPBDMA_SLAVE_HPBIF3_TX, gic_iid(0x85), RSND_SSI_PLAY), 336 + RSND_SSI_SET(2, HPBDMA_SLAVE_HPBIF4_RX, gic_iid(0x85), RSND_SSI_CLK_PIN_SHARE), 337 + RSND_SSI_SET(0, HPBDMA_SLAVE_HPBIF5_TX, gic_iid(0x86), RSND_SSI_PLAY), 338 + RSND_SSI_SET(0, HPBDMA_SLAVE_HPBIF6_RX, gic_iid(0x86), 0), 339 + RSND_SSI_SET(3, HPBDMA_SLAVE_HPBIF7_TX, gic_iid(0x86), RSND_SSI_PLAY), 340 + RSND_SSI_SET(4, HPBDMA_SLAVE_HPBIF8_RX, gic_iid(0x86), RSND_SSI_CLK_PIN_SHARE), 354 341 }; 355 342 356 343 static struct rsnd_scu_platform_info rsnd_scu[9] = { 357 - /* no member at this point */ 344 + { .flags = 0, }, /* SRU 0 */ 345 + { .flags = 0, }, /* SRU 1 */ 346 + { .flags = 0, }, /* SRU 2 */ 347 + { .flags = RSND_SCU_USE_HPBIF, }, 348 + { .flags = RSND_SCU_USE_HPBIF, }, 349 + { .flags = RSND_SCU_USE_HPBIF, }, 350 + { .flags = RSND_SCU_USE_HPBIF, }, 351 + { .flags = RSND_SCU_USE_HPBIF, }, 352 + { .flags = RSND_SCU_USE_HPBIF, }, 358 353 }; 359 354 360 355 enum { ··· 597 576 r8a7778_init_irq_extpin(1); 598 577 r8a7778_add_standard_devices(); 599 578 600 - platform_device_register_resndata(&platform_bus, "r8a777x-ether", -1, 601 - ether_resources, 602 - ARRAY_SIZE(ether_resources), 603 - &ether_platform_data, 604 - sizeof(ether_platform_data)); 579 + platform_device_register_full(&ether_info); 605 580 606 581 platform_device_register_full(&vin0_info); 607 582 /* VIN1 has a pin conflict with Ether */
+74 -1
arch/arm/mach-shmobile/board-genmai.c
··· 1 1 /* 2 2 * Genmai board support 3 3 * 4 - * Copyright (C) 2013 Renesas Solutions Corp. 4 + * Copyright (C) 2013-2014 Renesas Solutions Corp. 5 5 * Copyright (C) 2013 Magnus Damm 6 + * Copyright (C) 2014 Cogent Embedded, Inc. 6 7 * 7 8 * This program is free software; you can redistribute it and/or modify 8 9 * it under the terms of the GNU General Public License as published by ··· 21 20 22 21 #include <linux/kernel.h> 23 22 #include <linux/platform_device.h> 23 + #include <linux/sh_eth.h> 24 + #include <linux/spi/rspi.h> 25 + #include <linux/spi/spi.h> 24 26 #include <mach/common.h> 27 + #include <mach/irqs.h> 25 28 #include <mach/r7s72100.h> 26 29 #include <asm/mach-types.h> 27 30 #include <asm/mach/arch.h> 31 + 32 + /* Ether */ 33 + static const struct sh_eth_plat_data ether_pdata __initconst = { 34 + .phy = 0x00, /* PD60610 */ 35 + .edmac_endian = EDMAC_LITTLE_ENDIAN, 36 + .phy_interface = PHY_INTERFACE_MODE_MII, 37 + .no_ether_link = 1 38 + }; 39 + 40 + static const struct resource ether_resources[] __initconst = { 41 + DEFINE_RES_MEM(0xe8203000, 0x800), 42 + DEFINE_RES_MEM(0xe8204800, 0x200), 43 + DEFINE_RES_IRQ(gic_iid(359)), 44 + }; 45 + 46 + static const struct platform_device_info ether_info __initconst = { 47 + .parent = &platform_bus, 48 + .name = "r7s72100-ether", 49 + .id = -1, 50 + .res = ether_resources, 51 + .num_res = ARRAY_SIZE(ether_resources), 52 + .data = &ether_pdata, 53 + .size_data = sizeof(ether_pdata), 54 + .dma_mask = DMA_BIT_MASK(32), 55 + }; 56 + 57 + /* RSPI */ 58 + #define RSPI_RESOURCE(idx, baseaddr, irq) \ 59 + static const struct resource rspi##idx##_resources[] __initconst = { \ 60 + DEFINE_RES_MEM(baseaddr, 0x24), \ 61 + DEFINE_RES_IRQ_NAMED(irq, "error"), \ 62 + DEFINE_RES_IRQ_NAMED(irq + 1, "rx"), \ 63 + DEFINE_RES_IRQ_NAMED(irq + 2, "tx"), \ 64 + } 65 + 66 + RSPI_RESOURCE(0, 0xe800c800, gic_iid(270)); 67 + RSPI_RESOURCE(1, 0xe800d000, gic_iid(273)); 68 + RSPI_RESOURCE(2, 0xe800d800, gic_iid(276)); 69 + RSPI_RESOURCE(3, 0xe800e000, gic_iid(279)); 70 + RSPI_RESOURCE(4, 0xe800e800, gic_iid(282)); 71 + 72 + static const struct rspi_plat_data rspi_pdata __initconst = { 73 + .num_chipselect = 1, 74 + }; 75 + 76 + #define r7s72100_register_rspi(idx) \ 77 + platform_device_register_resndata(&platform_bus, "rspi-rz", idx, \ 78 + rspi##idx##_resources, \ 79 + ARRAY_SIZE(rspi##idx##_resources), \ 80 + &rspi_pdata, sizeof(rspi_pdata)) 81 + 82 + static const struct spi_board_info spi_info[] __initconst = { 83 + { 84 + .modalias = "wm8978", 85 + .max_speed_hz = 5000000, 86 + .bus_num = 4, 87 + .chip_select = 0, 88 + }, 89 + }; 28 90 29 91 static void __init genmai_add_standard_devices(void) 30 92 { 31 93 r7s72100_clock_init(); 32 94 r7s72100_add_dt_devices(); 95 + 96 + platform_device_register_full(&ether_info); 97 + 98 + r7s72100_register_rspi(0); 99 + r7s72100_register_rspi(1); 100 + r7s72100_register_rspi(2); 101 + r7s72100_register_rspi(3); 102 + r7s72100_register_rspi(4); 103 + spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); 33 104 } 34 105 35 106 static const char * const genmai_boards_compat_dt[] __initconst = {
+87 -19
arch/arm/mach-shmobile/board-koelsch-reference.c
··· 21 21 22 22 #include <linux/clk.h> 23 23 #include <linux/clkdev.h> 24 + #include <linux/dma-mapping.h> 24 25 #include <linux/kernel.h> 25 26 #include <linux/of_platform.h> 27 + #include <linux/platform_data/rcar-du.h> 26 28 #include <mach/common.h> 29 + #include <mach/irqs.h> 27 30 #include <mach/rcar-gen2.h> 28 31 #include <mach/r8a7791.h> 29 32 #include <asm/mach/arch.h> 30 33 34 + /* DU */ 35 + static struct rcar_du_encoder_data koelsch_du_encoders[] = { 36 + { 37 + .type = RCAR_DU_ENCODER_NONE, 38 + .output = RCAR_DU_OUTPUT_LVDS0, 39 + .connector.lvds.panel = { 40 + .width_mm = 210, 41 + .height_mm = 158, 42 + .mode = { 43 + .clock = 65000, 44 + .hdisplay = 1024, 45 + .hsync_start = 1048, 46 + .hsync_end = 1184, 47 + .htotal = 1344, 48 + .vdisplay = 768, 49 + .vsync_start = 771, 50 + .vsync_end = 777, 51 + .vtotal = 806, 52 + .flags = 0, 53 + }, 54 + }, 55 + }, 56 + }; 57 + 58 + static struct rcar_du_platform_data koelsch_du_pdata = { 59 + .encoders = koelsch_du_encoders, 60 + .num_encoders = ARRAY_SIZE(koelsch_du_encoders), 61 + }; 62 + 63 + static const struct resource du_resources[] __initconst = { 64 + DEFINE_RES_MEM(0xfeb00000, 0x40000), 65 + DEFINE_RES_MEM_NAMED(0xfeb90000, 0x1c, "lvds.0"), 66 + DEFINE_RES_IRQ(gic_spi(256)), 67 + DEFINE_RES_IRQ(gic_spi(268)), 68 + }; 69 + 70 + static void __init koelsch_add_du_device(void) 71 + { 72 + struct platform_device_info info = { 73 + .name = "rcar-du-r8a7791", 74 + .id = -1, 75 + .res = du_resources, 76 + .num_res = ARRAY_SIZE(du_resources), 77 + .data = &koelsch_du_pdata, 78 + .size_data = sizeof(koelsch_du_pdata), 79 + .dma_mask = DMA_BIT_MASK(32), 80 + }; 81 + 82 + platform_device_register_full(&info); 83 + } 84 + 31 85 static void __init koelsch_add_standard_devices(void) 32 86 { 33 - #ifdef CONFIG_COMMON_CLK 34 87 /* 35 - * This is a really crude hack to provide clkdev support to the SCIF 36 - * and CMT devices until they get moved to DT. 88 + * This is a really crude hack to provide clkdev support to the CMT and 89 + * DU devices until they get moved to DT. 37 90 */ 38 - static const char * const scif_names[] = { 39 - "scifa0", "scifa1", "scifb0", "scifb1", "scifb2", "scifa2", 40 - "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scifa3", 41 - "scifa4", "scifa5", 91 + static const struct clk_name { 92 + const char *clk; 93 + const char *con_id; 94 + const char *dev_id; 95 + } clk_names[] = { 96 + { "cmt0", NULL, "sh_cmt.0" }, 97 + { "scifa0", NULL, "sh-sci.0" }, 98 + { "scifa1", NULL, "sh-sci.1" }, 99 + { "scifb0", NULL, "sh-sci.2" }, 100 + { "scifb1", NULL, "sh-sci.3" }, 101 + { "scifb2", NULL, "sh-sci.4" }, 102 + { "scifa2", NULL, "sh-sci.5" }, 103 + { "scif0", NULL, "sh-sci.6" }, 104 + { "scif1", NULL, "sh-sci.7" }, 105 + { "scif2", NULL, "sh-sci.8" }, 106 + { "scif3", NULL, "sh-sci.9" }, 107 + { "scif4", NULL, "sh-sci.10" }, 108 + { "scif5", NULL, "sh-sci.11" }, 109 + { "scifa3", NULL, "sh-sci.12" }, 110 + { "scifa4", NULL, "sh-sci.13" }, 111 + { "scifa5", NULL, "sh-sci.14" }, 112 + { "du0", "du.0", "rcar-du-r8a7791" }, 113 + { "du1", "du.1", "rcar-du-r8a7791" }, 114 + { "lvds0", "lvds.0", "rcar-du-r8a7791" }, 42 115 }; 43 116 struct clk *clk; 44 117 unsigned int i; 45 118 46 - for (i = 0; i < ARRAY_SIZE(scif_names); ++i) { 47 - clk = clk_get(NULL, scif_names[i]); 48 - if (clk) { 49 - clk_register_clkdev(clk, NULL, "sh-sci.%u", i); 119 + for (i = 0; i < ARRAY_SIZE(clk_names); ++i) { 120 + clk = clk_get(NULL, clk_names[i].clk); 121 + if (!IS_ERR(clk)) { 122 + clk_register_clkdev(clk, clk_names[i].con_id, 123 + clk_names[i].dev_id); 50 124 clk_put(clk); 51 125 } 52 126 } 53 127 54 - clk = clk_get(NULL, "cmt0"); 55 - if (clk) { 56 - clk_register_clkdev(clk, NULL, "sh_cmt.0"); 57 - clk_put(clk); 58 - } 59 - #else 60 - r8a7791_clock_init(); 61 - #endif 62 128 r8a7791_add_dt_devices(); 63 129 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 130 + 131 + koelsch_add_du_device(); 64 132 } 65 133 66 134 static const char * const koelsch_boards_compat_dt[] __initconst = {
+300 -5
arch/arm/mach-shmobile/board-koelsch.c
··· 2 2 * Koelsch board support 3 3 * 4 4 * Copyright (C) 2013 Renesas Electronics Corporation 5 - * Copyright (C) 2013 Renesas Solutions Corp. 5 + * Copyright (C) 2013-2014 Renesas Solutions Corp. 6 6 * Copyright (C) 2013 Magnus Damm 7 + * Copyright (C) 2014 Cogent Embedded, Inc. 7 8 * 8 9 * This program is free software; you can redistribute it and/or modify 9 10 * it under the terms of the GNU General Public License as published by ··· 24 23 #include <linux/gpio.h> 25 24 #include <linux/gpio_keys.h> 26 25 #include <linux/input.h> 26 + #include <linux/irq.h> 27 27 #include <linux/kernel.h> 28 28 #include <linux/leds.h> 29 + #include <linux/mfd/tmio.h> 30 + #include <linux/mmc/host.h> 31 + #include <linux/mmc/sh_mobile_sdhi.h> 32 + #include <linux/mtd/mtd.h> 33 + #include <linux/mtd/partitions.h> 29 34 #include <linux/phy.h> 30 35 #include <linux/pinctrl/machine.h> 31 36 #include <linux/platform_data/gpio-rcar.h> 32 37 #include <linux/platform_data/rcar-du.h> 33 38 #include <linux/platform_device.h> 39 + #include <linux/regulator/driver.h> 40 + #include <linux/regulator/fixed.h> 41 + #include <linux/regulator/gpio-regulator.h> 42 + #include <linux/regulator/machine.h> 34 43 #include <linux/sh_eth.h> 44 + #include <linux/spi/flash.h> 45 + #include <linux/spi/rspi.h> 46 + #include <linux/spi/spi.h> 35 47 #include <mach/common.h> 36 48 #include <mach/irqs.h> 37 49 #include <mach/r8a7791.h> ··· 106 92 /* Ether */ 107 93 static const struct sh_eth_plat_data ether_pdata __initconst = { 108 94 .phy = 0x1, 95 + .phy_irq = irq_pin(0), 109 96 .edmac_endian = EDMAC_LITTLE_ENDIAN, 110 97 .phy_interface = PHY_INTERFACE_MODE_RMII, 111 98 .ether_link_active_low = 1, ··· 115 100 static const struct resource ether_resources[] __initconst = { 116 101 DEFINE_RES_MEM(0xee700000, 0x400), 117 102 DEFINE_RES_IRQ(gic_spi(162)), 103 + }; 104 + 105 + static const struct platform_device_info ether_info __initconst = { 106 + .parent = &platform_bus, 107 + .name = "r8a7791-ether", 108 + .id = -1, 109 + .res = ether_resources, 110 + .num_res = ARRAY_SIZE(ether_resources), 111 + .data = &ether_pdata, 112 + .size_data = sizeof(ether_pdata), 113 + .dma_mask = DMA_BIT_MASK(32), 118 114 }; 119 115 120 116 /* LEDS */ ··· 174 148 .nbuttons = ARRAY_SIZE(gpio_buttons), 175 149 }; 176 150 151 + /* QSPI */ 152 + static const struct resource qspi_resources[] __initconst = { 153 + DEFINE_RES_MEM(0xe6b10000, 0x1000), 154 + DEFINE_RES_IRQ_NAMED(gic_spi(184), "mux"), 155 + }; 156 + 157 + static const struct rspi_plat_data qspi_pdata __initconst = { 158 + .num_chipselect = 1, 159 + }; 160 + 161 + /* SPI Flash memory (Spansion S25FL512SAGMFIG11 64 MiB) */ 162 + static struct mtd_partition spi_flash_part[] = { 163 + { 164 + .name = "loader", 165 + .offset = 0x00000000, 166 + .size = 512 * 1024, 167 + .mask_flags = MTD_WRITEABLE, 168 + }, 169 + { 170 + .name = "bootenv", 171 + .offset = MTDPART_OFS_APPEND, 172 + .size = 512 * 1024, 173 + .mask_flags = MTD_WRITEABLE, 174 + }, 175 + { 176 + .name = "data", 177 + .offset = MTDPART_OFS_APPEND, 178 + .size = MTDPART_SIZ_FULL, 179 + }, 180 + }; 181 + 182 + static const struct flash_platform_data spi_flash_data = { 183 + .name = "m25p80", 184 + .parts = spi_flash_part, 185 + .nr_parts = ARRAY_SIZE(spi_flash_part), 186 + .type = "s25fl512s", 187 + }; 188 + 189 + static const struct spi_board_info spi_info[] __initconst = { 190 + { 191 + .modalias = "m25p80", 192 + .platform_data = &spi_flash_data, 193 + .mode = SPI_MODE_0, 194 + .max_speed_hz = 30000000, 195 + .bus_num = 0, 196 + .chip_select = 0, 197 + }, 198 + }; 199 + 200 + /* SATA0 */ 201 + static const struct resource sata0_resources[] __initconst = { 202 + DEFINE_RES_MEM(0xee300000, 0x2000), 203 + DEFINE_RES_IRQ(gic_spi(105)), 204 + }; 205 + 206 + static const struct platform_device_info sata0_info __initconst = { 207 + .parent = &platform_bus, 208 + .name = "sata-r8a7791", 209 + .id = 0, 210 + .res = sata0_resources, 211 + .num_res = ARRAY_SIZE(sata0_resources), 212 + .dma_mask = DMA_BIT_MASK(32), 213 + }; 214 + 215 + /* I2C */ 216 + static const struct resource i2c_resources[] __initconst = { 217 + /* I2C0 */ 218 + DEFINE_RES_MEM(0xE6508000, 0x40), 219 + DEFINE_RES_IRQ(gic_spi(287)), 220 + /* I2C1 */ 221 + DEFINE_RES_MEM(0xE6518000, 0x40), 222 + DEFINE_RES_IRQ(gic_spi(288)), 223 + /* I2C2 */ 224 + DEFINE_RES_MEM(0xE6530000, 0x40), 225 + DEFINE_RES_IRQ(gic_spi(286)), 226 + /* I2C3 */ 227 + DEFINE_RES_MEM(0xE6540000, 0x40), 228 + DEFINE_RES_IRQ(gic_spi(290)), 229 + /* I2C4 */ 230 + DEFINE_RES_MEM(0xE6520000, 0x40), 231 + DEFINE_RES_IRQ(gic_spi(19)), 232 + /* I2C5 */ 233 + DEFINE_RES_MEM(0xE6528000, 0x40), 234 + DEFINE_RES_IRQ(gic_spi(20)), 235 + }; 236 + 237 + static void __init koelsch_add_i2c(unsigned idx) 238 + { 239 + unsigned res_idx = idx * 2; 240 + 241 + BUG_ON(res_idx >= ARRAY_SIZE(i2c_resources)); 242 + 243 + platform_device_register_simple("i2c-rcar_gen2", idx, 244 + i2c_resources + res_idx, 2); 245 + } 246 + 247 + #define SDHI_REGULATOR(idx, vdd_pin, vccq_pin) \ 248 + static struct regulator_consumer_supply vcc_sdhi##idx##_consumer = \ 249 + REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi." #idx); \ 250 + \ 251 + static struct regulator_init_data vcc_sdhi##idx##_init_data = { \ 252 + .constraints = { \ 253 + .valid_ops_mask = REGULATOR_CHANGE_STATUS, \ 254 + }, \ 255 + .consumer_supplies = &vcc_sdhi##idx##_consumer, \ 256 + .num_consumer_supplies = 1, \ 257 + }; \ 258 + \ 259 + static const struct fixed_voltage_config vcc_sdhi##idx##_info __initconst = {\ 260 + .supply_name = "SDHI" #idx "Vcc", \ 261 + .microvolts = 3300000, \ 262 + .gpio = vdd_pin, \ 263 + .enable_high = 1, \ 264 + .init_data = &vcc_sdhi##idx##_init_data, \ 265 + }; \ 266 + \ 267 + static struct regulator_consumer_supply vccq_sdhi##idx##_consumer = \ 268 + REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi." #idx); \ 269 + \ 270 + static struct regulator_init_data vccq_sdhi##idx##_init_data = { \ 271 + .constraints = { \ 272 + .input_uV = 3300000, \ 273 + .min_uV = 1800000, \ 274 + .max_uV = 3300000, \ 275 + .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | \ 276 + REGULATOR_CHANGE_STATUS, \ 277 + }, \ 278 + .consumer_supplies = &vccq_sdhi##idx##_consumer, \ 279 + .num_consumer_supplies = 1, \ 280 + }; \ 281 + \ 282 + static struct gpio vccq_sdhi##idx##_gpio = \ 283 + { vccq_pin, GPIOF_OUT_INIT_HIGH, "vccq-sdhi" #idx }; \ 284 + \ 285 + static struct gpio_regulator_state vccq_sdhi##idx##_states[] = { \ 286 + { .value = 1800000, .gpios = 0 }, \ 287 + { .value = 3300000, .gpios = 1 }, \ 288 + }; \ 289 + \ 290 + static const struct gpio_regulator_config vccq_sdhi##idx##_info __initconst = {\ 291 + .supply_name = "vqmmc", \ 292 + .gpios = &vccq_sdhi##idx##_gpio, \ 293 + .nr_gpios = 1, \ 294 + .states = vccq_sdhi##idx##_states, \ 295 + .nr_states = ARRAY_SIZE(vccq_sdhi##idx##_states), \ 296 + .type = REGULATOR_VOLTAGE, \ 297 + .init_data = &vccq_sdhi##idx##_init_data, \ 298 + }; 299 + 300 + SDHI_REGULATOR(0, RCAR_GP_PIN(7, 17), RCAR_GP_PIN(2, 12)); 301 + SDHI_REGULATOR(1, RCAR_GP_PIN(7, 18), RCAR_GP_PIN(2, 13)); 302 + SDHI_REGULATOR(2, RCAR_GP_PIN(7, 19), RCAR_GP_PIN(2, 26)); 303 + 304 + /* SDHI0 */ 305 + static struct sh_mobile_sdhi_info sdhi0_info __initdata = { 306 + .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | 307 + MMC_CAP_POWER_OFF_CARD, 308 + .tmio_caps2 = MMC_CAP2_NO_MULTI_READ, 309 + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, 310 + }; 311 + 312 + static struct resource sdhi0_resources[] __initdata = { 313 + DEFINE_RES_MEM(0xee100000, 0x200), 314 + DEFINE_RES_IRQ(gic_spi(165)), 315 + }; 316 + 317 + /* SDHI1 */ 318 + static struct sh_mobile_sdhi_info sdhi1_info __initdata = { 319 + .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | 320 + MMC_CAP_POWER_OFF_CARD, 321 + .tmio_caps2 = MMC_CAP2_NO_MULTI_READ, 322 + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, 323 + }; 324 + 325 + static struct resource sdhi1_resources[] __initdata = { 326 + DEFINE_RES_MEM(0xee140000, 0x100), 327 + DEFINE_RES_IRQ(gic_spi(167)), 328 + }; 329 + 330 + /* SDHI2 */ 331 + static struct sh_mobile_sdhi_info sdhi2_info __initdata = { 332 + .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | 333 + MMC_CAP_POWER_OFF_CARD, 334 + .tmio_caps2 = MMC_CAP2_NO_MULTI_READ, 335 + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | 336 + TMIO_MMC_WRPROTECT_DISABLE, 337 + }; 338 + 339 + static struct resource sdhi2_resources[] __initdata = { 340 + DEFINE_RES_MEM(0xee160000, 0x100), 341 + DEFINE_RES_IRQ(gic_spi(168)), 342 + }; 343 + 177 344 static const struct pinctrl_map koelsch_pinctrl_map[] = { 178 345 /* DU */ 179 346 PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", ··· 384 165 "eth_rmii", "eth"), 385 166 PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", 386 167 "intc_irq0", "intc"), 168 + /* QSPI */ 169 + PIN_MAP_MUX_GROUP_DEFAULT("qspi.0", "pfc-r8a7791", 170 + "qspi_ctrl", "qspi"), 171 + PIN_MAP_MUX_GROUP_DEFAULT("qspi.0", "pfc-r8a7791", 172 + "qspi_data4", "qspi"), 387 173 /* SCIF0 (CN19: DEBUG SERIAL0) */ 388 174 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7791", 389 175 "scif0_data_d", "scif0"), 390 176 /* SCIF1 (CN20: DEBUG SERIAL1) */ 391 177 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.7", "pfc-r8a7791", 392 178 "scif1_data_d", "scif1"), 179 + /* I2C1 */ 180 + PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar_gen2.1", "pfc-r8a7791", 181 + "i2c1_e", "i2c1"), 182 + /* I2C2 */ 183 + PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar_gen2.2", "pfc-r8a7791", 184 + "i2c2", "i2c2"), 185 + /* I2C4 */ 186 + PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar_gen2.4", "pfc-r8a7791", 187 + "i2c4_c", "i2c4"), 188 + /* SDHI0 */ 189 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7791", 190 + "sdhi0_data4", "sdhi0"), 191 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7791", 192 + "sdhi0_ctrl", "sdhi0"), 193 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7791", 194 + "sdhi0_cd", "sdhi0"), 195 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7791", 196 + "sdhi0_wp", "sdhi0"), 197 + /* SDHI2 */ 198 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-r8a7791", 199 + "sdhi1_data4", "sdhi1"), 200 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-r8a7791", 201 + "sdhi1_ctrl", "sdhi1"), 202 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-r8a7791", 203 + "sdhi1_cd", "sdhi1"), 204 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-r8a7791", 205 + "sdhi1_wp", "sdhi1"), 206 + /* SDHI2 */ 207 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-r8a7791", 208 + "sdhi2_data4", "sdhi2"), 209 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-r8a7791", 210 + "sdhi2_ctrl", "sdhi2"), 211 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-r8a7791", 212 + "sdhi2_cd", "sdhi2"), 393 213 }; 394 214 395 215 static void __init koelsch_add_standard_devices(void) ··· 438 180 ARRAY_SIZE(koelsch_pinctrl_map)); 439 181 r8a7791_pinmux_init(); 440 182 r8a7791_add_standard_devices(); 441 - platform_device_register_resndata(&platform_bus, "r8a7791-ether", -1, 442 - ether_resources, 443 - ARRAY_SIZE(ether_resources), 444 - &ether_pdata, sizeof(ether_pdata)); 183 + platform_device_register_full(&ether_info); 445 184 platform_device_register_data(&platform_bus, "leds-gpio", -1, 446 185 &koelsch_leds_pdata, 447 186 sizeof(koelsch_leds_pdata)); 448 187 platform_device_register_data(&platform_bus, "gpio-keys", -1, 449 188 &koelsch_keys_pdata, 450 189 sizeof(koelsch_keys_pdata)); 190 + platform_device_register_resndata(&platform_bus, "qspi", 0, 191 + qspi_resources, 192 + ARRAY_SIZE(qspi_resources), 193 + &qspi_pdata, sizeof(qspi_pdata)); 194 + spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); 451 195 452 196 koelsch_add_du_device(); 197 + 198 + platform_device_register_full(&sata0_info); 199 + 200 + koelsch_add_i2c(1); 201 + koelsch_add_i2c(2); 202 + koelsch_add_i2c(4); 203 + koelsch_add_i2c(5); 204 + 205 + platform_device_register_data(&platform_bus, "reg-fixed-voltage", 0, 206 + &vcc_sdhi0_info, sizeof(struct fixed_voltage_config)); 207 + platform_device_register_data(&platform_bus, "reg-fixed-voltage", 1, 208 + &vcc_sdhi1_info, sizeof(struct fixed_voltage_config)); 209 + platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2, 210 + &vcc_sdhi2_info, sizeof(struct fixed_voltage_config)); 211 + platform_device_register_data(&platform_bus, "gpio-regulator", 0, 212 + &vccq_sdhi0_info, sizeof(struct gpio_regulator_config)); 213 + platform_device_register_data(&platform_bus, "gpio-regulator", 1, 214 + &vccq_sdhi1_info, sizeof(struct gpio_regulator_config)); 215 + platform_device_register_data(&platform_bus, "gpio-regulator", 2, 216 + &vccq_sdhi2_info, sizeof(struct gpio_regulator_config)); 217 + 218 + platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, 219 + sdhi0_resources, ARRAY_SIZE(sdhi0_resources), 220 + &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); 221 + 222 + platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1, 223 + sdhi1_resources, ARRAY_SIZE(sdhi1_resources), 224 + &sdhi1_info, sizeof(struct sh_mobile_sdhi_info)); 225 + 226 + platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 2, 227 + sdhi2_resources, ARRAY_SIZE(sdhi2_resources), 228 + &sdhi2_info, sizeof(struct sh_mobile_sdhi_info)); 229 + 453 230 } 454 231 455 232 /* ··· 507 214 static void __init koelsch_init(void) 508 215 { 509 216 koelsch_add_standard_devices(); 217 + 218 + irq_set_irq_type(irq_pin(0), IRQ_TYPE_LEVEL_LOW); 510 219 511 220 if (IS_ENABLED(CONFIG_PHYLIB)) 512 221 phy_register_fixup_for_id("r8a7791-ether-ff:01",
-48
arch/arm/mach-shmobile/board-kzm9d-reference.c
··· 1 - /* 2 - * kzm9d board support - Reference DT implementation 3 - * 4 - * Copyright (C) 2013 Renesas Solutions Corp. 5 - * Copyright (C) 2013 Magnus Damm 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; version 2 of the License. 10 - * 11 - * This program is distributed in the hope that it will be useful, 12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 - * GNU General Public License for more details. 15 - * 16 - * You should have received a copy of the GNU General Public License 17 - * along with this program; if not, write to the Free Software 18 - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 - */ 20 - 21 - #include <linux/init.h> 22 - #include <linux/of_platform.h> 23 - #include <mach/emev2.h> 24 - #include <mach/common.h> 25 - #include <asm/mach/arch.h> 26 - 27 - static void __init kzm9d_add_standard_devices(void) 28 - { 29 - if (!IS_ENABLED(CONFIG_COMMON_CLK)) 30 - emev2_clock_init(); 31 - 32 - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 33 - } 34 - 35 - static const char *kzm9d_boards_compat_dt[] __initdata = { 36 - "renesas,kzm9d", 37 - "renesas,kzm9d-reference", 38 - NULL, 39 - }; 40 - 41 - DT_MACHINE_START(KZM9D_DT, "kzm9d") 42 - .smp = smp_ops(emev2_smp_ops), 43 - .map_io = emev2_map_io, 44 - .init_early = emev2_init_delay, 45 - .init_machine = kzm9d_add_standard_devices, 46 - .init_late = shmobile_init_late, 47 - .dt_compat = kzm9d_boards_compat_dt, 48 - MACHINE_END
+89 -20
arch/arm/mach-shmobile/board-lager-reference.c
··· 20 20 21 21 #include <linux/clk.h> 22 22 #include <linux/clkdev.h> 23 + #include <linux/dma-mapping.h> 23 24 #include <linux/init.h> 24 25 #include <linux/of_platform.h> 26 + #include <linux/platform_data/rcar-du.h> 25 27 #include <mach/common.h> 28 + #include <mach/irqs.h> 26 29 #include <mach/rcar-gen2.h> 27 30 #include <mach/r8a7790.h> 28 31 #include <asm/mach/arch.h> 29 32 33 + /* DU */ 34 + static struct rcar_du_encoder_data lager_du_encoders[] = { 35 + { 36 + .type = RCAR_DU_ENCODER_VGA, 37 + .output = RCAR_DU_OUTPUT_DPAD0, 38 + }, { 39 + .type = RCAR_DU_ENCODER_NONE, 40 + .output = RCAR_DU_OUTPUT_LVDS1, 41 + .connector.lvds.panel = { 42 + .width_mm = 210, 43 + .height_mm = 158, 44 + .mode = { 45 + .clock = 65000, 46 + .hdisplay = 1024, 47 + .hsync_start = 1048, 48 + .hsync_end = 1184, 49 + .htotal = 1344, 50 + .vdisplay = 768, 51 + .vsync_start = 771, 52 + .vsync_end = 777, 53 + .vtotal = 806, 54 + .flags = 0, 55 + }, 56 + }, 57 + }, 58 + }; 59 + 60 + static struct rcar_du_platform_data lager_du_pdata = { 61 + .encoders = lager_du_encoders, 62 + .num_encoders = ARRAY_SIZE(lager_du_encoders), 63 + }; 64 + 65 + static const struct resource du_resources[] __initconst = { 66 + DEFINE_RES_MEM(0xfeb00000, 0x70000), 67 + DEFINE_RES_MEM_NAMED(0xfeb90000, 0x1c, "lvds.0"), 68 + DEFINE_RES_MEM_NAMED(0xfeb94000, 0x1c, "lvds.1"), 69 + DEFINE_RES_IRQ(gic_spi(256)), 70 + DEFINE_RES_IRQ(gic_spi(268)), 71 + DEFINE_RES_IRQ(gic_spi(269)), 72 + }; 73 + 74 + static void __init lager_add_du_device(void) 75 + { 76 + struct platform_device_info info = { 77 + .name = "rcar-du-r8a7790", 78 + .id = -1, 79 + .res = du_resources, 80 + .num_res = ARRAY_SIZE(du_resources), 81 + .data = &lager_du_pdata, 82 + .size_data = sizeof(lager_du_pdata), 83 + .dma_mask = DMA_BIT_MASK(32), 84 + }; 85 + 86 + platform_device_register_full(&info); 87 + } 88 + 30 89 static void __init lager_add_standard_devices(void) 31 90 { 32 - #ifdef CONFIG_COMMON_CLK 33 91 /* 34 - * This is a really crude hack to provide clkdev support to the SCIF 35 - * and CMT devices until they get moved to DT. 92 + * This is a really crude hack to provide clkdev support to platform 93 + * devices until they get moved to DT. 36 94 */ 37 - static const char * const scif_names[] = { 38 - "scifa0", "scifa1", "scifb0", "scifb1", 39 - "scifb2", "scifa2", "scif0", "scif1", 40 - "hscif0", "hscif1", 95 + static const struct clk_name { 96 + const char *clk; 97 + const char *con_id; 98 + const char *dev_id; 99 + } clk_names[] = { 100 + { "cmt0", NULL, "sh_cmt.0" }, 101 + { "scifa0", NULL, "sh-sci.0" }, 102 + { "scifa1", NULL, "sh-sci.1" }, 103 + { "scifb0", NULL, "sh-sci.2" }, 104 + { "scifb1", NULL, "sh-sci.3" }, 105 + { "scifb2", NULL, "sh-sci.4" }, 106 + { "scifa2", NULL, "sh-sci.5" }, 107 + { "scif0", NULL, "sh-sci.6" }, 108 + { "scif1", NULL, "sh-sci.7" }, 109 + { "hscif0", NULL, "sh-sci.8" }, 110 + { "hscif1", NULL, "sh-sci.9" }, 111 + { "du0", "du.0", "rcar-du-r8a7790" }, 112 + { "du1", "du.1", "rcar-du-r8a7790" }, 113 + { "du2", "du.2", "rcar-du-r8a7790" }, 114 + { "lvds0", "lvds.0", "rcar-du-r8a7790" }, 115 + { "lvds1", "lvds.1", "rcar-du-r8a7790" }, 41 116 }; 42 117 struct clk *clk; 43 118 unsigned int i; 44 119 45 - for (i = 0; i < ARRAY_SIZE(scif_names); ++i) { 46 - clk = clk_get(NULL, scif_names[i]); 47 - if (clk) { 48 - clk_register_clkdev(clk, NULL, "sh-sci.%u", i); 120 + for (i = 0; i < ARRAY_SIZE(clk_names); ++i) { 121 + clk = clk_get(NULL, clk_names[i].clk); 122 + if (!IS_ERR(clk)) { 123 + clk_register_clkdev(clk, clk_names[i].con_id, 124 + clk_names[i].dev_id); 49 125 clk_put(clk); 50 126 } 51 127 } 52 128 53 - clk = clk_get(NULL, "cmt0"); 54 - if (clk) { 55 - clk_register_clkdev(clk, NULL, "sh_cmt.0"); 56 - clk_put(clk); 57 - } 58 - #else 59 - r8a7790_clock_init(); 60 - #endif 61 - 62 129 r8a7790_add_dt_devices(); 63 130 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 131 + 132 + lager_add_du_device(); 64 133 } 65 134 66 135 static const char *lager_boards_compat_dt[] __initdata = {
+485 -7
arch/arm/mach-shmobile/board-lager.c
··· 1 1 /* 2 2 * Lager board support 3 3 * 4 - * Copyright (C) 2013 Renesas Solutions Corp. 4 + * Copyright (C) 2013-2014 Renesas Solutions Corp. 5 5 * Copyright (C) 2013 Magnus Damm 6 + * Copyright (C) 2014 Cogent Embedded, Inc. 6 7 * 7 8 * This program is free software; you can redistribute it and/or modify 8 9 * it under the terms of the GNU General Public License as published by ··· 21 20 22 21 #include <linux/gpio.h> 23 22 #include <linux/gpio_keys.h> 23 + #include <linux/i2c.h> 24 24 #include <linux/input.h> 25 25 #include <linux/interrupt.h> 26 + #include <linux/irq.h> 26 27 #include <linux/kernel.h> 27 28 #include <linux/leds.h> 29 + #include <linux/mfd/tmio.h> 28 30 #include <linux/mmc/host.h> 29 31 #include <linux/mmc/sh_mmcif.h> 32 + #include <linux/mmc/sh_mobile_sdhi.h> 30 33 #include <linux/pinctrl/machine.h> 34 + #include <linux/platform_data/camera-rcar.h> 31 35 #include <linux/platform_data/gpio-rcar.h> 32 36 #include <linux/platform_data/rcar-du.h> 37 + #include <linux/platform_data/usb-rcar-gen2-phy.h> 33 38 #include <linux/platform_device.h> 34 39 #include <linux/phy.h> 35 40 #include <linux/regulator/driver.h> ··· 43 36 #include <linux/regulator/gpio-regulator.h> 44 37 #include <linux/regulator/machine.h> 45 38 #include <linux/sh_eth.h> 39 + #include <linux/usb/phy.h> 40 + #include <linux/usb/renesas_usbhs.h> 46 41 #include <mach/common.h> 47 42 #include <mach/irqs.h> 48 43 #include <mach/r8a7790.h> 44 + #include <media/soc_camera.h> 49 45 #include <asm/mach-types.h> 50 46 #include <asm/mach/arch.h> 51 47 #include <linux/mtd/partitions.h> ··· 56 46 #include <linux/spi/flash.h> 57 47 #include <linux/spi/rspi.h> 58 48 #include <linux/spi/spi.h> 49 + #include <sound/rcar_snd.h> 50 + #include <sound/simple_card.h> 51 + 52 + /* 53 + * SSI-AK4643 54 + * 55 + * SW1: 1: AK4643 56 + * 2: CN22 57 + * 3: ADV7511 58 + * 59 + * this command is required when playback. 60 + * 61 + * # amixer set "LINEOUT Mixer DACL" on 62 + */ 63 + 64 + /* 65 + * SDHI0 (CN8) 66 + * 67 + * JP3: pin1 68 + * SW20: pin1 69 + 70 + * GP5_24: 1: VDD 3.3V (defult) 71 + * 0: VDD 0.0V 72 + * GP5_29: 1: VccQ 3.3V (defult) 73 + * 0: VccQ 1.8V 74 + * 75 + */ 59 76 60 77 /* DU */ 61 78 static struct rcar_du_encoder_data lager_du_encoders[] = { ··· 265 228 /* Ether */ 266 229 static const struct sh_eth_plat_data ether_pdata __initconst = { 267 230 .phy = 0x1, 231 + .phy_irq = irq_pin(0), 268 232 .edmac_endian = EDMAC_LITTLE_ENDIAN, 269 233 .phy_interface = PHY_INTERFACE_MODE_RMII, 270 234 .ether_link_active_low = 1, ··· 274 236 static const struct resource ether_resources[] __initconst = { 275 237 DEFINE_RES_MEM(0xee700000, 0x400), 276 238 DEFINE_RES_IRQ(gic_spi(162)), 239 + }; 240 + 241 + static const struct platform_device_info ether_info __initconst = { 242 + .parent = &platform_bus, 243 + .name = "r8a7790-ether", 244 + .id = -1, 245 + .res = ether_resources, 246 + .num_res = ARRAY_SIZE(ether_resources), 247 + .data = &ether_pdata, 248 + .size_data = sizeof(ether_pdata), 249 + .dma_mask = DMA_BIT_MASK(32), 277 250 }; 278 251 279 252 /* SPI Flash memory (Spansion S25FL512SAGMFIG11 64Mb) */ ··· 312 263 }, 313 264 }; 314 265 315 - static struct flash_platform_data spi_flash_data = { 266 + static const struct flash_platform_data spi_flash_data = { 316 267 .name = "m25p80", 317 268 .parts = spi_flash_part, 318 269 .nr_parts = ARRAY_SIZE(spi_flash_part), ··· 337 288 /* QSPI resource */ 338 289 static const struct resource qspi_resources[] __initconst = { 339 290 DEFINE_RES_MEM(0xe6b10000, 0x1000), 340 - DEFINE_RES_IRQ(gic_spi(184)), 291 + DEFINE_RES_IRQ_NAMED(gic_spi(184), "mux"), 341 292 }; 293 + 294 + /* VIN */ 295 + static const struct resource vin_resources[] __initconst = { 296 + /* VIN0 */ 297 + DEFINE_RES_MEM(0xe6ef0000, 0x1000), 298 + DEFINE_RES_IRQ(gic_spi(188)), 299 + /* VIN1 */ 300 + DEFINE_RES_MEM(0xe6ef1000, 0x1000), 301 + DEFINE_RES_IRQ(gic_spi(189)), 302 + }; 303 + 304 + static void __init lager_add_vin_device(unsigned idx, 305 + struct rcar_vin_platform_data *pdata) 306 + { 307 + struct platform_device_info vin_info = { 308 + .parent = &platform_bus, 309 + .name = "r8a7790-vin", 310 + .id = idx, 311 + .res = &vin_resources[idx * 2], 312 + .num_res = 2, 313 + .dma_mask = DMA_BIT_MASK(32), 314 + .data = pdata, 315 + .size_data = sizeof(*pdata), 316 + }; 317 + 318 + BUG_ON(idx > 1); 319 + 320 + platform_device_register_full(&vin_info); 321 + } 322 + 323 + #define LAGER_CAMERA(idx, name, addr, pdata, flag) \ 324 + static struct i2c_board_info i2c_cam##idx##_device = { \ 325 + I2C_BOARD_INFO(name, addr), \ 326 + }; \ 327 + \ 328 + static struct rcar_vin_platform_data vin##idx##_pdata = { \ 329 + .flags = flag, \ 330 + }; \ 331 + \ 332 + static struct soc_camera_link cam##idx##_link = { \ 333 + .bus_id = idx, \ 334 + .board_info = &i2c_cam##idx##_device, \ 335 + .i2c_adapter_id = 2, \ 336 + .module_name = name, \ 337 + .priv = pdata, \ 338 + } 339 + 340 + /* Camera 0 is not currently supported due to adv7612 support missing */ 341 + LAGER_CAMERA(1, "adv7180", 0x20, NULL, RCAR_VIN_BT656); 342 + 343 + static void __init lager_add_camera1_device(void) 344 + { 345 + platform_device_register_data(&platform_bus, "soc-camera-pdrv", 1, 346 + &cam1_link, sizeof(cam1_link)); 347 + lager_add_vin_device(1, &vin1_pdata); 348 + } 349 + 350 + /* SATA1 */ 351 + static const struct resource sata1_resources[] __initconst = { 352 + DEFINE_RES_MEM(0xee500000, 0x2000), 353 + DEFINE_RES_IRQ(gic_spi(106)), 354 + }; 355 + 356 + static const struct platform_device_info sata1_info __initconst = { 357 + .parent = &platform_bus, 358 + .name = "sata-r8a7790", 359 + .id = 1, 360 + .res = sata1_resources, 361 + .num_res = ARRAY_SIZE(sata1_resources), 362 + .dma_mask = DMA_BIT_MASK(32), 363 + }; 364 + 365 + /* USBHS */ 366 + static const struct resource usbhs_resources[] __initconst = { 367 + DEFINE_RES_MEM(0xe6590000, 0x100), 368 + DEFINE_RES_IRQ(gic_spi(107)), 369 + }; 370 + 371 + struct usbhs_private { 372 + struct renesas_usbhs_platform_info info; 373 + struct usb_phy *phy; 374 + }; 375 + 376 + #define usbhs_get_priv(pdev) \ 377 + container_of(renesas_usbhs_get_info(pdev), struct usbhs_private, info) 378 + 379 + static int usbhs_power_ctrl(struct platform_device *pdev, 380 + void __iomem *base, int enable) 381 + { 382 + struct usbhs_private *priv = usbhs_get_priv(pdev); 383 + 384 + if (!priv->phy) 385 + return -ENODEV; 386 + 387 + if (enable) { 388 + int retval = usb_phy_init(priv->phy); 389 + 390 + if (!retval) 391 + retval = usb_phy_set_suspend(priv->phy, 0); 392 + return retval; 393 + } 394 + 395 + usb_phy_set_suspend(priv->phy, 1); 396 + usb_phy_shutdown(priv->phy); 397 + return 0; 398 + } 399 + 400 + static int usbhs_hardware_init(struct platform_device *pdev) 401 + { 402 + struct usbhs_private *priv = usbhs_get_priv(pdev); 403 + struct usb_phy *phy; 404 + int ret; 405 + 406 + /* USB0 Function - use PWEN as GPIO input to detect DIP Switch SW5 407 + * setting to avoid VBUS short circuit due to wrong cable. 408 + * PWEN should be pulled up high if USB Function is selected by SW5 409 + */ 410 + gpio_request_one(RCAR_GP_PIN(5, 18), GPIOF_IN, NULL); /* USB0_PWEN */ 411 + if (!gpio_get_value(RCAR_GP_PIN(5, 18))) { 412 + pr_warn("Error: USB Function not selected - check SW5 + SW6\n"); 413 + ret = -ENOTSUPP; 414 + goto error; 415 + } 416 + 417 + phy = usb_get_phy_dev(&pdev->dev, 0); 418 + if (IS_ERR(phy)) { 419 + ret = PTR_ERR(phy); 420 + goto error; 421 + } 422 + 423 + priv->phy = phy; 424 + return 0; 425 + error: 426 + gpio_free(RCAR_GP_PIN(5, 18)); 427 + return ret; 428 + } 429 + 430 + static int usbhs_hardware_exit(struct platform_device *pdev) 431 + { 432 + struct usbhs_private *priv = usbhs_get_priv(pdev); 433 + 434 + if (!priv->phy) 435 + return 0; 436 + 437 + usb_put_phy(priv->phy); 438 + priv->phy = NULL; 439 + 440 + gpio_free(RCAR_GP_PIN(5, 18)); 441 + return 0; 442 + } 443 + 444 + static int usbhs_get_id(struct platform_device *pdev) 445 + { 446 + return USBHS_GADGET; 447 + } 448 + 449 + static u32 lager_usbhs_pipe_type[] = { 450 + USB_ENDPOINT_XFER_CONTROL, 451 + USB_ENDPOINT_XFER_ISOC, 452 + USB_ENDPOINT_XFER_ISOC, 453 + USB_ENDPOINT_XFER_BULK, 454 + USB_ENDPOINT_XFER_BULK, 455 + USB_ENDPOINT_XFER_BULK, 456 + USB_ENDPOINT_XFER_INT, 457 + USB_ENDPOINT_XFER_INT, 458 + USB_ENDPOINT_XFER_INT, 459 + USB_ENDPOINT_XFER_BULK, 460 + USB_ENDPOINT_XFER_BULK, 461 + USB_ENDPOINT_XFER_BULK, 462 + USB_ENDPOINT_XFER_BULK, 463 + USB_ENDPOINT_XFER_BULK, 464 + USB_ENDPOINT_XFER_BULK, 465 + USB_ENDPOINT_XFER_BULK, 466 + }; 467 + 468 + static struct usbhs_private usbhs_priv __initdata = { 469 + .info = { 470 + .platform_callback = { 471 + .power_ctrl = usbhs_power_ctrl, 472 + .hardware_init = usbhs_hardware_init, 473 + .hardware_exit = usbhs_hardware_exit, 474 + .get_id = usbhs_get_id, 475 + }, 476 + .driver_param = { 477 + .buswait_bwait = 4, 478 + .pipe_type = lager_usbhs_pipe_type, 479 + .pipe_size = ARRAY_SIZE(lager_usbhs_pipe_type), 480 + }, 481 + } 482 + }; 483 + 484 + static void __init lager_register_usbhs(void) 485 + { 486 + usb_bind_phy("renesas_usbhs", 0, "usb_phy_rcar_gen2"); 487 + platform_device_register_resndata(&platform_bus, 488 + "renesas_usbhs", -1, 489 + usbhs_resources, 490 + ARRAY_SIZE(usbhs_resources), 491 + &usbhs_priv.info, 492 + sizeof(usbhs_priv.info)); 493 + } 494 + 495 + /* USBHS PHY */ 496 + static const struct rcar_gen2_phy_platform_data usbhs_phy_pdata __initconst = { 497 + .chan0_pci = 0, /* Channel 0 is USBHS */ 498 + .chan2_pci = 1, /* Channel 2 is PCI USB */ 499 + }; 500 + 501 + static const struct resource usbhs_phy_resources[] __initconst = { 502 + DEFINE_RES_MEM(0xe6590100, 0x100), 503 + }; 504 + 505 + /* I2C */ 506 + static struct i2c_board_info i2c2_devices[] = { 507 + { 508 + I2C_BOARD_INFO("ak4643", 0x12), 509 + } 510 + }; 511 + 512 + /* Sound */ 513 + static struct resource rsnd_resources[] __initdata = { 514 + [RSND_GEN2_SCU] = DEFINE_RES_MEM(0xec500000, 0x1000), 515 + [RSND_GEN2_ADG] = DEFINE_RES_MEM(0xec5a0000, 0x100), 516 + [RSND_GEN2_SSIU] = DEFINE_RES_MEM(0xec540000, 0x1000), 517 + [RSND_GEN2_SSI] = DEFINE_RES_MEM(0xec541000, 0x1280), 518 + }; 519 + 520 + static struct rsnd_ssi_platform_info rsnd_ssi[] = { 521 + RSND_SSI_SET(0, 0, gic_spi(370), RSND_SSI_PLAY), 522 + RSND_SSI_SET(0, 0, gic_spi(371), RSND_SSI_CLK_PIN_SHARE), 523 + }; 524 + 525 + static struct rsnd_scu_platform_info rsnd_scu[2] = { 526 + /* no member at this point */ 527 + }; 528 + 529 + static struct rcar_snd_info rsnd_info = { 530 + .flags = RSND_GEN2, 531 + .ssi_info = rsnd_ssi, 532 + .ssi_info_nr = ARRAY_SIZE(rsnd_ssi), 533 + .scu_info = rsnd_scu, 534 + .scu_info_nr = ARRAY_SIZE(rsnd_scu), 535 + }; 536 + 537 + static struct asoc_simple_card_info rsnd_card_info = { 538 + .name = "AK4643", 539 + .card = "SSI01-AK4643", 540 + .codec = "ak4642-codec.2-0012", 541 + .platform = "rcar_sound", 542 + .daifmt = SND_SOC_DAIFMT_LEFT_J, 543 + .cpu_dai = { 544 + .name = "rcar_sound", 545 + .fmt = SND_SOC_DAIFMT_CBS_CFS, 546 + }, 547 + .codec_dai = { 548 + .name = "ak4642-hifi", 549 + .fmt = SND_SOC_DAIFMT_CBM_CFM, 550 + .sysclk = 11289600, 551 + }, 552 + }; 553 + 554 + static void __init lager_add_rsnd_device(void) 555 + { 556 + struct platform_device_info cardinfo = { 557 + .parent = &platform_bus, 558 + .name = "asoc-simple-card", 559 + .id = -1, 560 + .data = &rsnd_card_info, 561 + .size_data = sizeof(struct asoc_simple_card_info), 562 + .dma_mask = DMA_BIT_MASK(32), 563 + }; 564 + 565 + i2c_register_board_info(2, i2c2_devices, 566 + ARRAY_SIZE(i2c2_devices)); 567 + 568 + platform_device_register_resndata( 569 + &platform_bus, "rcar_sound", -1, 570 + rsnd_resources, ARRAY_SIZE(rsnd_resources), 571 + &rsnd_info, sizeof(rsnd_info)); 572 + 573 + platform_device_register_full(&cardinfo); 574 + } 575 + 576 + /* SDHI0 */ 577 + static struct sh_mobile_sdhi_info sdhi0_info __initdata = { 578 + .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | 579 + MMC_CAP_POWER_OFF_CARD, 580 + .tmio_caps2 = MMC_CAP2_NO_MULTI_READ, 581 + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | 582 + TMIO_MMC_WRPROTECT_DISABLE, 583 + }; 584 + 585 + static struct resource sdhi0_resources[] __initdata = { 586 + DEFINE_RES_MEM(0xee100000, 0x200), 587 + DEFINE_RES_IRQ(gic_spi(165)), 588 + }; 589 + 590 + /* SDHI2 */ 591 + static struct sh_mobile_sdhi_info sdhi2_info __initdata = { 592 + .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | 593 + MMC_CAP_POWER_OFF_CARD, 594 + .tmio_caps2 = MMC_CAP2_NO_MULTI_READ, 595 + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | 596 + TMIO_MMC_WRPROTECT_DISABLE, 597 + }; 598 + 599 + static struct resource sdhi2_resources[] __initdata = { 600 + DEFINE_RES_MEM(0xee140000, 0x100), 601 + DEFINE_RES_IRQ(gic_spi(167)), 602 + }; 603 + 604 + /* Internal PCI1 */ 605 + static const struct resource pci1_resources[] __initconst = { 606 + DEFINE_RES_MEM(0xee0b0000, 0x10000), /* CFG */ 607 + DEFINE_RES_MEM(0xee0a0000, 0x10000), /* MEM */ 608 + DEFINE_RES_IRQ(gic_spi(112)), 609 + }; 610 + 611 + static const struct platform_device_info pci1_info __initconst = { 612 + .parent = &platform_bus, 613 + .name = "pci-rcar-gen2", 614 + .id = 1, 615 + .res = pci1_resources, 616 + .num_res = ARRAY_SIZE(pci1_resources), 617 + .dma_mask = DMA_BIT_MASK(32), 618 + }; 619 + 620 + static void __init lager_add_usb1_device(void) 621 + { 622 + platform_device_register_full(&pci1_info); 623 + } 624 + 625 + /* Internal PCI2 */ 626 + static const struct resource pci2_resources[] __initconst = { 627 + DEFINE_RES_MEM(0xee0d0000, 0x10000), /* CFG */ 628 + DEFINE_RES_MEM(0xee0c0000, 0x10000), /* MEM */ 629 + DEFINE_RES_IRQ(gic_spi(113)), 630 + }; 631 + 632 + static const struct platform_device_info pci2_info __initconst = { 633 + .parent = &platform_bus, 634 + .name = "pci-rcar-gen2", 635 + .id = 2, 636 + .res = pci2_resources, 637 + .num_res = ARRAY_SIZE(pci2_resources), 638 + .dma_mask = DMA_BIT_MASK(32), 639 + }; 640 + 641 + static void __init lager_add_usb2_device(void) 642 + { 643 + platform_device_register_full(&pci2_info); 644 + } 342 645 343 646 static const struct pinctrl_map lager_pinctrl_map[] = { 344 647 /* DU (CN10: ARGB0, CN13: LVDS) */ ··· 700 299 "du_sync_1", "du"), 701 300 PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7790", "pfc-r8a7790", 702 301 "du_clk_out_0", "du"), 302 + /* I2C2 */ 303 + PIN_MAP_MUX_GROUP_DEFAULT("i2c-rcar.2", "pfc-r8a7790", 304 + "i2c2", "i2c2"), 305 + /* QSPI */ 306 + PIN_MAP_MUX_GROUP_DEFAULT("qspi.0", "pfc-r8a7790", 307 + "qspi_ctrl", "qspi"), 308 + PIN_MAP_MUX_GROUP_DEFAULT("qspi.0", "pfc-r8a7790", 309 + "qspi_data4", "qspi"), 703 310 /* SCIF0 (CN19: DEBUG SERIAL0) */ 704 311 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7790", 705 312 "scif0_data", "scif0"), 706 313 /* SCIF1 (CN20: DEBUG SERIAL1) */ 707 314 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.7", "pfc-r8a7790", 708 315 "scif1_data", "scif1"), 316 + /* SDHI0 */ 317 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7790", 318 + "sdhi0_data4", "sdhi0"), 319 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7790", 320 + "sdhi0_ctrl", "sdhi0"), 321 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7790", 322 + "sdhi0_cd", "sdhi0"), 323 + /* SDHI2 */ 324 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-r8a7790", 325 + "sdhi2_data4", "sdhi2"), 326 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-r8a7790", 327 + "sdhi2_ctrl", "sdhi2"), 328 + PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-r8a7790", 329 + "sdhi2_cd", "sdhi2"), 330 + /* SSI (CN17: sound) */ 331 + PIN_MAP_MUX_GROUP_DEFAULT("rcar_sound", "pfc-r8a7790", 332 + "ssi0129_ctrl", "ssi"), 333 + PIN_MAP_MUX_GROUP_DEFAULT("rcar_sound", "pfc-r8a7790", 334 + "ssi0_data", "ssi"), 335 + PIN_MAP_MUX_GROUP_DEFAULT("rcar_sound", "pfc-r8a7790", 336 + "ssi1_data", "ssi"), 337 + PIN_MAP_MUX_GROUP_DEFAULT("rcar_sound", "pfc-r8a7790", 338 + "audio_clk_a", "audio_clk"), 709 339 /* MMCIF1 */ 710 340 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.1", "pfc-r8a7790", 711 341 "mmc1_data8", "mmc1"), ··· 751 319 "eth_rmii", "eth"), 752 320 PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-ether", "pfc-r8a7790", 753 321 "intc_irq0", "intc"), 322 + /* VIN0 */ 323 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.0", "pfc-r8a7790", 324 + "vin0_data24", "vin0"), 325 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.0", "pfc-r8a7790", 326 + "vin0_sync", "vin0"), 327 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.0", "pfc-r8a7790", 328 + "vin0_field", "vin0"), 329 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.0", "pfc-r8a7790", 330 + "vin0_clkenb", "vin0"), 331 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.0", "pfc-r8a7790", 332 + "vin0_clk", "vin0"), 333 + /* VIN1 */ 334 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.1", "pfc-r8a7790", 335 + "vin1_data8", "vin1"), 336 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-vin.1", "pfc-r8a7790", 337 + "vin1_clk", "vin1"), 338 + /* USB0 */ 339 + PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs", "pfc-r8a7790", 340 + "usb0_ovc_vbus", "usb0"), 341 + /* USB1 */ 342 + PIN_MAP_MUX_GROUP_DEFAULT("pci-rcar-gen2.1", "pfc-r8a7790", 343 + "usb1", "usb1"), 344 + /* USB2 */ 345 + PIN_MAP_MUX_GROUP_DEFAULT("pci-rcar-gen2.2", "pfc-r8a7790", 346 + "usb2", "usb2"), 754 347 }; 755 348 756 349 static void __init lager_add_standard_devices(void) ··· 803 346 mmcif1_resources, ARRAY_SIZE(mmcif1_resources), 804 347 &mmcif1_pdata, sizeof(mmcif1_pdata)); 805 348 806 - platform_device_register_resndata(&platform_bus, "r8a7790-ether", -1, 807 - ether_resources, 808 - ARRAY_SIZE(ether_resources), 809 - &ether_pdata, sizeof(ether_pdata)); 349 + platform_device_register_full(&ether_info); 810 350 811 351 lager_add_du_device(); 812 352 ··· 822 368 &vccq_sdhi0_info, sizeof(struct gpio_regulator_config)); 823 369 platform_device_register_data(&platform_bus, "gpio-regulator", gpio_regulator_idx++, 824 370 &vccq_sdhi2_info, sizeof(struct gpio_regulator_config)); 371 + 372 + lager_add_camera1_device(); 373 + 374 + platform_device_register_full(&sata1_info); 375 + 376 + platform_device_register_resndata(&platform_bus, "usb_phy_rcar_gen2", 377 + -1, usbhs_phy_resources, 378 + ARRAY_SIZE(usbhs_phy_resources), 379 + &usbhs_phy_pdata, 380 + sizeof(usbhs_phy_pdata)); 381 + lager_register_usbhs(); 382 + lager_add_usb1_device(); 383 + lager_add_usb2_device(); 384 + 385 + lager_add_rsnd_device(); 386 + 387 + platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, 388 + sdhi0_resources, ARRAY_SIZE(sdhi0_resources), 389 + &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); 390 + platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 2, 391 + sdhi2_resources, ARRAY_SIZE(sdhi2_resources), 392 + &sdhi2_info, sizeof(struct sh_mobile_sdhi_info)); 825 393 } 826 394 827 395 /* ··· 866 390 static void __init lager_init(void) 867 391 { 868 392 lager_add_standard_devices(); 393 + 394 + irq_set_irq_type(irq_pin(0), IRQ_TYPE_LEVEL_LOW); 869 395 870 396 if (IS_ENABLED(CONFIG_PHYLIB)) 871 397 phy_register_fixup_for_id("r8a7790-ether-ff:01",
+410
arch/arm/mach-shmobile/include/mach/head-kzm9g.txt
··· 1 + LIST "KZM9G low-level initialization routine." 2 + LIST "Adapted from u-boot KZM9G support code." 3 + 4 + LIST "Copyright (C) 2013 Ulrich Hecht" 5 + 6 + LIST "This program is free software; you can redistribute it and/or modify" 7 + LIST "it under the terms of the GNU General Public License version 2 as" 8 + LIST "published by the Free Software Foundation." 9 + 10 + LIST "This program is distributed in the hope that it will be useful," 11 + LIST "but WITHOUT ANY WARRANTY; without even the implied warranty of" 12 + LIST "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the" 13 + LIST "GNU General Public License for more details." 14 + 15 + 16 + LIST "Register definitions:" 17 + 18 + LIST "Secure control register" 19 + #define LIFEC_SEC_SRC (0xE6110008) 20 + 21 + LIST "RWDT" 22 + #define RWDT_BASE (0xE6020000) 23 + #define RWTCSRA0 (RWDT_BASE + 0x04) 24 + 25 + LIST "HPB Semaphore Control Registers" 26 + #define HPBSCR_BASE (0xE6000000) 27 + #define HPBCTRL6 (HPBSCR_BASE + 0x1030) 28 + 29 + #define SBSC1_BASE (0xFE400000) 30 + #define SDCR0A (SBSC1_BASE + 0x0008) 31 + #define SDCR1A (SBSC1_BASE + 0x000C) 32 + #define SDPCRA (SBSC1_BASE + 0x0010) 33 + #define SDCR0SA (SBSC1_BASE + 0x0018) 34 + #define SDCR1SA (SBSC1_BASE + 0x001C) 35 + #define RTCSRA (SBSC1_BASE + 0x0020) 36 + #define RTCORA (SBSC1_BASE + 0x0028) 37 + #define RTCORHA (SBSC1_BASE + 0x002C) 38 + #define SDWCRC0A (SBSC1_BASE + 0x0040) 39 + #define SDWCRC1A (SBSC1_BASE + 0x0044) 40 + #define SDWCR00A (SBSC1_BASE + 0x0048) 41 + #define SDWCR01A (SBSC1_BASE + 0x004C) 42 + #define SDWCR10A (SBSC1_BASE + 0x0050) 43 + #define SDWCR11A (SBSC1_BASE + 0x0054) 44 + #define SDWCR2A (SBSC1_BASE + 0x0060) 45 + #define SDWCRC2A (SBSC1_BASE + 0x0064) 46 + #define ZQCCRA (SBSC1_BASE + 0x0068) 47 + #define SDMRACR0A (SBSC1_BASE + 0x0084) 48 + #define SDMRTMPCRA (SBSC1_BASE + 0x008C) 49 + #define SDMRTMPMSKA (SBSC1_BASE + 0x0094) 50 + #define SDGENCNTA (SBSC1_BASE + 0x009C) 51 + #define SDDRVCR0A (SBSC1_BASE + 0x00B4) 52 + #define DLLCNT0A (SBSC1_BASE + 0x0354) 53 + 54 + #define SDMRA1 (0xFE500000) 55 + #define SDMRA2 (0xFE5C0000) 56 + #define SDMRA3 (0xFE504000) 57 + 58 + #define SBSC2_BASE (0xFB400000) 59 + #define SDCR0B (SBSC2_BASE + 0x0008) 60 + #define SDCR1B (SBSC2_BASE + 0x000C) 61 + #define SDPCRB (SBSC2_BASE + 0x0010) 62 + #define SDCR0SB (SBSC2_BASE + 0x0018) 63 + #define SDCR1SB (SBSC2_BASE + 0x001C) 64 + #define RTCSRB (SBSC2_BASE + 0x0020) 65 + #define RTCORB (SBSC2_BASE + 0x0028) 66 + #define RTCORHB (SBSC2_BASE + 0x002C) 67 + #define SDWCRC0B (SBSC2_BASE + 0x0040) 68 + #define SDWCRC1B (SBSC2_BASE + 0x0044) 69 + #define SDWCR00B (SBSC2_BASE + 0x0048) 70 + #define SDWCR01B (SBSC2_BASE + 0x004C) 71 + #define SDWCR10B (SBSC2_BASE + 0x0050) 72 + #define SDWCR11B (SBSC2_BASE + 0x0054) 73 + #define SDPDCR0B (SBSC2_BASE + 0x0058) 74 + #define SDWCR2B (SBSC2_BASE + 0x0060) 75 + #define SDWCRC2B (SBSC2_BASE + 0x0064) 76 + #define ZQCCRB (SBSC2_BASE + 0x0068) 77 + #define SDMRACR0B (SBSC2_BASE + 0x0084) 78 + #define SDMRTMPCRB (SBSC2_BASE + 0x008C) 79 + #define SDMRTMPMSKB (SBSC2_BASE + 0x0094) 80 + #define SDGENCNTB (SBSC2_BASE + 0x009C) 81 + #define DPHYCNT0B (SBSC2_BASE + 0x00A0) 82 + #define DPHYCNT1B (SBSC2_BASE + 0x00A4) 83 + #define DPHYCNT2B (SBSC2_BASE + 0x00A8) 84 + #define SDDRVCR0B (SBSC2_BASE + 0x00B4) 85 + #define DLLCNT0B (SBSC2_BASE + 0x0354) 86 + 87 + #define SDMRB1 (0xFB500000) 88 + #define SDMRB2 (0xFB5C0000) 89 + #define SDMRB3 (0xFB504000) 90 + 91 + #define CPG_BASE (0xE6150000) 92 + #define FRQCRA (CPG_BASE + 0x0000) 93 + #define FRQCRB (CPG_BASE + 0x0004) 94 + #define FRQCRD (CPG_BASE + 0x00E4) 95 + #define VCLKCR1 (CPG_BASE + 0x0008) 96 + #define VCLKCR2 (CPG_BASE + 0x000C) 97 + #define VCLKCR3 (CPG_BASE + 0x001C) 98 + #define ZBCKCR (CPG_BASE + 0x0010) 99 + #define FLCKCR (CPG_BASE + 0x0014) 100 + #define SD0CKCR (CPG_BASE + 0x0074) 101 + #define SD1CKCR (CPG_BASE + 0x0078) 102 + #define SD2CKCR (CPG_BASE + 0x007C) 103 + #define FSIACKCR (CPG_BASE + 0x0018) 104 + #define SUBCKCR (CPG_BASE + 0x0080) 105 + #define SPUACKCR (CPG_BASE + 0x0084) 106 + #define SPUVCKCR (CPG_BASE + 0x0094) 107 + #define MSUCKCR (CPG_BASE + 0x0088) 108 + #define HSICKCR (CPG_BASE + 0x008C) 109 + #define FSIBCKCR (CPG_BASE + 0x0090) 110 + #define MFCK1CR (CPG_BASE + 0x0098) 111 + #define MFCK2CR (CPG_BASE + 0x009C) 112 + #define DSITCKCR (CPG_BASE + 0x0060) 113 + #define DSI0PCKCR (CPG_BASE + 0x0064) 114 + #define DSI1PCKCR (CPG_BASE + 0x0068) 115 + #define DSI0PHYCR (CPG_BASE + 0x006C) 116 + #define DVFSCR3 (CPG_BASE + 0x0174) 117 + #define DVFSCR4 (CPG_BASE + 0x0178) 118 + #define DVFSCR5 (CPG_BASE + 0x017C) 119 + #define MPMODE (CPG_BASE + 0x00CC) 120 + 121 + #define PLLECR (CPG_BASE + 0x00D0) 122 + #define PLL0CR (CPG_BASE + 0x00D8) 123 + #define PLL1CR (CPG_BASE + 0x0028) 124 + #define PLL2CR (CPG_BASE + 0x002C) 125 + #define PLL3CR (CPG_BASE + 0x00DC) 126 + #define PLL0STPCR (CPG_BASE + 0x00F0) 127 + #define PLL1STPCR (CPG_BASE + 0x00C8) 128 + #define PLL2STPCR (CPG_BASE + 0x00F8) 129 + #define PLL3STPCR (CPG_BASE + 0x00FC) 130 + #define RMSTPCR0 (CPG_BASE + 0x0110) 131 + #define RMSTPCR1 (CPG_BASE + 0x0114) 132 + #define RMSTPCR2 (CPG_BASE + 0x0118) 133 + #define RMSTPCR3 (CPG_BASE + 0x011C) 134 + #define RMSTPCR4 (CPG_BASE + 0x0120) 135 + #define RMSTPCR5 (CPG_BASE + 0x0124) 136 + #define SMSTPCR0 (CPG_BASE + 0x0130) 137 + #define SMSTPCR2 (CPG_BASE + 0x0138) 138 + #define SMSTPCR3 (CPG_BASE + 0x013C) 139 + #define CPGXXCR4 (CPG_BASE + 0x0150) 140 + #define SRCR0 (CPG_BASE + 0x80A0) 141 + #define SRCR2 (CPG_BASE + 0x80B0) 142 + #define SRCR3 (CPG_BASE + 0x80A8) 143 + #define VREFCR (CPG_BASE + 0x00EC) 144 + #define PCLKCR (CPG_BASE + 0x1020) 145 + 146 + #define PORT32CR (0xE6051020) 147 + #define PORT33CR (0xE6051021) 148 + #define PORT34CR (0xE6051022) 149 + #define PORT35CR (0xE6051023) 150 + 151 + LIST "DRAM initialization code:" 152 + 153 + EW RWTCSRA0, 0xA507 154 + 155 + ED_AND LIFEC_SEC_SRC, 0xFFFF7FFF 156 + 157 + ED_AND SMSTPCR3,0xFFFF7FFF 158 + ED_AND SRCR3, 0xFFFF7FFF 159 + ED_AND SMSTPCR2,0xFFFBFFFF 160 + ED_AND SRCR2, 0xFFFBFFFF 161 + ED PLLECR, 0x00000000 162 + 163 + WAIT_MASK PLLECR, 0x00000F00, 0x00000000 164 + WAIT_MASK FRQCRB, 0x80000000, 0x00000000 165 + 166 + ED PLL0CR, 0x2D000000 167 + ED PLL1CR, 0x17100000 168 + ED FRQCRB, 0x96235880 169 + WAIT_MASK FRQCRB, 0x80000000, 0x00000000 170 + 171 + ED FLCKCR, 0x0000000B 172 + ED_AND SMSTPCR0, 0xFFFFFFFD 173 + 174 + ED_AND SRCR0, 0xFFFFFFFD 175 + ED 0xE6001628, 0x514 176 + ED 0xE6001648, 0x514 177 + ED 0xE6001658, 0x514 178 + ED 0xE6001678, 0x514 179 + 180 + ED DVFSCR4, 0x00092000 181 + ED DVFSCR5, 0x000000DC 182 + ED PLLECR, 0x00000000 183 + WAIT_MASK PLLECR, 0x00000F00, 0x00000000 184 + 185 + ED FRQCRA, 0x0012453C 186 + ED FRQCRB, 0x80431350 187 + WAIT_MASK FRQCRB, 0x80000000, 0x00000000 188 + ED FRQCRD, 0x00000B0B 189 + WAIT_MASK FRQCRD, 0x80000000, 0x00000000 190 + 191 + ED PCLKCR, 0x00000003 192 + ED VCLKCR1, 0x0000012F 193 + ED VCLKCR2, 0x00000119 194 + ED VCLKCR3, 0x00000119 195 + ED ZBCKCR, 0x00000002 196 + ED FLCKCR, 0x00000005 197 + ED SD0CKCR, 0x00000080 198 + ED SD1CKCR, 0x00000080 199 + ED SD2CKCR, 0x00000080 200 + ED FSIACKCR, 0x0000003F 201 + ED FSIBCKCR, 0x0000003F 202 + ED SUBCKCR, 0x00000080 203 + ED SPUACKCR, 0x0000000B 204 + ED SPUVCKCR, 0x0000000B 205 + ED MSUCKCR, 0x0000013F 206 + ED HSICKCR, 0x00000080 207 + ED MFCK1CR, 0x0000003F 208 + ED MFCK2CR, 0x0000003F 209 + ED DSITCKCR, 0x00000107 210 + ED DSI0PCKCR, 0x00000313 211 + ED DSI1PCKCR, 0x0000130D 212 + ED DSI0PHYCR, 0x2A800E0E 213 + ED PLL0CR, 0x1E000000 214 + ED PLL0CR, 0x2D000000 215 + ED PLL1CR, 0x17100000 216 + ED PLL2CR, 0x27000080 217 + ED PLL3CR, 0x1D000000 218 + ED PLL0STPCR, 0x00080000 219 + ED PLL1STPCR, 0x000120C0 220 + ED PLL2STPCR, 0x00012000 221 + ED PLL3STPCR, 0x00000030 222 + ED PLLECR, 0x0000000B 223 + WAIT_MASK PLLECR, 0x00000B00, 0x00000B00 224 + 225 + ED DVFSCR3, 0x000120F0 226 + ED MPMODE, 0x00000020 227 + ED VREFCR, 0x0000028A 228 + ED RMSTPCR0, 0xE4628087 229 + ED RMSTPCR1, 0xFFFFFFFF 230 + ED RMSTPCR2, 0x53FFFFFF 231 + ED RMSTPCR3, 0xFFFFFFFF 232 + ED RMSTPCR4, 0x00800D3D 233 + ED RMSTPCR5, 0xFFFFF3FF 234 + ED SMSTPCR2, 0x00000000 235 + ED SRCR2, 0x00040000 236 + ED_AND PLLECR, 0xFFFFFFF7 237 + WAIT_MASK PLLECR, 0x00000800, 0x00000000 238 + 239 + LIST "set SBSC operational" 240 + ED HPBCTRL6, 0x00000001 241 + WAIT_MASK HPBCTRL6, 0x00000001, 0x00000001 242 + 243 + LIST "set SBSC operating frequency" 244 + ED FRQCRD, 0x00001414 245 + WAIT_MASK FRQCRD, 0x80000000, 0x00000000 246 + ED PLL3CR, 0x1D000000 247 + ED_OR PLLECR, 0x00000008 248 + WAIT_MASK PLLECR, 0x00000800, 0x00000800 249 + 250 + LIST "enable DLL oscillation in DDRPHY" 251 + ED_OR DLLCNT0A, 0x00000002 252 + 253 + LIST "wait >= 100 ns" 254 + ED SDGENCNTA, 0x00000005 255 + WAIT_MASK SDGENCNTA, 0xFFFFFFFF, 0x00000000 256 + 257 + LIST "target LPDDR2 device settings" 258 + ED SDCR0A, 0xACC90159 259 + ED SDCR1A, 0x00010059 260 + ED SDWCRC0A, 0x50874114 261 + ED SDWCRC1A, 0x33199B37 262 + ED SDWCRC2A, 0x008F2313 263 + ED SDWCR00A, 0x31020707 264 + ED SDWCR01A, 0x0017040A 265 + ED SDWCR10A, 0x31020707 266 + ED SDWCR11A, 0x0017040A 267 + 268 + ED SDDRVCR0A, 0x055557ff 269 + 270 + ED SDWCR2A, 0x30000000 271 + 272 + LIST "drive CKE high" 273 + ED_OR SDPCRA, 0x00000080 274 + WAIT_MASK SDPCRA, 0x00000080, 0x00000080 275 + 276 + LIST "wait >= 200 us" 277 + ED SDGENCNTA, 0x00002710 278 + WAIT_MASK SDGENCNTA, 0xFFFFFFFF, 0x00000000 279 + 280 + LIST "issue reset command to LPDDR2 device" 281 + ED SDMRACR0A, 0x0000003F 282 + ED SDMRA1, 0x00000000 283 + 284 + LIST "wait >= 10 (or 1) us (docs inconsistent)" 285 + ED SDGENCNTA, 0x000001F4 286 + WAIT_MASK SDGENCNTA, 0xFFFFFFFF, 0x00000000 287 + 288 + LIST "MRW ZS initialization calibration command" 289 + ED SDMRACR0A, 0x0000FF0A 290 + ED SDMRA3, 0x00000000 291 + 292 + LIST "wait >= 1 us" 293 + ED SDGENCNTA, 0x00000032 294 + WAIT_MASK SDGENCNTA, 0xFFFFFFFF, 0x00000000 295 + 296 + LIST "specify operating mode in LPDDR2" 297 + ED SDMRACR0A, 0x00002201 298 + ED SDMRA1, 0x00000000 299 + ED SDMRACR0A, 0x00000402 300 + ED SDMRA1, 0x00000000 301 + ED SDMRACR0A, 0x00000203 302 + ED SDMRA1, 0x00000000 303 + 304 + LIST "initialize DDR interface" 305 + ED SDMRA2, 0x00000000 306 + 307 + LIST "temperature sensor control" 308 + ED SDMRTMPCRA, 0x88800004 309 + ED SDMRTMPMSKA,0x00000004 310 + 311 + LIST "auto-refreshing control" 312 + ED RTCORA, 0xA55A0032 313 + ED RTCORHA, 0xA55A000C 314 + ED RTCSRA, 0xA55A2048 315 + 316 + ED_OR SDCR0A, 0x00000800 317 + ED_OR SDCR1A, 0x00000400 318 + 319 + LIST "auto ZQ calibration control" 320 + ED ZQCCRA, 0xFFF20000 321 + 322 + ED_OR DLLCNT0B, 0x00000002 323 + ED SDGENCNTB, 0x00000005 324 + WAIT_MASK SDGENCNTB, 0xFFFFFFFF, 0x00000000 325 + 326 + ED SDCR0B, 0xACC90159 327 + ED SDCR1B, 0x00010059 328 + ED SDWCRC0B, 0x50874114 329 + ED SDWCRC1B, 0x33199B37 330 + ED SDWCRC2B, 0x008F2313 331 + ED SDWCR00B, 0x31020707 332 + ED SDWCR01B, 0x0017040A 333 + ED SDWCR10B, 0x31020707 334 + ED SDWCR11B, 0x0017040A 335 + ED SDDRVCR0B, 0x055557ff 336 + ED SDWCR2B, 0x30000000 337 + ED_OR SDPCRB, 0x00000080 338 + WAIT_MASK SDPCRB, 0x00000080, 0x00000080 339 + 340 + ED SDGENCNTB, 0x00002710 341 + WAIT_MASK SDGENCNTB, 0xFFFFFFFF, 0x00000000 342 + ED SDMRACR0B, 0x0000003F 343 + 344 + LIST "upstream u-boot writes to SDMRA1A for both SBSC 1 and 2, which does" 345 + LIST "not seem to make a lot of sense..." 346 + ED SDMRB1, 0x00000000 347 + 348 + ED SDGENCNTB, 0x000001F4 349 + WAIT_MASK SDGENCNTB, 0xFFFFFFFF, 0x00000000 350 + 351 + ED SDMRACR0B, 0x0000FF0A 352 + ED SDMRB3, 0x00000000 353 + ED SDGENCNTB, 0x00000032 354 + WAIT_MASK SDGENCNTB, 0xFFFFFFFF, 0x00000000 355 + 356 + ED SDMRACR0B, 0x00002201 357 + ED SDMRB1, 0x00000000 358 + ED SDMRACR0B, 0x00000402 359 + ED SDMRB1, 0x00000000 360 + ED SDMRACR0B, 0x00000203 361 + ED SDMRB1, 0x00000000 362 + ED SDMRB2, 0x00000000 363 + ED SDMRTMPCRB, 0x88800004 364 + ED SDMRTMPMSKB, 0x00000004 365 + ED RTCORB, 0xA55A0032 366 + ED RTCORHB, 0xA55A000C 367 + ED RTCSRB, 0xA55A2048 368 + ED_OR SDCR0B, 0x00000800 369 + ED_OR SDCR1B, 0x00000400 370 + ED ZQCCRB, 0xFFF20000 371 + ED_OR SDPDCR0B, 0x00030000 372 + ED DPHYCNT1B, 0xA5390000 373 + ED DPHYCNT0B, 0x00001200 374 + ED DPHYCNT1B, 0x07CE0000 375 + ED DPHYCNT0B, 0x00001247 376 + WAIT_MASK DPHYCNT2B, 0xFFFFFFFF, 0x07CE0000 377 + 378 + ED_AND SDPDCR0B, 0xFFFCFFFF 379 + 380 + ED FRQCRD, 0x00000B0B 381 + WAIT_MASK FRQCRD, 0x80000000, 0x00000000 382 + 383 + ED CPGXXCR4, 0xfffffffc 384 + 385 + LIST "Setup SCIF4 / workaround" 386 + EB PORT32CR, 0x12 387 + EB PORT33CR, 0x22 388 + EB PORT34CR, 0x12 389 + EB PORT35CR, 0x22 390 + 391 + EW 0xE6C80000, 0 392 + EB 0xE6C80004, 0x19 393 + EW 0xE6C80008, 0x0030 394 + EW 0xE6C80018, 0 395 + EW 0xE6C80030, 0x0014 396 + 397 + LIST "Magic to avoid hangs and corruption on DRAM writes." 398 + 399 + LIST "It has been observed that the system would most often hang while" 400 + LIST "decompressing the kernel, and if it didn't it would always write" 401 + LIST "a corrupt image to DRAM." 402 + LIST "This problem does not occur in u-boot, and the reason is that" 403 + LIST "u-boot performs an additional cache invalidation after setting up" 404 + LIST "the DRAM controller. Such an invalidation should not be necessary at" 405 + LIST "this point, and attempts at removing parts of the routine to arrive" 406 + LIST "at the minimal snippet of code necessary to avoid the DRAM stability" 407 + LIST "problem yielded the following:" 408 + 409 + MRC p15, 0, r0, c1, c0, 0 410 + MCR p15, 0, r0, c1, c0, 0
+3
arch/arm/mach-shmobile/include/mach/zboot.h
··· 12 12 #ifdef CONFIG_MACH_MACKEREL 13 13 #define MEMORY_START 0x40000000 14 14 #include "mach/head-mackerel.txt" 15 + #elif defined(CONFIG_MACH_KZM9G) || defined(CONFIG_MACH_KZM9G_REFERENCE) 16 + #define MEMORY_START 0x43000000 17 + #include "mach/head-kzm9g.txt" 15 18 #else 16 19 #error "unsupported board." 17 20 #endif
+43
arch/arm/mach-shmobile/include/mach/zboot_macros.h
··· 62 62 2 : 63 63 .endm 64 64 65 + /* loop until a given value has been read (with mask) */ 66 + .macro WAIT_MASK, addr, data, cmp 67 + LDR r0, 2f 68 + LDR r1, 3f 69 + LDR r2, 4f 70 + 1: 71 + LDR r3, [r0, #0] 72 + AND r3, r1, r3 73 + CMP r2, r3 74 + BNE 1b 75 + B 5f 76 + 2: .long \addr 77 + 3: .long \data 78 + 4: .long \cmp 79 + 5: 80 + .endm 81 + 82 + /* read 32-bit value from addr, "or" an immediate and write back */ 83 + .macro ED_OR, addr, data 84 + LDR r4, 1f 85 + LDR r5, 2f 86 + LDR r6, [r4] 87 + ORR r5, r6, r5 88 + STR r5, [r4] 89 + B 3f 90 + 1: .long \addr 91 + 2: .long \data 92 + 3: 93 + .endm 94 + 95 + /* read 32-bit value from addr, "and" an immediate and write back */ 96 + .macro ED_AND, addr, data 97 + LDR r4, 1f 98 + LDR r5, 2f 99 + LDR r6, [r4] 100 + AND r5, r6, r5 101 + STR r5, [r4] 102 + B 3f 103 + 1: .long \addr 104 + 2: .long \data 105 + 3: 106 + .endm 107 + 65 108 #endif /* __ZBOOT_MACRO_H */