diff options
20 files changed, 547 insertions, 44 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 4179056f4584..6f527e1faeb6 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -233,7 +233,6 @@ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += emev2-kzm9d.dtb \ | |||
| 233 | r8a7779-marzen-reference.dtb \ | 233 | r8a7779-marzen-reference.dtb \ |
| 234 | r8a7791-koelsch.dtb \ | 234 | r8a7791-koelsch.dtb \ |
| 235 | r8a7790-lager.dtb \ | 235 | r8a7790-lager.dtb \ |
| 236 | r8a7790-lager-reference.dtb \ | ||
| 237 | sh73a0-kzm9g.dtb \ | 236 | sh73a0-kzm9g.dtb \ |
| 238 | sh73a0-kzm9g-reference.dtb \ | 237 | sh73a0-kzm9g-reference.dtb \ |
| 239 | r8a73a4-ape6evm.dtb \ | 238 | r8a73a4-ape6evm.dtb \ |
| @@ -241,7 +240,8 @@ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += emev2-kzm9d.dtb \ | |||
| 241 | sh7372-mackerel.dtb | 240 | sh7372-mackerel.dtb |
| 242 | dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \ | 241 | dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \ |
| 243 | r7s72100-genmai-reference.dtb \ | 242 | r7s72100-genmai-reference.dtb \ |
| 244 | r8a7791-koelsch-reference.dtb | 243 | r8a7791-koelsch.dtb \ |
| 244 | r8a7790-lager.dtb | ||
| 245 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \ | 245 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \ |
| 246 | socfpga_cyclone5_socdk.dtb \ | 246 | socfpga_cyclone5_socdk.dtb \ |
| 247 | socfpga_cyclone5_sockit.dtb \ | 247 | socfpga_cyclone5_sockit.dtb \ |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 3e57d457308a..338640631e08 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
| @@ -12,6 +12,7 @@ config ARCH_SHMOBILE_MULTI | |||
| 12 | select HAVE_SMP | 12 | select HAVE_SMP |
| 13 | select ARM_GIC | 13 | select ARM_GIC |
| 14 | select MIGHT_HAVE_CACHE_L2X0 | 14 | select MIGHT_HAVE_CACHE_L2X0 |
| 15 | select MIGHT_HAVE_PCI | ||
| 15 | select NO_IOPORT | 16 | select NO_IOPORT |
| 16 | select PINCTRL | 17 | select PINCTRL |
| 17 | select ARCH_REQUIRE_GPIOLIB | 18 | select ARCH_REQUIRE_GPIOLIB |
| @@ -27,6 +28,10 @@ config ARCH_EMEV2 | |||
| 27 | config ARCH_R7S72100 | 28 | config ARCH_R7S72100 |
| 28 | bool "RZ/A1H (R7S72100)" | 29 | bool "RZ/A1H (R7S72100)" |
| 29 | 30 | ||
| 31 | config ARCH_R8A7790 | ||
| 32 | bool "R-Car H2 (R8A77900)" | ||
| 33 | select RENESAS_IRQC | ||
| 34 | |||
| 30 | config ARCH_R8A7791 | 35 | config ARCH_R8A7791 |
| 31 | bool "R-Car M2 (R8A77910)" | 36 | bool "R-Car M2 (R8A77910)" |
| 32 | select RENESAS_IRQC | 37 | select RENESAS_IRQC |
| @@ -46,6 +51,10 @@ config MACH_KZM9D | |||
| 46 | depends on ARCH_EMEV2 | 51 | depends on ARCH_EMEV2 |
| 47 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | 52 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 48 | 53 | ||
| 54 | config MACH_LAGER | ||
| 55 | bool "Lager board" | ||
| 56 | depends on ARCH_R8A7790 | ||
| 57 | |||
| 49 | comment "Renesas ARM SoCs System Configuration" | 58 | comment "Renesas ARM SoCs System Configuration" |
| 50 | endif | 59 | endif |
| 51 | 60 | ||
| @@ -111,6 +120,7 @@ config ARCH_R8A7790 | |||
| 111 | select ARCH_WANT_OPTIONAL_GPIOLIB | 120 | select ARCH_WANT_OPTIONAL_GPIOLIB |
| 112 | select ARM_GIC | 121 | select ARM_GIC |
| 113 | select CPU_V7 | 122 | select CPU_V7 |
| 123 | select MIGHT_HAVE_PCI | ||
| 114 | select SH_CLK_CPG | 124 | select SH_CLK_CPG |
| 115 | select RENESAS_IRQC | 125 | select RENESAS_IRQC |
| 116 | 126 | ||
| @@ -119,6 +129,7 @@ config ARCH_R8A7791 | |||
| 119 | select ARCH_WANT_OPTIONAL_GPIOLIB | 129 | select ARCH_WANT_OPTIONAL_GPIOLIB |
| 120 | select ARM_GIC | 130 | select ARM_GIC |
| 121 | select CPU_V7 | 131 | select CPU_V7 |
| 132 | select MIGHT_HAVE_PCI | ||
| 122 | select SH_CLK_CPG | 133 | select SH_CLK_CPG |
| 123 | select RENESAS_IRQC | 134 | select RENESAS_IRQC |
| 124 | 135 | ||
| @@ -127,6 +138,7 @@ config ARCH_EMEV2 | |||
| 127 | select ARCH_WANT_OPTIONAL_GPIOLIB | 138 | select ARCH_WANT_OPTIONAL_GPIOLIB |
| 128 | select ARM_GIC | 139 | select ARM_GIC |
| 129 | select CPU_V7 | 140 | select CPU_V7 |
| 141 | select MIGHT_HAVE_PCI | ||
| 130 | select USE_OF | 142 | select USE_OF |
| 131 | select AUTO_ZRELADDR | 143 | select AUTO_ZRELADDR |
| 132 | 144 | ||
| @@ -250,32 +262,11 @@ config MACH_LAGER | |||
| 250 | depends on ARCH_R8A7790 | 262 | depends on ARCH_R8A7790 |
| 251 | select USE_OF | 263 | select USE_OF |
| 252 | 264 | ||
| 253 | config MACH_LAGER_REFERENCE | ||
| 254 | bool "Lager board - Reference Device Tree Implementation" | ||
| 255 | depends on ARCH_R8A7790 | ||
| 256 | select USE_OF | ||
| 257 | ---help--- | ||
| 258 | Use reference implementation of Lager board support | ||
| 259 | which makes use of device tree at the expense | ||
| 260 | of not supporting a number of devices. | ||
| 261 | |||
| 262 | This is intended to aid developers | ||
| 263 | |||
| 264 | config MACH_KOELSCH | 265 | config MACH_KOELSCH |
| 265 | bool "Koelsch board" | 266 | bool "Koelsch board" |
| 266 | depends on ARCH_R8A7791 | 267 | depends on ARCH_R8A7791 |
| 267 | select USE_OF | 268 | select USE_OF |
| 268 | 269 | select MICREL_PHY if SH_ETH | |
| 269 | config MACH_KOELSCH_REFERENCE | ||
| 270 | bool "Koelsch board - Reference Device Tree Implementation" | ||
| 271 | depends on ARCH_R8A7791 | ||
| 272 | select USE_OF | ||
| 273 | ---help--- | ||
| 274 | Use reference implementation of Koelsch board support | ||
| 275 | which makes use of device tree at the expense | ||
| 276 | of not supporting a number of devices. | ||
| 277 | |||
| 278 | This is intended to aid developers | ||
| 279 | 270 | ||
| 280 | config MACH_KZM9G | 271 | config MACH_KZM9G |
| 281 | bool "KZM-A9-GT board" | 272 | bool "KZM-A9-GT board" |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 1c131046dec6..fe7d4ff706e4 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
| @@ -59,6 +59,7 @@ ifdef CONFIG_ARCH_SHMOBILE_MULTI | |||
| 59 | obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o | 59 | obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o |
| 60 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o | 60 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o |
| 61 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d-reference.o | 61 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d-reference.o |
| 62 | obj-$(CONFIG_MACH_LAGER) += board-lager-reference.o | ||
| 62 | else | 63 | else |
| 63 | obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o | 64 | obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o |
| 64 | obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o | 65 | obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o |
| @@ -70,11 +71,9 @@ obj-$(CONFIG_MACH_GENMAI_REFERENCE) += board-genmai-reference.o | |||
| 70 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o | 71 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o |
| 71 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o | 72 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o |
| 72 | obj-$(CONFIG_MACH_LAGER) += board-lager.o | 73 | obj-$(CONFIG_MACH_LAGER) += board-lager.o |
| 73 | obj-$(CONFIG_MACH_LAGER_REFERENCE) += board-lager-reference.o | ||
| 74 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o | 74 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o |
| 75 | obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o | 75 | obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o |
| 76 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch.o | 76 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch.o |
| 77 | obj-$(CONFIG_MACH_KOELSCH_REFERENCE) += board-koelsch-reference.o | ||
| 78 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o | 77 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o |
| 79 | obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o | 78 | obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o |
| 80 | endif | 79 | endif |
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot index 759e4f8fcd37..99455ecafa05 100644 --- a/arch/arm/mach-shmobile/Makefile.boot +++ b/arch/arm/mach-shmobile/Makefile.boot | |||
| @@ -9,11 +9,9 @@ loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 | |||
| 9 | loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000 | 9 | loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000 |
| 10 | loadaddr-$(CONFIG_MACH_GENMAI_REFERENCE) += 0x08008000 | 10 | loadaddr-$(CONFIG_MACH_GENMAI_REFERENCE) += 0x08008000 |
| 11 | loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 | 11 | loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 |
| 12 | loadaddr-$(CONFIG_MACH_KOELSCH_REFERENCE) += 0x40008000 | ||
| 13 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 | 12 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 |
| 14 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 | 13 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 |
| 15 | loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 | 14 | loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 |
| 16 | loadaddr-$(CONFIG_MACH_LAGER_REFERENCE) += 0x40008000 | ||
| 17 | loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000 | 15 | loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000 |
| 18 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 | 16 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 |
| 19 | loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000 | 17 | loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000 |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index d9e28c7aca49..2ea89355d8c1 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
| @@ -423,7 +423,7 @@ static struct platform_pwm_backlight_data pwm_backlight_data = { | |||
| 423 | .max_brightness = 255, | 423 | .max_brightness = 255, |
| 424 | .dft_brightness = 255, | 424 | .dft_brightness = 255, |
| 425 | .pwm_period_ns = 33333, /* 30kHz */ | 425 | .pwm_period_ns = 33333, /* 30kHz */ |
| 426 | .enable_gpio = -1, | 426 | .enable_gpio = 61, |
| 427 | }; | 427 | }; |
| 428 | 428 | ||
| 429 | static struct platform_device pwm_backlight_device = { | 429 | static struct platform_device pwm_backlight_device = { |
| @@ -1203,9 +1203,6 @@ static void __init eva_init(void) | |||
| 1203 | r8a7740_pinmux_init(); | 1203 | r8a7740_pinmux_init(); |
| 1204 | r8a7740_meram_workaround(); | 1204 | r8a7740_meram_workaround(); |
| 1205 | 1205 | ||
| 1206 | /* LCDC0 */ | ||
| 1207 | gpio_request_one(61, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */ | ||
| 1208 | |||
| 1209 | /* GETHER */ | 1206 | /* GETHER */ |
| 1210 | gpio_request_one(18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */ | 1207 | gpio_request_one(18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */ |
| 1211 | 1208 | ||
diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c index eb5b54fc5cc9..afb3f6869017 100644 --- a/arch/arm/mach-shmobile/board-bockw.c +++ b/arch/arm/mach-shmobile/board-bockw.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <linux/mmc/sh_mmcif.h> | 25 | #include <linux/mmc/sh_mmcif.h> |
| 26 | #include <linux/mtd/partitions.h> | 26 | #include <linux/mtd/partitions.h> |
| 27 | #include <linux/pinctrl/machine.h> | 27 | #include <linux/pinctrl/machine.h> |
| 28 | #include <linux/platform_data/camera-rcar.h> | ||
| 28 | #include <linux/platform_data/usb-rcar-phy.h> | 29 | #include <linux/platform_data/usb-rcar-phy.h> |
| 29 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
| 30 | #include <linux/regulator/fixed.h> | 31 | #include <linux/regulator/fixed.h> |
diff --git a/arch/arm/mach-shmobile/board-koelsch-reference.c b/arch/arm/mach-shmobile/board-koelsch-reference.c index a804a1798a71..652b59268416 100644 --- a/arch/arm/mach-shmobile/board-koelsch-reference.c +++ b/arch/arm/mach-shmobile/board-koelsch-reference.c | |||
| @@ -19,7 +19,8 @@ | |||
| 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| 22 | #include <linux/clk-provider.h> | 22 | #include <linux/clk.h> |
| 23 | #include <linux/clkdev.h> | ||
| 23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
| 24 | #include <linux/of_platform.h> | 25 | #include <linux/of_platform.h> |
| 25 | #include <mach/common.h> | 26 | #include <mach/common.h> |
| @@ -30,7 +31,31 @@ | |||
| 30 | static void __init koelsch_add_standard_devices(void) | 31 | static void __init koelsch_add_standard_devices(void) |
| 31 | { | 32 | { |
| 32 | #ifdef CONFIG_COMMON_CLK | 33 | #ifdef CONFIG_COMMON_CLK |
| 33 | of_clk_init(NULL); | 34 | /* |
| 35 | * This is a really crude hack to provide clkdev support to the SCIF | ||
| 36 | * and CMT devices until they get moved to DT. | ||
| 37 | */ | ||
| 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", | ||
| 42 | }; | ||
| 43 | struct clk *clk; | ||
| 44 | unsigned int i; | ||
| 45 | |||
| 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); | ||
| 50 | clk_put(clk); | ||
| 51 | } | ||
| 52 | } | ||
| 53 | |||
| 54 | clk = clk_get(NULL, "cmt0"); | ||
| 55 | if (clk) { | ||
| 56 | clk_register_clkdev(clk, NULL, "sh_cmt.0"); | ||
| 57 | clk_put(clk); | ||
| 58 | } | ||
| 34 | #else | 59 | #else |
| 35 | r8a7791_clock_init(); | 60 | r8a7791_clock_init(); |
| 36 | #endif | 61 | #endif |
| @@ -39,6 +64,7 @@ static void __init koelsch_add_standard_devices(void) | |||
| 39 | } | 64 | } |
| 40 | 65 | ||
| 41 | static const char * const koelsch_boards_compat_dt[] __initconst = { | 66 | static const char * const koelsch_boards_compat_dt[] __initconst = { |
| 67 | "renesas,koelsch", | ||
| 42 | "renesas,koelsch-reference", | 68 | "renesas,koelsch-reference", |
| 43 | NULL, | 69 | NULL, |
| 44 | }; | 70 | }; |
diff --git a/arch/arm/mach-shmobile/board-koelsch.c b/arch/arm/mach-shmobile/board-koelsch.c index 6e12914d6d58..de7cc64b1f37 100644 --- a/arch/arm/mach-shmobile/board-koelsch.c +++ b/arch/arm/mach-shmobile/board-koelsch.c | |||
| @@ -19,20 +19,89 @@ | |||
| 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| 22 | #include <linux/dma-mapping.h> | ||
| 22 | #include <linux/gpio.h> | 23 | #include <linux/gpio.h> |
| 23 | #include <linux/gpio_keys.h> | 24 | #include <linux/gpio_keys.h> |
| 24 | #include <linux/input.h> | 25 | #include <linux/input.h> |
| 25 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
| 26 | #include <linux/leds.h> | 27 | #include <linux/leds.h> |
| 28 | #include <linux/phy.h> | ||
| 27 | #include <linux/pinctrl/machine.h> | 29 | #include <linux/pinctrl/machine.h> |
| 28 | #include <linux/platform_data/gpio-rcar.h> | 30 | #include <linux/platform_data/gpio-rcar.h> |
| 31 | #include <linux/platform_data/rcar-du.h> | ||
| 29 | #include <linux/platform_device.h> | 32 | #include <linux/platform_device.h> |
| 33 | #include <linux/sh_eth.h> | ||
| 30 | #include <mach/common.h> | 34 | #include <mach/common.h> |
| 35 | #include <mach/irqs.h> | ||
| 31 | #include <mach/r8a7791.h> | 36 | #include <mach/r8a7791.h> |
| 32 | #include <mach/rcar-gen2.h> | 37 | #include <mach/rcar-gen2.h> |
| 33 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
| 34 | #include <asm/mach/arch.h> | 39 | #include <asm/mach/arch.h> |
| 35 | 40 | ||
| 41 | /* DU */ | ||
| 42 | static struct rcar_du_encoder_data koelsch_du_encoders[] = { | ||
| 43 | { | ||
| 44 | .type = RCAR_DU_ENCODER_NONE, | ||
| 45 | .output = RCAR_DU_OUTPUT_LVDS0, | ||
| 46 | .connector.lvds.panel = { | ||
| 47 | .width_mm = 210, | ||
| 48 | .height_mm = 158, | ||
| 49 | .mode = { | ||
| 50 | .clock = 65000, | ||
| 51 | .hdisplay = 1024, | ||
| 52 | .hsync_start = 1048, | ||
| 53 | .hsync_end = 1184, | ||
| 54 | .htotal = 1344, | ||
| 55 | .vdisplay = 768, | ||
| 56 | .vsync_start = 771, | ||
| 57 | .vsync_end = 777, | ||
| 58 | .vtotal = 806, | ||
| 59 | .flags = 0, | ||
| 60 | }, | ||
| 61 | }, | ||
| 62 | }, | ||
| 63 | }; | ||
| 64 | |||
| 65 | static const struct rcar_du_platform_data koelsch_du_pdata __initconst = { | ||
| 66 | .encoders = koelsch_du_encoders, | ||
| 67 | .num_encoders = ARRAY_SIZE(koelsch_du_encoders), | ||
| 68 | }; | ||
| 69 | |||
| 70 | static const struct resource du_resources[] __initconst = { | ||
| 71 | DEFINE_RES_MEM(0xfeb00000, 0x40000), | ||
| 72 | DEFINE_RES_MEM_NAMED(0xfeb90000, 0x1c, "lvds.0"), | ||
| 73 | DEFINE_RES_IRQ(gic_spi(256)), | ||
| 74 | DEFINE_RES_IRQ(gic_spi(268)), | ||
| 75 | }; | ||
| 76 | |||
| 77 | static void __init koelsch_add_du_device(void) | ||
| 78 | { | ||
| 79 | struct platform_device_info info = { | ||
| 80 | .name = "rcar-du-r8a7791", | ||
| 81 | .id = -1, | ||
| 82 | .res = du_resources, | ||
| 83 | .num_res = ARRAY_SIZE(du_resources), | ||
| 84 | .data = &koelsch_du_pdata, | ||
| 85 | .size_data = sizeof(koelsch_du_pdata), | ||
| 86 | .dma_mask = DMA_BIT_MASK(32), | ||
| 87 | }; | ||
| 88 | |||
| 89 | platform_device_register_full(&info); | ||
| 90 | } | ||
| 91 | |||
| 92 | /* Ether */ | ||
| 93 | static const struct sh_eth_plat_data ether_pdata __initconst = { | ||
| 94 | .phy = 0x1, | ||
| 95 | .edmac_endian = EDMAC_LITTLE_ENDIAN, | ||
| 96 | .phy_interface = PHY_INTERFACE_MODE_RMII, | ||
| 97 | .ether_link_active_low = 1, | ||
| 98 | }; | ||
| 99 | |||
| 100 | static const struct resource ether_resources[] __initconst = { | ||
| 101 | DEFINE_RES_MEM(0xee700000, 0x400), | ||
| 102 | DEFINE_RES_IRQ(gic_spi(162)), | ||
| 103 | }; | ||
| 104 | |||
| 36 | /* LEDS */ | 105 | /* LEDS */ |
| 37 | static struct gpio_led koelsch_leds[] = { | 106 | static struct gpio_led koelsch_leds[] = { |
| 38 | { | 107 | { |
| @@ -80,6 +149,22 @@ static const struct gpio_keys_platform_data koelsch_keys_pdata __initconst = { | |||
| 80 | }; | 149 | }; |
| 81 | 150 | ||
| 82 | static const struct pinctrl_map koelsch_pinctrl_map[] = { | 151 | static const struct pinctrl_map koelsch_pinctrl_map[] = { |
| 152 | /* DU */ | ||
| 153 | PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", | ||
| 154 | "du_rgb666", "du"), | ||
| 155 | PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", | ||
| 156 | "du_sync", "du"), | ||
| 157 | PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", | ||
| 158 | "du_clk_out_0", "du"), | ||
| 159 | /* Ether */ | ||
| 160 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
| 161 | "eth_link", "eth"), | ||
| 162 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
| 163 | "eth_mdio", "eth"), | ||
| 164 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
| 165 | "eth_rmii", "eth"), | ||
| 166 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
| 167 | "intc_irq0", "intc"), | ||
| 83 | /* SCIF0 (CN19: DEBUG SERIAL0) */ | 168 | /* SCIF0 (CN19: DEBUG SERIAL0) */ |
| 84 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7791", | 169 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7791", |
| 85 | "scif0_data_d", "scif0"), | 170 | "scif0_data_d", "scif0"), |
| @@ -95,12 +180,44 @@ static void __init koelsch_add_standard_devices(void) | |||
| 95 | ARRAY_SIZE(koelsch_pinctrl_map)); | 180 | ARRAY_SIZE(koelsch_pinctrl_map)); |
| 96 | r8a7791_pinmux_init(); | 181 | r8a7791_pinmux_init(); |
| 97 | r8a7791_add_standard_devices(); | 182 | r8a7791_add_standard_devices(); |
| 183 | platform_device_register_resndata(&platform_bus, "r8a7791-ether", -1, | ||
| 184 | ether_resources, | ||
| 185 | ARRAY_SIZE(ether_resources), | ||
| 186 | ðer_pdata, sizeof(ether_pdata)); | ||
| 98 | platform_device_register_data(&platform_bus, "leds-gpio", -1, | 187 | platform_device_register_data(&platform_bus, "leds-gpio", -1, |
| 99 | &koelsch_leds_pdata, | 188 | &koelsch_leds_pdata, |
| 100 | sizeof(koelsch_leds_pdata)); | 189 | sizeof(koelsch_leds_pdata)); |
| 101 | platform_device_register_data(&platform_bus, "gpio-keys", -1, | 190 | platform_device_register_data(&platform_bus, "gpio-keys", -1, |
| 102 | &koelsch_keys_pdata, | 191 | &koelsch_keys_pdata, |
| 103 | sizeof(koelsch_keys_pdata)); | 192 | sizeof(koelsch_keys_pdata)); |
| 193 | |||
| 194 | koelsch_add_du_device(); | ||
| 195 | } | ||
| 196 | |||
| 197 | /* | ||
| 198 | * Ether LEDs on the Koelsch board are named LINK and ACTIVE which corresponds | ||
| 199 | * to non-default 01 setting of the Micrel KSZ8041 PHY control register 1 bits | ||
| 200 | * 14-15. We have to set them back to 01 from the default 00 value each time | ||
| 201 | * the PHY is reset. It's also important because the PHY's LED0 signal is | ||
| 202 | * connected to SoC's ETH_LINK signal and in the PHY's default mode it will | ||
| 203 | * bounce on and off after each packet, which we apparently want to avoid. | ||
| 204 | */ | ||
| 205 | static int koelsch_ksz8041_fixup(struct phy_device *phydev) | ||
| 206 | { | ||
| 207 | u16 phyctrl1 = phy_read(phydev, 0x1e); | ||
| 208 | |||
| 209 | phyctrl1 &= ~0xc000; | ||
| 210 | phyctrl1 |= 0x4000; | ||
| 211 | return phy_write(phydev, 0x1e, phyctrl1); | ||
| 212 | } | ||
| 213 | |||
| 214 | static void __init koelsch_init(void) | ||
| 215 | { | ||
| 216 | koelsch_add_standard_devices(); | ||
| 217 | |||
| 218 | if (IS_ENABLED(CONFIG_PHYLIB)) | ||
| 219 | phy_register_fixup_for_id("r8a7791-ether-ff:01", | ||
| 220 | koelsch_ksz8041_fixup); | ||
| 104 | } | 221 | } |
| 105 | 222 | ||
| 106 | static const char * const koelsch_boards_compat_dt[] __initconst = { | 223 | static const char * const koelsch_boards_compat_dt[] __initconst = { |
| @@ -112,7 +229,7 @@ DT_MACHINE_START(KOELSCH_DT, "koelsch") | |||
| 112 | .smp = smp_ops(r8a7791_smp_ops), | 229 | .smp = smp_ops(r8a7791_smp_ops), |
| 113 | .init_early = r8a7791_init_early, | 230 | .init_early = r8a7791_init_early, |
| 114 | .init_time = rcar_gen2_timer_init, | 231 | .init_time = rcar_gen2_timer_init, |
| 115 | .init_machine = koelsch_add_standard_devices, | 232 | .init_machine = koelsch_init, |
| 116 | .init_late = shmobile_init_late, | 233 | .init_late = shmobile_init_late, |
| 117 | .dt_compat = koelsch_boards_compat_dt, | 234 | .dt_compat = koelsch_boards_compat_dt, |
| 118 | MACHINE_END | 235 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-lager-reference.c b/arch/arm/mach-shmobile/board-lager-reference.c index 51a3bcc704e5..a6e271d92af0 100644 --- a/arch/arm/mach-shmobile/board-lager-reference.c +++ b/arch/arm/mach-shmobile/board-lager-reference.c | |||
| @@ -18,6 +18,8 @@ | |||
| 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | #include <linux/clk.h> | ||
| 22 | #include <linux/clkdev.h> | ||
| 21 | #include <linux/init.h> | 23 | #include <linux/init.h> |
| 22 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
| 23 | #include <mach/common.h> | 25 | #include <mach/common.h> |
| @@ -27,12 +29,42 @@ | |||
| 27 | 29 | ||
| 28 | static void __init lager_add_standard_devices(void) | 30 | static void __init lager_add_standard_devices(void) |
| 29 | { | 31 | { |
| 32 | #ifdef CONFIG_COMMON_CLK | ||
| 33 | /* | ||
| 34 | * This is a really crude hack to provide clkdev support to the SCIF | ||
| 35 | * and CMT devices until they get moved to DT. | ||
| 36 | */ | ||
| 37 | static const char * const scif_names[] = { | ||
| 38 | "scifa0", "scifa1", "scifb0", "scifb1", | ||
| 39 | "scifb2", "scifa2", "scif0", "scif1", | ||
| 40 | "hscif0", "hscif1", | ||
| 41 | }; | ||
| 42 | struct clk *clk; | ||
| 43 | unsigned int i; | ||
| 44 | |||
| 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); | ||
| 49 | clk_put(clk); | ||
| 50 | } | ||
| 51 | } | ||
| 52 | |||
| 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 | ||
| 30 | r8a7790_clock_init(); | 59 | r8a7790_clock_init(); |
| 60 | #endif | ||
| 61 | |||
| 31 | r8a7790_add_dt_devices(); | 62 | r8a7790_add_dt_devices(); |
| 32 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 63 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
| 33 | } | 64 | } |
| 34 | 65 | ||
| 35 | static const char *lager_boards_compat_dt[] __initdata = { | 66 | static const char *lager_boards_compat_dt[] __initdata = { |
| 67 | "renesas,lager", | ||
| 36 | "renesas,lager-reference", | 68 | "renesas,lager-reference", |
| 37 | NULL, | 69 | NULL, |
| 38 | }; | 70 | }; |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 207acf0e07da..b3ee96e31b82 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
| @@ -1406,7 +1406,7 @@ static const struct pinctrl_map mackerel_pinctrl_map[] = { | |||
| 1406 | /* USBHS1 */ | 1406 | /* USBHS1 */ |
| 1407 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", | 1407 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", |
| 1408 | "usb1_vbus", "usb1"), | 1408 | "usb1_vbus", "usb1"), |
| 1409 | PIN_MAP_CONFIGS_GROUP_DEFAULT("renesas_usbhs.&", "pfc-sh7372", | 1409 | PIN_MAP_CONFIGS_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", |
| 1410 | "usb1_vbus", pin_pulldown_conf), | 1410 | "usb1_vbus", pin_pulldown_conf), |
| 1411 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", | 1411 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", |
| 1412 | "usb1_otg_id_0", "usb1"), | 1412 | "usb1_otg_id_0", "usb1"), |
diff --git a/arch/arm/mach-shmobile/clock-r7s72100.c b/arch/arm/mach-shmobile/clock-r7s72100.c index 7b457aed8253..0814a508fd61 100644 --- a/arch/arm/mach-shmobile/clock-r7s72100.c +++ b/arch/arm/mach-shmobile/clock-r7s72100.c | |||
| @@ -181,7 +181,6 @@ static struct clk_lookup lookups[] = { | |||
| 181 | CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), | 181 | CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), |
| 182 | CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), | 182 | CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), |
| 183 | CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), | 183 | CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), |
| 184 | CLKDEV_CON_ID("mtu2_fck", &mstp_clks[MSTP33]), | ||
| 185 | }; | 184 | }; |
| 186 | 185 | ||
| 187 | void __init r7s72100_clock_init(void) | 186 | void __init r7s72100_clock_init(void) |
diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c index 80cd8f31fa3c..09c5c7d66431 100644 --- a/arch/arm/mach-shmobile/clock-r8a7790.c +++ b/arch/arm/mach-shmobile/clock-r8a7790.c | |||
| @@ -292,9 +292,13 @@ static struct clk_lookup lookups[] = { | |||
| 292 | CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP717]), | 292 | CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP717]), |
| 293 | CLKDEV_DEV_ID("sh-sci.9", &mstp_clks[MSTP716]), | 293 | CLKDEV_DEV_ID("sh-sci.9", &mstp_clks[MSTP716]), |
| 294 | CLKDEV_DEV_ID("e6508000.i2c", &mstp_clks[MSTP931]), | 294 | CLKDEV_DEV_ID("e6508000.i2c", &mstp_clks[MSTP931]), |
| 295 | CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP931]), | ||
| 295 | CLKDEV_DEV_ID("e6518000.i2c", &mstp_clks[MSTP930]), | 296 | CLKDEV_DEV_ID("e6518000.i2c", &mstp_clks[MSTP930]), |
| 297 | CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP930]), | ||
| 296 | CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP929]), | 298 | CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP929]), |
| 299 | CLKDEV_DEV_ID("i2c-rcar.2", &mstp_clks[MSTP929]), | ||
| 297 | CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP928]), | 300 | CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP928]), |
| 301 | CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP928]), | ||
| 298 | CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), | 302 | CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), |
| 299 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), | 303 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), |
| 300 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), | 304 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), |
diff --git a/arch/arm/mach-shmobile/clock-r8a7791.c b/arch/arm/mach-shmobile/clock-r8a7791.c index ff2d60d55bd5..f5461262ee25 100644 --- a/arch/arm/mach-shmobile/clock-r8a7791.c +++ b/arch/arm/mach-shmobile/clock-r8a7791.c | |||
| @@ -122,6 +122,7 @@ static struct clk *main_clks[] = { | |||
| 122 | 122 | ||
| 123 | /* MSTP */ | 123 | /* MSTP */ |
| 124 | enum { | 124 | enum { |
| 125 | MSTP813, | ||
| 125 | MSTP726, MSTP724, MSTP723, MSTP721, MSTP720, | 126 | MSTP726, MSTP724, MSTP723, MSTP721, MSTP720, |
| 126 | MSTP719, MSTP718, MSTP715, MSTP714, | 127 | MSTP719, MSTP718, MSTP715, MSTP714, |
| 127 | MSTP522, | 128 | MSTP522, |
| @@ -132,6 +133,7 @@ enum { | |||
| 132 | }; | 133 | }; |
| 133 | 134 | ||
| 134 | static struct clk mstp_clks[MSTP_NR] = { | 135 | static struct clk mstp_clks[MSTP_NR] = { |
| 136 | [MSTP813] = SH_CLK_MSTP32(&p_clk, SMSTPCR8, 13, 0), /* Ether */ | ||
| 135 | [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */ | 137 | [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */ |
| 136 | [MSTP724] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 24, 0), /* DU0 */ | 138 | [MSTP724] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 24, 0), /* DU0 */ |
| 137 | [MSTP723] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 23, 0), /* DU1 */ | 139 | [MSTP723] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 23, 0), /* DU1 */ |
| @@ -192,6 +194,7 @@ static struct clk_lookup lookups[] = { | |||
| 192 | CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), | 194 | CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), |
| 193 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), | 195 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), |
| 194 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), | 196 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), |
| 197 | CLKDEV_DEV_ID("r8a7791-ether", &mstp_clks[MSTP813]), /* Ether */ | ||
| 195 | }; | 198 | }; |
| 196 | 199 | ||
| 197 | #define R8A7791_CLOCK_ROOT(e, m, p0, p1, p30, p31) \ | 200 | #define R8A7791_CLOCK_ROOT(e, m, p0, p1, p30, p31) \ |
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c index 2aeec468cf7c..87e349ddba7c 100644 --- a/arch/arm/mach-shmobile/clock-sh73a0.c +++ b/arch/arm/mach-shmobile/clock-sh73a0.c | |||
| @@ -652,6 +652,7 @@ static struct clk_lookup lookups[] = { | |||
| 652 | CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ | 652 | CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ |
| 653 | CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */ | 653 | CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */ |
| 654 | CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */ | 654 | CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */ |
| 655 | CLKDEV_DEV_ID("ec230000.sound", &mstp_clks[MSTP328]), /* FSI */ | ||
| 655 | CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */ | 656 | CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */ |
| 656 | CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), /* I2C1 */ | 657 | CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), /* I2C1 */ |
| 657 | CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ | 658 | CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index b497f932d04f..f4076a50e970 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h | |||
| @@ -20,13 +20,30 @@ | |||
| 20 | #define __ASM_R8A7778_H__ | 20 | #define __ASM_R8A7778_H__ |
| 21 | 21 | ||
| 22 | #include <linux/sh_eth.h> | 22 | #include <linux/sh_eth.h> |
| 23 | #include <linux/platform_data/camera-rcar.h> | ||
| 24 | 23 | ||
| 25 | /* HPB-DMA slave IDs */ | 24 | /* HPB-DMA slave IDs */ |
| 26 | enum { | 25 | enum { |
| 27 | HPBDMA_SLAVE_DUMMY, | 26 | HPBDMA_SLAVE_DUMMY, |
| 28 | HPBDMA_SLAVE_SDHI0_TX, | 27 | HPBDMA_SLAVE_SDHI0_TX, |
| 29 | HPBDMA_SLAVE_SDHI0_RX, | 28 | HPBDMA_SLAVE_SDHI0_RX, |
| 29 | HPBDMA_SLAVE_SSI0_TX, | ||
| 30 | HPBDMA_SLAVE_SSI0_RX, | ||
| 31 | HPBDMA_SLAVE_SSI1_TX, | ||
| 32 | HPBDMA_SLAVE_SSI1_RX, | ||
| 33 | HPBDMA_SLAVE_SSI2_TX, | ||
| 34 | HPBDMA_SLAVE_SSI2_RX, | ||
| 35 | HPBDMA_SLAVE_SSI3_TX, | ||
| 36 | HPBDMA_SLAVE_SSI3_RX, | ||
| 37 | HPBDMA_SLAVE_SSI4_TX, | ||
| 38 | HPBDMA_SLAVE_SSI4_RX, | ||
| 39 | HPBDMA_SLAVE_SSI5_TX, | ||
| 40 | HPBDMA_SLAVE_SSI5_RX, | ||
| 41 | HPBDMA_SLAVE_SSI6_TX, | ||
| 42 | HPBDMA_SLAVE_SSI6_RX, | ||
| 43 | HPBDMA_SLAVE_SSI7_TX, | ||
| 44 | HPBDMA_SLAVE_SSI7_RX, | ||
| 45 | HPBDMA_SLAVE_SSI8_TX, | ||
| 46 | HPBDMA_SLAVE_SSI8_RX, | ||
| 30 | HPBDMA_SLAVE_HPBIF0_TX, | 47 | HPBDMA_SLAVE_HPBIF0_TX, |
| 31 | HPBDMA_SLAVE_HPBIF0_RX, | 48 | HPBDMA_SLAVE_HPBIF0_RX, |
| 32 | HPBDMA_SLAVE_HPBIF1_TX, | 49 | HPBDMA_SLAVE_HPBIF1_TX, |
| @@ -45,6 +62,8 @@ enum { | |||
| 45 | HPBDMA_SLAVE_HPBIF7_RX, | 62 | HPBDMA_SLAVE_HPBIF7_RX, |
| 46 | HPBDMA_SLAVE_HPBIF8_TX, | 63 | HPBDMA_SLAVE_HPBIF8_TX, |
| 47 | HPBDMA_SLAVE_HPBIF8_RX, | 64 | HPBDMA_SLAVE_HPBIF8_RX, |
| 65 | HPBDMA_SLAVE_USBFUNC_TX, | ||
| 66 | HPBDMA_SLAVE_USBFUNC_RX, | ||
| 48 | }; | 67 | }; |
| 49 | 68 | ||
| 50 | extern void r8a7778_add_standard_devices(void); | 69 | extern void r8a7778_add_standard_devices(void); |
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 81701cfb6cc6..7ea6308e5da8 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c | |||
| @@ -319,6 +319,29 @@ void __init r8a7778_add_dt_devices(void) | |||
| 319 | #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ | 319 | #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ |
| 320 | #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ | 320 | #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ |
| 321 | 321 | ||
| 322 | #define HPBDMA_SSI(_id) \ | ||
| 323 | { \ | ||
| 324 | .id = HPBDMA_SLAVE_SSI## _id ##_TX, \ | ||
| 325 | .addr = 0xffd91008 + (_id * 0x40), \ | ||
| 326 | .dcr = HPB_DMAE_DCR_CT | \ | ||
| 327 | HPB_DMAE_DCR_DIP | \ | ||
| 328 | HPB_DMAE_DCR_SPDS_32BIT | \ | ||
| 329 | HPB_DMAE_DCR_DMDL | \ | ||
| 330 | HPB_DMAE_DCR_DPDS_32BIT, \ | ||
| 331 | .port = _id + (_id << 8), \ | ||
| 332 | .dma_ch = (28 + _id), \ | ||
| 333 | }, { \ | ||
| 334 | .id = HPBDMA_SLAVE_SSI## _id ##_RX, \ | ||
| 335 | .addr = 0xffd9100c + (_id * 0x40), \ | ||
| 336 | .dcr = HPB_DMAE_DCR_CT | \ | ||
| 337 | HPB_DMAE_DCR_DIP | \ | ||
| 338 | HPB_DMAE_DCR_SMDL | \ | ||
| 339 | HPB_DMAE_DCR_SPDS_32BIT | \ | ||
| 340 | HPB_DMAE_DCR_DPDS_32BIT, \ | ||
| 341 | .port = _id + (_id << 8), \ | ||
| 342 | .dma_ch = (28 + _id), \ | ||
| 343 | } | ||
| 344 | |||
| 322 | #define HPBDMA_HPBIF(_id) \ | 345 | #define HPBDMA_HPBIF(_id) \ |
| 323 | { \ | 346 | { \ |
| 324 | .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ | 347 | .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ |
| @@ -371,8 +394,34 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { | |||
| 371 | .port = 0x0D0C, | 394 | .port = 0x0D0C, |
| 372 | .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, | 395 | .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, |
| 373 | .dma_ch = 22, | 396 | .dma_ch = 22, |
| 397 | }, { | ||
| 398 | .id = HPBDMA_SLAVE_USBFUNC_TX, /* for D0 */ | ||
| 399 | .addr = 0xffe60018, | ||
| 400 | .dcr = HPB_DMAE_DCR_SPDS_32BIT | | ||
| 401 | HPB_DMAE_DCR_DMDL | | ||
| 402 | HPB_DMAE_DCR_DPDS_32BIT, | ||
| 403 | .port = 0x0000, | ||
| 404 | .dma_ch = 14, | ||
| 405 | }, { | ||
| 406 | .id = HPBDMA_SLAVE_USBFUNC_RX, /* for D1 */ | ||
| 407 | .addr = 0xffe6001c, | ||
| 408 | .dcr = HPB_DMAE_DCR_SMDL | | ||
| 409 | HPB_DMAE_DCR_SPDS_32BIT | | ||
| 410 | HPB_DMAE_DCR_DPDS_32BIT, | ||
| 411 | .port = 0x0101, | ||
| 412 | .dma_ch = 15, | ||
| 374 | }, | 413 | }, |
| 375 | 414 | ||
| 415 | HPBDMA_SSI(0), | ||
| 416 | HPBDMA_SSI(1), | ||
| 417 | HPBDMA_SSI(2), | ||
| 418 | HPBDMA_SSI(3), | ||
| 419 | HPBDMA_SSI(4), | ||
| 420 | HPBDMA_SSI(5), | ||
| 421 | HPBDMA_SSI(6), | ||
| 422 | HPBDMA_SSI(7), | ||
| 423 | HPBDMA_SSI(8), | ||
| 424 | |||
| 376 | HPBDMA_HPBIF(0), | 425 | HPBDMA_HPBIF(0), |
| 377 | HPBDMA_HPBIF(1), | 426 | HPBDMA_HPBIF(1), |
| 378 | HPBDMA_HPBIF(2), | 427 | HPBDMA_HPBIF(2), |
| @@ -385,24 +434,44 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { | |||
| 385 | }; | 434 | }; |
| 386 | 435 | ||
| 387 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { | 436 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { |
| 437 | HPB_DMAE_CHANNEL(0x7c, HPBDMA_SLAVE_USBFUNC_TX), /* ch. 14 */ | ||
| 438 | HPB_DMAE_CHANNEL(0x7c, HPBDMA_SLAVE_USBFUNC_RX), /* ch. 15 */ | ||
| 388 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ | 439 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ |
| 389 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ | 440 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ |
| 441 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_TX), /* ch. 28 */ | ||
| 442 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_RX), /* ch. 28 */ | ||
| 390 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ | 443 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ |
| 391 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ | 444 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ |
| 445 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI1_TX), /* ch. 29 */ | ||
| 446 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI1_RX), /* ch. 29 */ | ||
| 392 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ | 447 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ |
| 393 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ | 448 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ |
| 449 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI2_TX), /* ch. 30 */ | ||
| 450 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI2_RX), /* ch. 30 */ | ||
| 394 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ | 451 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ |
| 395 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ | 452 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ |
| 453 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI3_TX), /* ch. 31 */ | ||
| 454 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI3_RX), /* ch. 31 */ | ||
| 396 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ | 455 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ |
| 397 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ | 456 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ |
| 457 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI4_TX), /* ch. 32 */ | ||
| 458 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI4_RX), /* ch. 32 */ | ||
| 398 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ | 459 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ |
| 399 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ | 460 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ |
| 461 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI5_TX), /* ch. 33 */ | ||
| 462 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI5_RX), /* ch. 33 */ | ||
| 400 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ | 463 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ |
| 401 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ | 464 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ |
| 465 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI6_TX), /* ch. 34 */ | ||
| 466 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI6_RX), /* ch. 34 */ | ||
| 402 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ | 467 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ |
| 403 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ | 468 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ |
| 469 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI7_TX), /* ch. 35 */ | ||
| 470 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI7_RX), /* ch. 35 */ | ||
| 404 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ | 471 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ |
| 405 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ | 472 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ |
| 473 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI8_TX), /* ch. 36 */ | ||
| 474 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI8_RX), /* ch. 36 */ | ||
| 406 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ | 475 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ |
| 407 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ | 476 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ |
| 408 | }; | 477 | }; |
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 3543c3bacb75..8474818a7ae0 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c | |||
| @@ -67,6 +67,27 @@ R8A7790_GPIO(5); | |||
| 67 | &r8a7790_gpio##idx##_platform_data, \ | 67 | &r8a7790_gpio##idx##_platform_data, \ |
| 68 | sizeof(r8a7790_gpio##idx##_platform_data)) | 68 | sizeof(r8a7790_gpio##idx##_platform_data)) |
| 69 | 69 | ||
| 70 | static struct resource i2c_resources[] __initdata = { | ||
| 71 | /* I2C0 */ | ||
| 72 | DEFINE_RES_MEM(0xE6508000, 0x40), | ||
| 73 | DEFINE_RES_IRQ(gic_spi(287)), | ||
| 74 | /* I2C1 */ | ||
| 75 | DEFINE_RES_MEM(0xE6518000, 0x40), | ||
| 76 | DEFINE_RES_IRQ(gic_spi(288)), | ||
| 77 | /* I2C2 */ | ||
| 78 | DEFINE_RES_MEM(0xE6530000, 0x40), | ||
| 79 | DEFINE_RES_IRQ(gic_spi(286)), | ||
| 80 | /* I2C3 */ | ||
| 81 | DEFINE_RES_MEM(0xE6540000, 0x40), | ||
| 82 | DEFINE_RES_IRQ(gic_spi(290)), | ||
| 83 | |||
| 84 | }; | ||
| 85 | |||
| 86 | #define r8a7790_register_i2c(idx) \ | ||
| 87 | platform_device_register_simple( \ | ||
| 88 | "i2c-rcar", idx, \ | ||
| 89 | i2c_resources + (2 * idx), 2); \ | ||
| 90 | |||
| 70 | void __init r8a7790_pinmux_init(void) | 91 | void __init r8a7790_pinmux_init(void) |
| 71 | { | 92 | { |
| 72 | r8a7790_register_pfc(); | 93 | r8a7790_register_pfc(); |
| @@ -76,6 +97,10 @@ void __init r8a7790_pinmux_init(void) | |||
| 76 | r8a7790_register_gpio(3); | 97 | r8a7790_register_gpio(3); |
| 77 | r8a7790_register_gpio(4); | 98 | r8a7790_register_gpio(4); |
| 78 | r8a7790_register_gpio(5); | 99 | r8a7790_register_gpio(5); |
| 100 | r8a7790_register_i2c(0); | ||
| 101 | r8a7790_register_i2c(1); | ||
| 102 | r8a7790_register_i2c(2); | ||
| 103 | r8a7790_register_i2c(3); | ||
| 79 | } | 104 | } |
| 80 | 105 | ||
| 81 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ | 106 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ |
diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 5734c24bf6c7..69ccc6c6fd33 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | #include <linux/clk/shmobile.h> | ||
| 21 | #include <linux/clocksource.h> | 22 | #include <linux/clocksource.h> |
| 22 | #include <linux/io.h> | 23 | #include <linux/io.h> |
| 23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
| @@ -44,8 +45,10 @@ u32 __init rcar_gen2_read_mode_pins(void) | |||
| 44 | 45 | ||
| 45 | void __init rcar_gen2_timer_init(void) | 46 | void __init rcar_gen2_timer_init(void) |
| 46 | { | 47 | { |
| 47 | #ifdef CONFIG_ARM_ARCH_TIMER | 48 | #if defined(CONFIG_ARM_ARCH_TIMER) || defined(CONFIG_COMMON_CLK) |
| 48 | u32 mode = rcar_gen2_read_mode_pins(); | 49 | u32 mode = rcar_gen2_read_mode_pins(); |
| 50 | #endif | ||
| 51 | #ifdef CONFIG_ARM_ARCH_TIMER | ||
| 49 | void __iomem *base; | 52 | void __iomem *base; |
| 50 | int extal_mhz = 0; | 53 | int extal_mhz = 0; |
| 51 | u32 freq; | 54 | u32 freq; |
| @@ -78,14 +81,28 @@ void __init rcar_gen2_timer_init(void) | |||
| 78 | /* Remap "armgcnt address map" space */ | 81 | /* Remap "armgcnt address map" space */ |
| 79 | base = ioremap(0xe6080000, PAGE_SIZE); | 82 | base = ioremap(0xe6080000, PAGE_SIZE); |
| 80 | 83 | ||
| 81 | /* Update registers with correct frequency */ | 84 | /* |
| 82 | iowrite32(freq, base + CNTFID0); | 85 | * Update the timer if it is either not running, or is not at the |
| 83 | asm volatile("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq)); | 86 | * right frequency. The timer is only configurable in secure mode |
| 87 | * so this avoids an abort if the loader started the timer and | ||
| 88 | * entered the kernel in non-secure mode. | ||
| 89 | */ | ||
| 90 | |||
| 91 | if ((ioread32(base + CNTCR) & 1) == 0 || | ||
| 92 | ioread32(base + CNTFID0) != freq) { | ||
| 93 | /* Update registers with correct frequency */ | ||
| 94 | iowrite32(freq, base + CNTFID0); | ||
| 95 | asm volatile("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq)); | ||
| 96 | |||
| 97 | /* make sure arch timer is started by setting bit 0 of CNTCR */ | ||
| 98 | iowrite32(1, base + CNTCR); | ||
| 99 | } | ||
| 84 | 100 | ||
| 85 | /* make sure arch timer is started by setting bit 0 of CNTCR */ | ||
| 86 | iowrite32(1, base + CNTCR); | ||
| 87 | iounmap(base); | 101 | iounmap(base); |
| 88 | #endif /* CONFIG_ARM_ARCH_TIMER */ | 102 | #endif /* CONFIG_ARM_ARCH_TIMER */ |
| 89 | 103 | ||
| 104 | #ifdef CONFIG_COMMON_CLK | ||
| 105 | rcar_gen2_clocks_init(mode); | ||
| 106 | #endif | ||
| 90 | clocksource_of_init(); | 107 | clocksource_of_init(); |
| 91 | } | 108 | } |
diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h new file mode 100644 index 000000000000..420f0b00ae1e --- /dev/null +++ b/include/dt-bindings/clock/r8a7790-clock.h | |||
| @@ -0,0 +1,100 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2013 Ideas On Board SPRL | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License as published by | ||
| 6 | * the Free Software Foundation; either version 2 of the License, or | ||
| 7 | * (at your option) any later version. | ||
| 8 | */ | ||
| 9 | |||
| 10 | #ifndef __DT_BINDINGS_CLOCK_R8A7790_H__ | ||
| 11 | #define __DT_BINDINGS_CLOCK_R8A7790_H__ | ||
| 12 | |||
| 13 | /* CPG */ | ||
| 14 | #define R8A7790_CLK_MAIN 0 | ||
| 15 | #define R8A7790_CLK_PLL0 1 | ||
| 16 | #define R8A7790_CLK_PLL1 2 | ||
| 17 | #define R8A7790_CLK_PLL3 3 | ||
| 18 | #define R8A7790_CLK_LB 4 | ||
| 19 | #define R8A7790_CLK_QSPI 5 | ||
| 20 | #define R8A7790_CLK_SDH 6 | ||
| 21 | #define R8A7790_CLK_SD0 7 | ||
| 22 | #define R8A7790_CLK_SD1 8 | ||
| 23 | #define R8A7790_CLK_Z 9 | ||
| 24 | |||
| 25 | /* MSTP1 */ | ||
| 26 | #define R8A7790_CLK_TMU1 11 | ||
| 27 | #define R8A7790_CLK_TMU3 21 | ||
| 28 | #define R8A7790_CLK_TMU2 22 | ||
| 29 | #define R8A7790_CLK_CMT0 24 | ||
| 30 | #define R8A7790_CLK_TMU0 25 | ||
| 31 | #define R8A7790_CLK_VSP1_DU1 27 | ||
| 32 | #define R8A7790_CLK_VSP1_DU0 28 | ||
| 33 | #define R8A7790_CLK_VSP1_RT 30 | ||
| 34 | #define R8A7790_CLK_VSP1_SY 31 | ||
| 35 | |||
| 36 | /* MSTP2 */ | ||
| 37 | #define R8A7790_CLK_SCIFA2 2 | ||
| 38 | #define R8A7790_CLK_SCIFA1 3 | ||
| 39 | #define R8A7790_CLK_SCIFA0 4 | ||
| 40 | #define R8A7790_CLK_SCIFB0 6 | ||
| 41 | #define R8A7790_CLK_SCIFB1 7 | ||
| 42 | #define R8A7790_CLK_SCIFB2 16 | ||
| 43 | #define R8A7790_CLK_SYS_DMAC0 18 | ||
| 44 | #define R8A7790_CLK_SYS_DMAC1 19 | ||
| 45 | |||
| 46 | /* MSTP3 */ | ||
| 47 | #define R8A7790_CLK_TPU0 4 | ||
| 48 | #define R8A7790_CLK_MMCIF1 5 | ||
| 49 | #define R8A7790_CLK_SDHI3 11 | ||
| 50 | #define R8A7790_CLK_SDHI2 12 | ||
| 51 | #define R8A7790_CLK_SDHI1 13 | ||
| 52 | #define R8A7790_CLK_SDHI0 14 | ||
| 53 | #define R8A7790_CLK_MMCIF0 15 | ||
| 54 | #define R8A7790_CLK_SSUSB 28 | ||
| 55 | #define R8A7790_CLK_CMT1 29 | ||
| 56 | #define R8A7790_CLK_USBDMAC0 30 | ||
| 57 | #define R8A7790_CLK_USBDMAC1 31 | ||
| 58 | |||
| 59 | /* MSTP5 */ | ||
| 60 | #define R8A7790_CLK_THERMAL 22 | ||
| 61 | #define R8A7790_CLK_PWM 23 | ||
| 62 | |||
| 63 | /* MSTP7 */ | ||
| 64 | #define R8A7790_CLK_EHCI 3 | ||
| 65 | #define R8A7790_CLK_HSUSB 4 | ||
| 66 | #define R8A7790_CLK_HSCIF1 16 | ||
| 67 | #define R8A7790_CLK_HSCIF0 17 | ||
| 68 | #define R8A7790_CLK_SCIF1 20 | ||
| 69 | #define R8A7790_CLK_SCIF0 21 | ||
| 70 | #define R8A7790_CLK_DU2 22 | ||
| 71 | #define R8A7790_CLK_DU1 23 | ||
| 72 | #define R8A7790_CLK_DU0 24 | ||
| 73 | #define R8A7790_CLK_LVDS1 25 | ||
| 74 | #define R8A7790_CLK_LVDS0 26 | ||
| 75 | |||
| 76 | /* MSTP8 */ | ||
| 77 | #define R8A7790_CLK_VIN3 8 | ||
| 78 | #define R8A7790_CLK_VIN2 9 | ||
| 79 | #define R8A7790_CLK_VIN1 10 | ||
| 80 | #define R8A7790_CLK_VIN0 11 | ||
| 81 | #define R8A7790_CLK_ETHER 13 | ||
| 82 | #define R8A7790_CLK_SATA1 14 | ||
| 83 | #define R8A7790_CLK_SATA0 15 | ||
| 84 | |||
| 85 | /* MSTP9 */ | ||
| 86 | #define R8A7790_CLK_GPIO5 7 | ||
| 87 | #define R8A7790_CLK_GPIO4 8 | ||
| 88 | #define R8A7790_CLK_GPIO3 9 | ||
| 89 | #define R8A7790_CLK_GPIO2 10 | ||
| 90 | #define R8A7790_CLK_GPIO1 11 | ||
| 91 | #define R8A7790_CLK_GPIO0 12 | ||
| 92 | #define R8A7790_CLK_RCAN1 15 | ||
| 93 | #define R8A7790_CLK_RCAN0 16 | ||
| 94 | #define R8A7790_CLK_IICDVFS 26 | ||
| 95 | #define R8A7790_CLK_I2C3 28 | ||
| 96 | #define R8A7790_CLK_I2C2 29 | ||
| 97 | #define R8A7790_CLK_I2C1 30 | ||
| 98 | #define R8A7790_CLK_I2C0 31 | ||
| 99 | |||
| 100 | #endif /* __DT_BINDINGS_CLOCK_R8A7790_H__ */ | ||
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h new file mode 100644 index 000000000000..df1715b77f96 --- /dev/null +++ b/include/dt-bindings/clock/r8a7791-clock.h | |||
| @@ -0,0 +1,105 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2013 Ideas On Board SPRL | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License as published by | ||
| 6 | * the Free Software Foundation; either version 2 of the License, or | ||
| 7 | * (at your option) any later version. | ||
| 8 | */ | ||
| 9 | |||
| 10 | #ifndef __DT_BINDINGS_CLOCK_R8A7791_H__ | ||
| 11 | #define __DT_BINDINGS_CLOCK_R8A7791_H__ | ||
| 12 | |||
| 13 | /* CPG */ | ||
| 14 | #define R8A7791_CLK_MAIN 0 | ||
| 15 | #define R8A7791_CLK_PLL0 1 | ||
| 16 | #define R8A7791_CLK_PLL1 2 | ||
| 17 | #define R8A7791_CLK_PLL3 3 | ||
| 18 | #define R8A7791_CLK_LB 4 | ||
| 19 | #define R8A7791_CLK_QSPI 5 | ||
| 20 | #define R8A7791_CLK_SDH 6 | ||
| 21 | #define R8A7791_CLK_SD0 7 | ||
| 22 | #define R8A7791_CLK_Z 8 | ||
| 23 | |||
| 24 | /* MSTP1 */ | ||
| 25 | #define R8A7791_CLK_TMU1 11 | ||
| 26 | #define R8A7791_CLK_TMU3 21 | ||
| 27 | #define R8A7791_CLK_TMU2 22 | ||
| 28 | #define R8A7791_CLK_CMT0 24 | ||
| 29 | #define R8A7791_CLK_TMU0 25 | ||
| 30 | #define R8A7791_CLK_VSP1_DU1 27 | ||
| 31 | #define R8A7791_CLK_VSP1_DU0 28 | ||
| 32 | #define R8A7791_CLK_VSP1_SY 31 | ||
| 33 | |||
| 34 | /* MSTP2 */ | ||
| 35 | #define R8A7791_CLK_SCIFA2 2 | ||
| 36 | #define R8A7791_CLK_SCIFA1 3 | ||
| 37 | #define R8A7791_CLK_SCIFA0 4 | ||
| 38 | #define R8A7791_CLK_SCIFB0 6 | ||
| 39 | #define R8A7791_CLK_SCIFB1 7 | ||
| 40 | #define R8A7791_CLK_SCIFB2 16 | ||
| 41 | #define R8A7791_CLK_DMAC 18 | ||
| 42 | |||
| 43 | /* MSTP3 */ | ||
| 44 | #define R8A7791_CLK_TPU0 4 | ||
| 45 | #define R8A7791_CLK_SDHI2 11 | ||
| 46 | #define R8A7791_CLK_SDHI1 12 | ||
| 47 | #define R8A7791_CLK_SDHI0 14 | ||
| 48 | #define R8A7791_CLK_MMCIF0 15 | ||
| 49 | #define R8A7791_CLK_SSUSB 28 | ||
| 50 | #define R8A7791_CLK_CMT1 29 | ||
| 51 | #define R8A7791_CLK_USBDMAC0 30 | ||
| 52 | #define R8A7791_CLK_USBDMAC1 31 | ||
| 53 | |||
| 54 | /* MSTP5 */ | ||
| 55 | #define R8A7791_CLK_THERMAL 22 | ||
| 56 | #define R8A7791_CLK_PWM 23 | ||
| 57 | |||
| 58 | /* MSTP7 */ | ||
| 59 | #define R8A7791_CLK_HSUSB 4 | ||
| 60 | #define R8A7791_CLK_HSCIF2 13 | ||
| 61 | #define R8A7791_CLK_SCIF5 14 | ||
| 62 | #define R8A7791_CLK_SCIF4 15 | ||
| 63 | #define R8A7791_CLK_HSCIF1 16 | ||
| 64 | #define R8A7791_CLK_HSCIF0 17 | ||
| 65 | #define R8A7791_CLK_SCIF3 18 | ||
| 66 | #define R8A7791_CLK_SCIF2 19 | ||
| 67 | #define R8A7791_CLK_SCIF1 20 | ||
| 68 | #define R8A7791_CLK_SCIF0 21 | ||
| 69 | #define R8A7791_CLK_DU1 23 | ||
| 70 | #define R8A7791_CLK_DU0 24 | ||
| 71 | #define R8A7791_CLK_LVDS0 26 | ||
| 72 | |||
| 73 | /* MSTP8 */ | ||
| 74 | #define R8A7791_CLK_VIN2 9 | ||
| 75 | #define R8A7791_CLK_VIN1 10 | ||
| 76 | #define R8A7791_CLK_VIN0 11 | ||
| 77 | #define R8A7791_CLK_ETHER 13 | ||
| 78 | #define R8A7791_CLK_SATA1 14 | ||
| 79 | #define R8A7791_CLK_SATA0 15 | ||
| 80 | |||
| 81 | /* MSTP9 */ | ||
| 82 | #define R8A7791_CLK_GPIO7 4 | ||
| 83 | #define R8A7791_CLK_GPIO6 5 | ||
| 84 | #define R8A7791_CLK_GPIO5 7 | ||
| 85 | #define R8A7791_CLK_GPIO4 8 | ||
| 86 | #define R8A7791_CLK_GPIO3 9 | ||
| 87 | #define R8A7791_CLK_GPIO2 10 | ||
| 88 | #define R8A7791_CLK_GPIO1 11 | ||
| 89 | #define R8A7791_CLK_GPIO0 12 | ||
| 90 | #define R8A7791_CLK_RCAN1 15 | ||
| 91 | #define R8A7791_CLK_RCAN0 16 | ||
| 92 | #define R8A7791_CLK_I2C5 25 | ||
| 93 | #define R8A7791_CLK_IICDVFS 26 | ||
| 94 | #define R8A7791_CLK_I2C4 27 | ||
| 95 | #define R8A7791_CLK_I2C3 28 | ||
| 96 | #define R8A7791_CLK_I2C2 29 | ||
| 97 | #define R8A7791_CLK_I2C1 30 | ||
| 98 | #define R8A7791_CLK_I2C0 31 | ||
| 99 | |||
| 100 | /* MSTP11 */ | ||
| 101 | #define R8A7791_CLK_SCIFA3 6 | ||
| 102 | #define R8A7791_CLK_SCIFA4 7 | ||
| 103 | #define R8A7791_CLK_SCIFA5 8 | ||
| 104 | |||
| 105 | #endif /* __DT_BINDINGS_CLOCK_R8A7791_H__ */ | ||
