Re: [PATCH 0/9] ARM: samsung: randconfig build fixes
On Tuesday 03 March 2015 04:50:23 Kukjin Kim wrote: On 02/18/15 09:21, Kukjin Kim wrote: Arnd Bergmann wrote: This is a set of mostly trivial build fixes for bugs I have encountered in random configurations. I'm sending them separate from the other platforms since we have a lot of them for the various samsung platforms here. Kukjin, please pick them up into a fixes branch for 3.20 or send an Ack so we can apply them directly. Sure, I will create a branch for them in this week. IMO, would be better if I could make a non-critical fixes branch for v3.20 in Samsung tree for further other Samsung stuff for v3.20 Let me know if anything looks wrong with some of the patches. OK, if anything I'll let you know. Thanks for your pointing out. Happy new year again! (Actually it's the Lunar New Year holidays now) - Kukjin Arnd Bergmann (9): ARM: s3c64xx: add I2C dependencies where needed ARM: s3c64xx: fix building without CONFIG_PM_SLEEP ARM: s3c64xx: fix __initdata section mismatch ARM: s3c24xx: use SAMSUNG_WAKEMASK for s3c2416 ARM: s3c24xx: fix building without PM_SLEEP ARM: s3c24xx: fix header file inclusions ARM: s3c24xx: avoid a Kconfig warning ARM: EXYNOS: suspend requires regulator access ARM: EXYNOS: make exynos 4210 cpuidle build without SMP Arnd, BTW, I can't see exynos related patches in my mailbox, I don't know the reason...can you please re-send it? Thanks for letting me know. It was a problem on my side with git-send-email when sending them out. I'll send them using my normal mail client now. Arnd -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 8/9] ARM: EXYNOS: suspend requires regulator access
Building an exynos kernel without regulators but with suspend enabled results in a link error: arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_finish': arch/arm/mach-exynos/suspend.c:532: undefined reference to `regulator_suspend_finish' arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_prepare': arch/arm/mach-exynos/suspend.c:515: undefined reference to `regulator_suspend_prepare' This adds an appropriate 'select' statement in Kconfig to ensure the symbols are available. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/mach-exynos/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 603820e5aba7..f4bd06370ad8 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -22,6 +22,7 @@ menuconfig ARCH_EXYNOS select PINCTRL select PINCTRL_EXYNOS select PM_GENERIC_DOMAINS if PM + select REGULATOR if PM_SLEEP select S5P_DEV_MFC select SRAM select MFD_SYSCON -- 2.1.0.rc2 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 9/9] ARM: EXYNOS: make exynos 4210 cpuidle build without SMP
arch/arm/mach-exynos/pm.c: In function 'exynos_cpu0_enter_aftr': arch/arm/mach-exynos/pm.c:246:4: error: implicit declaration of function 'arch_send_wakeup_ipi_mask' [-Werror=implicit-function-declaration] arch_send_wakeup_ipi_mask(cpumask_of(1)); Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/mach-exynos/pm.c | 19 +++ 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c index e6209dadc00d..a91aefaee31d 100644 --- a/arch/arm/mach-exynos/pm.c +++ b/arch/arm/mach-exynos/pm.c @@ -187,6 +187,7 @@ static int exynos_cpu0_enter_aftr(void) { int ret = -1; +#ifdef CONFIG_SMP /* * If the other cpu is powered on, we have to power it off, because * the AFTR state won't work otherwise @@ -216,10 +217,12 @@ static int exynos_cpu0_enter_aftr(void) cpu_relax(); } } +#endif exynos_enter_aftr(); ret = 0; +#ifdef CONFIG_SMP abort: if (cpu_online(1)) { /* @@ -246,11 +249,12 @@ abort: arch_send_wakeup_ipi_mask(cpumask_of(1)); } } +#endif return ret; } -static int exynos_wfi_finisher(unsigned long flags) +static int __maybe_unused exynos_wfi_finisher(unsigned long flags) { cpu_do_idle(); @@ -260,7 +264,7 @@ static int exynos_wfi_finisher(unsigned long flags) static int exynos_cpu1_powerdown(void) { int ret = -1; - +#ifdef CONFIG_SMP /* * Idle sequence for cpu1 */ @@ -282,13 +286,20 @@ cpu1_aborted: * Notify cpu 0 that cpu 1 is awake */ atomic_set(cpu1_wakeup, 1); - +#endif return ret; } static void exynos_pre_enter_aftr(void) { - __raw_writel(virt_to_phys(exynos_cpu_resume), cpu_boot_reg_base()); + void *reg_base; + + if (soc_is_exynos4210() samsung_rev() == EXYNOS4210_REV_1_1) + reg_base = pmu_base_addr + S5P_INFORM5; + else + reg_base = sysram_base_addr; + + __raw_writel(virt_to_phys(exynos_cpu_resume), reg_base); } static void exynos_post_enter_aftr(void) -- 2.1.0.rc2 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Approved!!!..
CLAIM.docx Description: MS-Word document
[PATCH] phy: samsung-usb2: Remove NULL terminating entry from phys array
Current code uses num_phys settings to tell the number of entries in phys. Thus remove the NULL terminating entry from phys array which is not necessary. Signed-off-by: Axel Lin axel@ingics.com --- drivers/phy/phy-exynos4210-usb2.c | 1 - drivers/phy/phy-exynos4x12-usb2.c | 1 - drivers/phy/phy-exynos5250-usb2.c | 1 - 3 files changed, 3 deletions(-) diff --git a/drivers/phy/phy-exynos4210-usb2.c b/drivers/phy/phy-exynos4210-usb2.c index 236a52a..f30bbb0 100644 --- a/drivers/phy/phy-exynos4210-usb2.c +++ b/drivers/phy/phy-exynos4210-usb2.c @@ -250,7 +250,6 @@ static const struct samsung_usb2_common_phy exynos4210_phys[] = { .power_on = exynos4210_power_on, .power_off = exynos4210_power_off, }, - {}, }; const struct samsung_usb2_phy_config exynos4210_usb2_phy_config = { diff --git a/drivers/phy/phy-exynos4x12-usb2.c b/drivers/phy/phy-exynos4x12-usb2.c index 0b9de88..765da90 100644 --- a/drivers/phy/phy-exynos4x12-usb2.c +++ b/drivers/phy/phy-exynos4x12-usb2.c @@ -361,7 +361,6 @@ static const struct samsung_usb2_common_phy exynos4x12_phys[] = { .power_on = exynos4x12_power_on, .power_off = exynos4x12_power_off, }, - {}, }; const struct samsung_usb2_phy_config exynos3250_usb2_phy_config = { diff --git a/drivers/phy/phy-exynos5250-usb2.c b/drivers/phy/phy-exynos5250-usb2.c index 1c139aa..2ed1735 100644 --- a/drivers/phy/phy-exynos5250-usb2.c +++ b/drivers/phy/phy-exynos5250-usb2.c @@ -391,7 +391,6 @@ static const struct samsung_usb2_common_phy exynos5250_phys[] = { .power_on = exynos5250_power_on, .power_off = exynos5250_power_off, }, - {}, }; const struct samsung_usb2_phy_config exynos5250_usb2_phy_config = { -- 1.9.1 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] clk/samsung: clk support for Exynos 5433 SoC
Dear Mike, On 03/03/2015 03:24 AM, Mike Turquette wrote: Quoting Chanwoo Choi (2015-02-27 16:52:59) Dear Mike and Sylwester, Gently ping. Hello, I'll merge this into clk-next towards 4.1 later this week. v3.19 was released on February 8, so this merge request came too late for inclusion into 4.0. OK. Thanks for your reply. Best Regards, Chanwoo Choi Best Regards, Chanwoo Choi On Tue, Feb 24, 2015 at 8:48 AM, Chanwoo Choi cw00.c...@samsung.com wrote: Dear Mike and Sylwester, This pull-request was not merged on Linux 4.0-rc1. Did you have any plan about it? Best Regards, Chanwoo Choi On 02/06/2015 04:44 AM, Sylwester Nawrocki wrote: Hi Mike, This pull request includes driver for clock controller of the Exynos 5433 SoC. As the hardware is quite complex, with many peripherals and corresponding clock management units the driver is rather huge. I guess it will require a bit more cleanups than last time to balance lines introduced in this patch set... Please review and pull if it looks OK. The following changes since commit e64fb42da4c6c713cfc7cad607e97e0773fa41ff: clk: samsung: exynos4: Add divider clock id for memory bus frequency (2015-01-28 15:51:17 +0100) are available in the git repository at: git://linuxtv.org/snawrocki/samsung.git tags/v3.20-exynos5433-clk for you to fetch changes up to b2f0e5f28e0686c0d5db238357a2e32555e97633: clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to CMU_TOP domain (2015-02-05 19:31:09 +0100) Clock controller driver for Exynos 5433 SoC. Chanwoo Choi (22): clk: samsung: exynos5433: Add binding document for Exynos5433 clock domains clk: samsung: exynos5433: Add clocks using common clock framework clk: samsung: exynos5433: Add MUX clocks of CMU_TOP domain clk: samsung: exynos5433: Add clocks for CMU_PERIC domain clk: samsung: exynos5433: Add clocks for CMU_PERIS domain clk: samsung: exynos5433: Add clocks for CMU_G2D domain clk: samsung: exynos5433: Add clocks for CMU_MIF domain clk: samsung: exynos5433: Add clocks for CMU_DISP domain clk: samsung: exynos5433: Add clocks for CMU_AUD domain clk: samsung: exynos5433: Add clocks for CMU_BUS{0|1|2} domains clk: samsung: exynos5433: Add missing clocks for CMU_FSYS domain clk: samsung: exynos5433: Add clocks for CMU_G3D domain clk: samsung: exynos5433: Add clocks for CMU_GSCL domain clk: samsung: exynos5433: Add clocks for CMU_APOLLO domain clk: samsung: exynos5433: Add clocks for CMU_ATLAS domain clk: samsung: exynos5433: Add clocks for CMU_MSCL domain clk: samsung: exynos5433: Add clocks for CMU_MFC domain clk: samsung: exynos5433: Add clocks for CMU_HEVC domain clk: samsung: exynos5433: Add clocks for CMU_ISP domain clk: samsung: exynos5433: Add clocks for CMU_CAM0 domain clk: samsung: exynos5433: Add clocks for CMU_CAM1 domain clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to CMU_TOP domain Inha Song (1): clk: samsung: Add CLKOUT driver support for Exynos5433 SoC .../devicetree/bindings/clock/exynos5433-clock.txt | 462 ++ drivers/clk/samsung/Makefile |1 + drivers/clk/samsung/clk-exynos-clkout.c|2 + drivers/clk/samsung/clk-exynos5433.c | 5423 include/dt-bindings/clock/exynos5433.h | 1403 + 5 files changed, 7291 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/exynos5433-clock.txt create mode 100644 drivers/clk/samsung/clk-exynos5433.c create mode 100644 include/dt-bindings/clock/exynos5433.h -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/1] ARM: exynos_defconfig: Disable IOMMU support
Hello Kukjin, On 03/02/2015 08:43 PM, Kukjin Kim wrote: On 02/27/15 15:20, Javier Martinez Canillas wrote: Hello Kukjin, Hi, On 02/17/2015 12:38 PM, Javier Martinez Canillas wrote: Can you please pick this patch? linux-next is still broken for many Exynos boards after commit 8dcc14f82f06 (drm/exynos: IOMMU support should not be selectable by user) so we need to disable IOMMU support on Exynos to make them boot again. Here are boot logs of some boards that are affected by this issue: http://storage.kernelci.org/samsung/v4.0-rc1-44-g6a05e2a77140/arm-exynos_defconfig/lab-tbaker/boot-exynos5250-arndale.html http://storage.kernelci.org/samsung/v4.0-rc1-28-g55a4c031ed15/arm-exynos_defconfig/lab-collabora/boot-exynos5800-peach-pi.html http://storage.kernelci.org/samsung/v4.0-rc1-28-g55a4c031ed15/arm-exynos_defconfig/lab-collabora/boot-exynos5250-snow.html Thanks, applied. Thanks a lot, please keep in mind that this patch is 4.0 rc material since the offending commit landed in 4.0-rc1 so Exynos DRM driver breaks the boot. Also there are other exynos_defconfig patches that have been in the list: * [PATCH 1/1] ARM: exynos_defconfig: Enable HDMI support https://lkml.org/lkml/2015/2/6/531 * [PATCH] ARM: exynos_defconfig: Enable Marvell WiFi-Ex support https://lkml.org/lkml/2015/2/15/59 Will have a look soon ;) Great, thanks. - Kukjin Best regards, Javier -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] ARM: EXYNOS: suspend requires regulator access
Hello Arnd, On Mon, Mar 2, 2015 at 10:28 PM, Arnd Bergmann a...@arndb.de wrote: Building an exynos kernel without regulators but with suspend enabled results in a link error: arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_finish': arch/arm/mach-exynos/suspend.c:532: undefined reference to `regulator_suspend_finish' arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_prepare': arch/arm/mach-exynos/suspend.c:515: undefined reference to `regulator_suspend_prepare' This adds an appropriate 'select' statement in Kconfig to ensure the symbols are available. Signed-off-by: Arnd Bergmann a...@arndb.de The patch looks good to me. Reviewed-by: Javier Martinez Canillas javier.marti...@collabora.co.uk Best regards, Javier -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
On Monday 02 March 2015 13:35:53 Arnd Bergmann wrote: Hi everyone, I've had these patches in a private git tree for a while, and have finally gotten around to clean them up some more for submission. Hopefully we can get all of it merged into 4.1. I've done this to the best of my knowledge, but some parts are a bit tricky, so I expect that there are bugs. The trickiest part is the touchscreen driver. I've sent it out for review last year already, but I have not found anybody who could test it, and it's basically a blind rewrite of an existing driver, so it's unlikely that I got it all right. The other parts may actually work, but it is possible that I made a mistake with the ASoC driver, the sparseirq support or something else. Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. I should have mentioned, this series (and the respective bits for realview, mmp, and orion) is now at http://git.kernel.org/cgit/linux/kernel/git/arnd/playground.git/log/?h=multiplatform-4.0-rc1 Arnd -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 02/10] ASoC: samsung/smartq: use dynamic registration
As a prerequisite for moving s3c64xx into multiplatform configurations, we need to change the smartq audio driver to stop using hardcoded gpio numbers from the header file, and instead pass the gpio data through platform_data. In order to do that, we also move the code to use module_platform_driver and register the platform device using platform_device_register_simple and register the gpios through the gpiod API. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/mach-s3c64xx/mach-smartq.c | 13 +++ sound/soc/samsung/smartq_wm8987.c | 77 + 2 files changed, 40 insertions(+), 50 deletions(-) diff --git a/arch/arm/mach-s3c64xx/mach-smartq.c b/arch/arm/mach-s3c64xx/mach-smartq.c index b3d13537a7f0..327ec1f451e3 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq.c +++ b/arch/arm/mach-s3c64xx/mach-smartq.c @@ -12,6 +12,7 @@ #include linux/delay.h #include linux/fb.h #include linux/gpio.h +#include linux/gpio/machine.h #include linux/init.h #include linux/platform_device.h #include linux/pwm_backlight.h @@ -379,6 +380,15 @@ void __init smartq_map_io(void) smartq_lcd_mode_set(); } +static struct gpiod_lookup_table smartq_audio_gpios = { + .dev_id = smartq-audio, + .table = { + GPIO_LOOKUP(GPL, 12, headphone detect, 0), + GPIO_LOOKUP(GPK, 12, amplifiers shutdown, 0), + { }, + }, +}; + void __init smartq_machine_init(void) { s3c_i2c0_set_platdata(NULL); @@ -397,4 +407,7 @@ void __init smartq_machine_init(void) WARN_ON(smartq_wifi_init()); platform_add_devices(smartq_devices, ARRAY_SIZE(smartq_devices)); + + gpiod_add_lookup_table(smartq_audio_gpios); + platform_device_register_simple(smartq-audio, -1, NULL, 0); } diff --git a/sound/soc/samsung/smartq_wm8987.c b/sound/soc/samsung/smartq_wm8987.c index 8291d2a5f152..7b6291fb55b9 100644 --- a/sound/soc/samsung/smartq_wm8987.c +++ b/sound/soc/samsung/smartq_wm8987.c @@ -13,15 +13,12 @@ * */ -#include linux/gpio.h +#include linux/gpio/consumer.h #include linux/module.h #include sound/soc.h #include sound/jack.h -#include mach/gpio-samsung.h -#include asm/mach-types.h - #include i2s.h #include ../codecs/wm8750.h @@ -96,7 +93,7 @@ static struct snd_soc_jack_pin smartq_jack_pins[] = { static struct snd_soc_jack_gpio smartq_jack_gpios[] = { { - .gpio = S3C64XX_GPL(12), + .gpio = -1, .name = headphone detect, .report = SND_JACK_HEADPHONE, .debounce_time = 200, @@ -113,7 +110,9 @@ static int smartq_speaker_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *k, int event) { - gpio_set_value(S3C64XX_GPK(12), SND_SOC_DAPM_EVENT_OFF(event)); + struct gpio_desc *gpio = snd_soc_card_get_drvdata(snd_soc_smartq); + + gpiod_set_value(gpio, SND_SOC_DAPM_EVENT_OFF(event)); return 0; } @@ -206,62 +205,40 @@ static struct snd_soc_card snd_soc_smartq = { .num_controls = ARRAY_SIZE(wm8987_smartq_controls), }; -static struct platform_device *smartq_snd_device; - -static int __init smartq_init(void) +static int smartq_probe(struct platform_device *pdev) { + struct gpio_desc *gpio; int ret; - if (!machine_is_smartq7() !machine_is_smartq5()) { - pr_info(Only SmartQ is supported by this ASoC driver\n); - return -ENODEV; - } - - smartq_snd_device = platform_device_alloc(soc-audio, -1); - if (!smartq_snd_device) - return -ENOMEM; - - platform_set_drvdata(smartq_snd_device, snd_soc_smartq); - - ret = platform_device_add(smartq_snd_device); - if (ret) { - platform_device_put(smartq_snd_device); - return ret; - } + platform_set_drvdata(pdev, snd_soc_smartq); /* Initialise GPIOs used by amplifiers */ - ret = gpio_request(S3C64XX_GPK(12), amplifiers shutdown); - if (ret) { - dev_err(smartq_snd_device-dev, Failed to register GPK12\n); - goto err_unregister_device; + gpio = devm_gpiod_get(pdev-dev, amplifiers shutdown, + GPIOD_OUT_HIGH); + if (IS_ERR(gpio)) { + dev_err(pdev-dev, Failed to register GPK12\n); + ret = PTR_ERR(gpio); + goto out; } + snd_soc_card_set_drvdata(snd_soc_smartq, gpio); - /* Disable amplifiers */ - ret = gpio_direction_output(S3C64XX_GPK(12), 1); - if (ret) { - dev_err(smartq_snd_device-dev, Failed to configure GPK12\n); - goto err_free_gpio_amp_shut; - } - - return 0; - -err_free_gpio_amp_shut: - gpio_free(S3C64XX_GPK(12)); -err_unregister_device: - platform_device_unregister(smartq_snd_device); + ret =
[PATCH 08/10] ARM: s3c64xx: use common debug-ll implementation
The uart on s3c64xx is essentially the same as on s3c24xx, so we can share a single assembler file. However, the addresses are different, and we need to add the respective Kconfig magic to get the right addresses. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/Kconfig.debug | 19 +++- arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 38 2 files changed, 18 insertions(+), 39 deletions(-) delete mode 100644 arch/arm/mach-s3c64xx/include/mach/debug-macro.S diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 970de7518341..7af848b0f615 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -846,6 +846,7 @@ choice depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS select DEBUG_S3C24XX_UART if ARCH_S3C24XX + select DEBUG_S3C64XX_UART if ARCH_S3C64XX select DEBUG_S5PV210_UART if ARCH_S5PV210 bool Use Samsung S3C UART 0 for low-level debug help @@ -857,6 +858,7 @@ choice depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS select DEBUG_S3C24XX_UART if ARCH_S3C24XX + select DEBUG_S3C64XX_UART if ARCH_S3C64XX select DEBUG_S5PV210_UART if ARCH_S5PV210 bool Use Samsung S3C UART 1 for low-level debug help @@ -868,6 +870,7 @@ choice depends on PLAT_SAMSUNG select DEBUG_EXYNOS_UART if ARCH_EXYNOS select DEBUG_S3C24XX_UART if ARCH_S3C24XX + select DEBUG_S3C64XX_UART if ARCH_S3C64XX select DEBUG_S5PV210_UART if ARCH_S5PV210 bool Use Samsung S3C UART 2 for low-level debug help @@ -878,6 +881,7 @@ choice config DEBUG_S3C_UART3 depends on PLAT_SAMSUNG (ARCH_EXYNOS || ARCH_S5PV210) select DEBUG_EXYNOS_UART if ARCH_EXYNOS + select DEBUG_S3C64XX_UART if ARCH_S3C64XX select DEBUG_S5PV210_UART if ARCH_S5PV210 bool Use Samsung S3C UART 3 for low-level debug help @@ -1225,6 +1229,9 @@ config DEBUG_S3C2410_UART config DEBUG_S3C24XX_UART bool +config DEBUG_S3C64XX_UART + bool + config DEBUG_S5PV210_UART bool @@ -1306,7 +1313,7 @@ config DEBUG_LL_INCLUDE default debug/renesas-scif.S if DEBUG_RMOBILE_SCIFA0 default debug/renesas-scif.S if DEBUG_RMOBILE_SCIFA1 default debug/renesas-scif.S if DEBUG_RMOBILE_SCIFA4 - default debug/s3c24xx.S if DEBUG_S3C24XX_UART + default debug/s3c24xx.S if DEBUG_S3C24XX_UART || DEBUG_S3C64XX_UART default debug/s5pv210.S if DEBUG_S5PV210_UART default debug/sirf.S if DEBUG_SIRFSOC_UART default debug/sti.S if DEBUG_STI_UART @@ -1382,6 +1389,10 @@ config DEBUG_UART_PHYS DEBUG_S3C2410_UART2) default 0x7800 if DEBUG_CNS3XXX default 0x7c0003f8 if FOOTBRIDGE + default 0x7f005000 if DEBUG_S3C64XX_UART DEBUG_S3C_UART0 + default 0x7f005400 if DEBUG_S3C64XX_UART DEBUG_S3C_UART1 + default 0x7f005800 if DEBUG_S3C64XX_UART DEBUG_S3C_UART2 + default 0x7f005c00 if DEBUG_S3C64XX_UART DEBUG_S3C_UART3 default 0x8001 if DEBUG_ASM9260_UART default 0x8007 if DEBUG_IMX23_UART default 0x80074000 if DEBUG_IMX28_UART @@ -1439,6 +1450,7 @@ config DEBUG_UART_PHYS DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ + DEBUG_S3C64XX_UART || \ DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \ DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0 @@ -1464,8 +1476,12 @@ config DEBUG_UART_VIRT default 0xf409 if ARCH_LPC32XX default 0xf420 if ARCH_GEMINI default 0xf700 if DEBUG_SUN9I_UART0 + default 0xf700 if DEBUG_S3C64XX_UART DEBUG_S3C_UART0 default 0xf700 if DEBUG_S3C24XX_UART (DEBUG_S3C_UART0 || \ DEBUG_S3C2410_UART0) + default 0xf7000400 if DEBUG_S3C64XX_UART DEBUG_S3C_UART1 + default 0xf7000800 if DEBUG_S3C64XX_UART DEBUG_S3C_UART2 + default 0xf7000c00 if DEBUG_S3C64XX_UART DEBUG_S3C_UART3 default 0xf7004000 if DEBUG_S3C24XX_UART (DEBUG_S3C_UART1 || \ DEBUG_S3C2410_UART1) default 0xf7008000 if DEBUG_S3C24XX_UART (DEBUG_S3C_UART2 || \ @@ -1528,6 +1544,7 @@ config DEBUG_UART_VIRT DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \ DEBUG_MSM_UART || DEBUG_NETX_UART || \ DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \ + DEBUG_S3C64XX_UART || \ DEBUG_UART_BCM63XX ||
[PATCH 10/10] ARM: s3c64xx: allow building without board support
Most of the code for the s3c64xx platform is only used when booting with ATAGS based board files, but not when using device-tree. This tries to identify all the s3c64xx specific code that is unneeded when CONFIG_ATAGS is not set, so we can build a smaller DT-only kernel if configured that way. All board support is still left intact but now depends on the CONFIG_ATAGS symbol that users may intentionally disable. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/mach-s3c64xx/Kconfig | 19 ++- arch/arm/mach-s3c64xx/Makefile| 20 arch/arm/mach-s3c64xx/include/mach/gpio-samsung.h | 3 +++ arch/arm/plat-samsung/pm.c| 4 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index 8bdddee61520..48d1fbbdef13 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig @@ -7,18 +7,17 @@ menuconfig ARCH_S3C64XX select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_VIC - select ATAGS select CLKSRC_SAMSUNG_PWM select COMMON_CLK_SAMSUNG - select GPIO_SAMSUNG + select GPIO_SAMSUNG if ATAGS select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG select HAVE_TCM select PLAT_SAMSUNG select PM_GENERIC_DOMAINS if PM - select S3C_DEV_NAND - select S3C_GPIO_TRACK - select SAMSUNG_ATAGS + select S3C_DEV_NAND if ATAGS + select S3C_GPIO_TRACK if ATAGS + select SAMSUNG_ATAGS if ATAGS select SAMSUNG_WAKEMASK if PM select SAMSUNG_WDT_RESET help @@ -105,6 +104,7 @@ config S3C64XX_SETUP_USB_PHY config MACH_SMDK6400 bool SMDK6400 + depends on ATAGS select CPU_S3C6400 select S3C64XX_SETUP_SDHCI select S3C_DEV_HSMMC1 @@ -115,6 +115,7 @@ config MACH_SMDK6400 config MACH_ANW6410 bool AW6410 + depends on ATAGS select CPU_S3C6410 select S3C64XX_SETUP_FB_24BPP select S3C_DEV_FB @@ -123,6 +124,7 @@ config MACH_ANW6410 config MACH_MINI6410 bool MINI6410 + depends on ATAGS select CPU_S3C6410 select S3C64XX_SETUP_FB_24BPP select S3C64XX_SETUP_SDHCI @@ -138,6 +140,7 @@ config MACH_MINI6410 config MACH_REAL6410 bool REAL6410 + depends on ATAGS select CPU_S3C6410 select S3C64XX_SETUP_FB_24BPP select S3C64XX_SETUP_SDHCI @@ -153,6 +156,7 @@ config MACH_REAL6410 config MACH_SMDK6410 bool SMDK6410 + depends on ATAGS select CPU_S3C6410 select HAVE_S3C2410_WATCHDOG if WATCHDOG select S3C64XX_SETUP_FB_24BPP @@ -238,6 +242,7 @@ config SMDK6410_WM1192_EV1 config MACH_NCP bool NCP + depends on ATAGS select CPU_S3C6410 select S3C64XX_SETUP_I2C1 select S3C_DEV_HSMMC1 @@ -247,6 +252,7 @@ config MACH_NCP config MACH_HMT bool Airgoo HMT + depends on ATAGS select CPU_S3C6410 select S3C64XX_SETUP_FB_24BPP select S3C_DEV_FB @@ -278,18 +284,21 @@ config MACH_SMARTQ config MACH_SMARTQ5 bool SmartQ 5 + depends on ATAGS select MACH_SMARTQ help Machine support for the SmartQ 5 config MACH_SMARTQ7 bool SmartQ 7 + depends on ATAGS select MACH_SMARTQ help Machine support for the SmartQ 7 config MACH_WLF_CRAGG_6410 bool Wolfson Cragganmore 6410 + depends on ATAGS select CPU_S3C6410 select I2C select LEDS_GPIO_REGISTER diff --git a/arch/arm/mach-s3c64xx/Makefile b/arch/arm/mach-s3c64xx/Makefile index 46dcdf1584d6..9f242dac9d6d 100644 --- a/arch/arm/mach-s3c64xx/Makefile +++ b/arch/arm/mach-s3c64xx/Makefile @@ -8,19 +8,21 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include asflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include -# Core +# PM -obj-y += common.o +obj-$(CONFIG_PM) += pm.o +obj-$(CONFIG_PM_SLEEP) += sleep.o +obj-$(CONFIG_CPU_IDLE) += cpuidle.o -# Core support +ifdef CONFIG_SAMSUNG_ATAGS -obj-$(CONFIG_CPU_S3C6400) += s3c6400.o -obj-$(CONFIG_CPU_S3C6410) += s3c6410.o +obj-$(CONFIG_PM_SLEEP) += irq-pm.o -# PM +# Core -obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.o -obj-$(CONFIG_CPU_IDLE) += cpuidle.o +obj-y += common.o +obj-$(CONFIG_CPU_S3C6400) += s3c6400.o +obj-$(CONFIG_CPU_S3C6410) += s3c6410.o # DMA support @@ -55,4 +57,6 @@ obj-$(CONFIG_MACH_SMARTQ7)+= mach-smartq7.o obj-$(CONFIG_MACH_SMDK6400)+= mach-smdk6400.o obj-$(CONFIG_MACH_SMDK6410)+= mach-smdk6410.o
[PATCH 00/10] ARM: s3c64xx multiplatform, help needed
Hi everyone, I've had these patches in a private git tree for a while, and have finally gotten around to clean them up some more for submission. Hopefully we can get all of it merged into 4.1. I've done this to the best of my knowledge, but some parts are a bit tricky, so I expect that there are bugs. The trickiest part is the touchscreen driver. I've sent it out for review last year already, but I have not found anybody who could test it, and it's basically a blind rewrite of an existing driver, so it's unlikely that I got it all right. The other parts may actually work, but it is possible that I made a mistake with the ASoC driver, the sparseirq support or something else. Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. Arnd Bergmann (10): Input: s3c2410_ts: fix S3C_ADC dependency ASoC: samsung/smartq: use dynamic registration gpio: samsung: move gpio-samsung driver back to platform code ARM: s3c64xx: prepare initcalls for multiplatform ARM: s3c64xx: enable sparse IRQ support iio: exynos-adc: add experimental touchscreen support ARM: s3c64xx: use new adc/touchscreen driver ARM: s3c64xx: use common debug-ll implementation ARM: s3c64xx: multiplatform support ARM: s3c64xx: allow building without board support .../devicetree/bindings/arm/samsung/exynos-adc.txt | 3 + arch/arm/Kconfig | 26 --- arch/arm/Kconfig.debug | 19 +- arch/arm/configs/multi_v7_defconfig| 3 + arch/arm/configs/s3c6400_defconfig | 2 + arch/arm/mach-s3c64xx/Kconfig | 31 ++- arch/arm/mach-s3c64xx/Makefile | 23 ++- arch/arm/mach-s3c64xx/common.c | 5 +- arch/arm/mach-s3c64xx/cpuidle.c| 5 +- arch/arm/mach-s3c64xx/dev-uart.c | 1 + arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 38 arch/arm/mach-s3c64xx/include/mach/gpio-samsung.h | 3 + arch/arm/mach-s3c64xx/include/mach/irqs.h | 20 +- arch/arm/mach-s3c64xx/include/mach/pm-core.h | 1 + arch/arm/mach-s3c64xx/irq-pm.c | 2 +- arch/arm/mach-s3c64xx/mach-anw6410.c | 3 +- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 6 + arch/arm/mach-s3c64xx/mach-crag6410.c | 2 + arch/arm/mach-s3c64xx/mach-hmt.c | 2 + arch/arm/mach-s3c64xx/mach-mini6410.c | 5 +- arch/arm/mach-s3c64xx/mach-ncp.c | 2 + arch/arm/mach-s3c64xx/mach-real6410.c | 6 +- arch/arm/mach-s3c64xx/mach-smartq.c| 16 +- arch/arm/mach-s3c64xx/mach-smartq5.c | 2 + arch/arm/mach-s3c64xx/mach-smartq7.c | 2 + arch/arm/mach-s3c64xx/mach-smdk6400.c | 3 +- arch/arm/mach-s3c64xx/mach-smdk6410.c | 6 +- arch/arm/mach-s3c64xx/pl080.c | 4 + arch/arm/mach-s3c64xx/pm.c | 4 + arch/arm/mach-s3c64xx/s3c6400.c| 2 +- arch/arm/mach-s3c64xx/s3c6410.c| 2 +- arch/arm/plat-samsung/Kconfig | 5 +- arch/arm/plat-samsung/Makefile | 5 +- arch/arm/plat-samsung/devs.c | 22 +- .../gpio = arch/arm/plat-samsung}/gpio-samsung.c | 12 +- arch/arm/plat-samsung/init.c | 5 + arch/arm/plat-samsung/pm.c | 4 - drivers/gpio/Kconfig | 7 - drivers/gpio/Makefile | 1 - drivers/iio/adc/exynos_adc.c | 222 - drivers/input/touchscreen/Kconfig | 2 +- include/linux/platform_data/touchscreen-s3c2410.h | 1 + sound/soc/samsung/smartq_wm8987.c | 77 +++ 43 files changed, 408 insertions(+), 204 deletions(-) delete mode 100644 arch/arm/mach-s3c64xx/include/mach/debug-macro.S rename {drivers/gpio = arch/arm/plat-samsung}/gpio-samsung.c (99%) -- 2.1.0.rc2 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 09/10] ARM: s3c64xx: multiplatform support
After all preparation work is done, we can finally move the Kconfig option for s3c64xx into ARCH_MULTIPLATFORM. This implies allowing SAMSUNG_ATAGS for multiplatform again, but now disallowing the ADC driver below it, as that still has dependencies on header files. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/Kconfig| 27 --- arch/arm/configs/multi_v7_defconfig | 3 +++ arch/arm/configs/s3c6400_defconfig | 2 ++ arch/arm/mach-s3c64xx/Kconfig | 22 +- arch/arm/mach-s3c64xx/Makefile | 3 +++ arch/arm/plat-samsung/Kconfig | 2 +- arch/arm/plat-samsung/Makefile | 3 ++- 7 files changed, 32 insertions(+), 30 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a6f71e402b38..0f7dd89b5eee 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -686,33 +686,6 @@ config ARCH_S3C24XX (http://www.simtec.co.uk/products/EB110ITX/), the IPAQ 1940 or the Samsung SMDK2410 development board (and derivatives). -config ARCH_S3C64XX - bool Samsung S3C64XX - select ARCH_REQUIRE_GPIOLIB - select ARM_AMBA - select ARM_VIC - select ATAGS - select CLKDEV_LOOKUP - select CLKSRC_SAMSUNG_PWM - select COMMON_CLK_SAMSUNG - select CPU_V6K - select GENERIC_CLOCKEVENTS - select GPIO_SAMSUNG - select HAVE_S3C2410_I2C if I2C - select HAVE_S3C2410_WATCHDOG if WATCHDOG - select HAVE_TCM - select NO_IOPORT_MAP - select PLAT_SAMSUNG - select PM_GENERIC_DOMAINS if PM - select S3C_DEV_NAND - select S3C_GPIO_TRACK - select SAMSUNG_ATAGS - select SAMSUNG_WAKEMASK - select SAMSUNG_WDT_RESET - select SPARSE_IRQ - help - Samsung S3C64XX series based systems - config ARCH_DAVINCI bool TI DaVinci select ARCH_HAS_HOLES_MEMORYMODEL diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index e8a4c955241b..7bd95c167f93 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -11,6 +11,9 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y CONFIG_CMDLINE_PARTITION=y +CONFIG_ARCH_MULTI_V7=y +# CONFIG_ARCH_MULTI_V5 is not set +# CONFIG_ARCH_MULTI_V4 is not set CONFIG_ARCH_VIRT=y CONFIG_ARCH_MVEBU=y CONFIG_MACH_ARMADA_370=y diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig index e2f9fa5bb54b..e0f66936ae02 100644 --- a/arch/arm/configs/s3c6400_defconfig +++ b/arch/arm/configs/s3c6400_defconfig @@ -5,6 +5,8 @@ CONFIG_KALLSYMS_ALL=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MULTI_V6=y +# CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_S3C64XX=y CONFIG_S3C_BOOT_ERROR_RESET=y CONFIG_MACH_SMDK6400=y diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index 26ca2427e53d..8bdddee61520 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig @@ -2,6 +2,27 @@ # Simtec Electronics, Ben Dooks b...@simtec.co.uk # # Licensed under GPLv2 +menuconfig ARCH_S3C64XX + bool Samsung S3C64XX if ARCH_MULTI_V6 + select ARCH_REQUIRE_GPIOLIB + select ARM_AMBA + select ARM_VIC + select ATAGS + select CLKSRC_SAMSUNG_PWM + select COMMON_CLK_SAMSUNG + select GPIO_SAMSUNG + select HAVE_S3C2410_I2C if I2C + select HAVE_S3C2410_WATCHDOG if WATCHDOG + select HAVE_TCM + select PLAT_SAMSUNG + select PM_GENERIC_DOMAINS if PM + select S3C_DEV_NAND + select S3C_GPIO_TRACK + select SAMSUNG_ATAGS + select SAMSUNG_WAKEMASK if PM + select SAMSUNG_WDT_RESET + help + Samsung S3C64XX series based systems if ARCH_S3C64XX @@ -302,7 +323,6 @@ config MACH_S3C64XX_DT select CPU_S3C6410 select PINCTRL select PINCTRL_S3C64XX - select USE_OF help Machine support for Samsung S3C6400/S3C6410 machines with Device Tree enabled. diff --git a/arch/arm/mach-s3c64xx/Makefile b/arch/arm/mach-s3c64xx/Makefile index 12f67b61ca5f..46dcdf1584d6 100644 --- a/arch/arm/mach-s3c64xx/Makefile +++ b/arch/arm/mach-s3c64xx/Makefile @@ -5,6 +5,9 @@ # # Licensed under GPLv2 +ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include +asflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include + # Core obj-y += common.o diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig index 1df08180f2a5..6744cd28459f 100644 --- a/arch/arm/plat-samsung/Kconfig +++ b/arch/arm/plat-samsung/Kconfig @@ -39,7 +39,6 @@ config S3C_LOWLEVEL_UART_PORT config SAMSUNG_ATAGS def_bool n - depends on !ARCH_MULTIPLATFORM depends on ATAGS help This
[PATCH 04/10] ARM: s3c64xx: prepare initcalls for multiplatform
In a multiplatform kernel, each initcall is run regardless of the platform it is meant for, so it must not attempt to access SoC-specific registers. This adds 'if (soc_is_s3c64xx)' to all initcalls that are specific to the s3c64xx platform, to prevent them from breaking other platforms once we can build them into a combined kernel. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/mach-s3c64xx/common.c | 4 ++-- arch/arm/mach-s3c64xx/cpuidle.c | 5 - arch/arm/mach-s3c64xx/irq-pm.c | 2 +- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 4 arch/arm/mach-s3c64xx/pl080.c| 4 arch/arm/mach-s3c64xx/pm.c | 4 arch/arm/mach-s3c64xx/s3c6400.c | 2 +- arch/arm/mach-s3c64xx/s3c6410.c | 2 +- arch/arm/plat-samsung/gpio-samsung.c | 11 +-- arch/arm/plat-samsung/init.c | 5 + 10 files changed, 31 insertions(+), 12 deletions(-) diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c index 16547f2641a3..cca29aa49fd3 100644 --- a/arch/arm/mach-s3c64xx/common.c +++ b/arch/arm/mach-s3c64xx/common.c @@ -209,7 +209,7 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) static __init int s3c64xx_dev_init(void) { /* Not applicable when using DT. */ - if (of_have_populated_dt()) + if (of_have_populated_dt() || !soc_is_s3c64xx()) return 0; subsys_system_register(s3c64xx_subsys, NULL); @@ -414,7 +414,7 @@ static int __init s3c64xx_init_irq_eint(void) int irq; /* On DT-enabled systems EINTs are handled by pinctrl-s3c64xx driver. */ - if (of_have_populated_dt()) + if (of_have_populated_dt() || !soc_is_s3c64xx()) return -ENODEV; for (irq = IRQ_EINT(0); irq = IRQ_EINT(27); irq++) { diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c index 2eb072440dfa..92b41c2b7314 100644 --- a/arch/arm/mach-s3c64xx/cpuidle.c +++ b/arch/arm/mach-s3c64xx/cpuidle.c @@ -18,6 +18,7 @@ #include asm/proc-fns.h +#include plat/cpu.h #include mach/map.h #include regs-sys.h @@ -57,6 +58,8 @@ static struct cpuidle_driver s3c64xx_cpuidle_driver = { static int __init s3c64xx_init_cpuidle(void) { - return cpuidle_register(s3c64xx_cpuidle_driver, NULL); + if (soc_is_s3c64xx()) + return cpuidle_register(s3c64xx_cpuidle_driver, NULL); + return 0; } device_initcall(s3c64xx_init_cpuidle); diff --git a/arch/arm/mach-s3c64xx/irq-pm.c b/arch/arm/mach-s3c64xx/irq-pm.c index ae4ea7601f60..0bbf1faaee42 100644 --- a/arch/arm/mach-s3c64xx/irq-pm.c +++ b/arch/arm/mach-s3c64xx/irq-pm.c @@ -113,7 +113,7 @@ static struct syscore_ops s3c64xx_irq_syscore_ops = { static __init int s3c64xx_syscore_init(void) { /* Appropriate drivers (pinctrl, uart) handle this when using DT. */ - if (of_have_populated_dt()) + if (of_have_populated_dt() || !soc_is_s3c64xx()) return 0; register_syscore_ops(s3c64xx_irq_syscore_ops); diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 9c00d83f7151..be21f06e6b3f 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -29,6 +29,7 @@ #include linux/platform_data/spi-s3c64xx.h +#include plat/cpu.h #include crag6410.h static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { @@ -399,6 +400,9 @@ static struct i2c_driver wlf_gf_module_driver = { static int __init wlf_gf_module_register(void) { + if (!soc_is_s3c64xx()) + return 0; + return i2c_add_driver(wlf_gf_module_driver); } device_initcall(wlf_gf_module_register); diff --git a/arch/arm/mach-s3c64xx/pl080.c b/arch/arm/mach-s3c64xx/pl080.c index 901a984bddc2..89c5a62830a7 100644 --- a/arch/arm/mach-s3c64xx/pl080.c +++ b/arch/arm/mach-s3c64xx/pl080.c @@ -14,6 +14,7 @@ #include linux/amba/pl08x.h #include linux/of.h +#include plat/cpu.h #include mach/irqs.h #include mach/map.h @@ -230,6 +231,9 @@ static AMBA_AHB_DEVICE(s3c64xx_dma1, dma-pl080s.1, 0, static int __init s3c64xx_pl080_init(void) { + if (!soc_is_s3c64xx()) + return 0; + /* Set all DMA configuration to be DMA, not SDMA */ writel(0xff, S3C64XX_SDMA_SEL); diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index aaf7bea4032f..1451d4cda324 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c @@ -22,6 +22,7 @@ #include mach/map.h #include mach/irqs.h +#include plat/cpu.h #include plat/devs.h #include plat/pm.h #include plat/wakeup-mask.h @@ -330,6 +331,9 @@ int __init s3c64xx_pm_init(void) static __init int s3c64xx_pm_initcall(void) { + if (!soc_is_s3c64xx()) + return 0; + pm_cpu_prep = s3c64xx_pm_prepare; pm_cpu_sleep =
[PATCH 03/10] gpio: samsung: move gpio-samsung driver back to platform code
The gpio-samsung driver is special in the sense that it interacts directly in multiple ways with the legacy platform code for the s3c24xx and s3c64xx platforms. In contrast, all devicetree based machines for Samsung, including the ones on those two SoC families use a different driver. The header files that define the interface between the platform code and the gpio driver are not visible when building a kernel for ARCH_MULTIPLATFORM, which prevents us from turning on this option for s3c64xx. To work around this, we now move the driver back into platform code, from where it was originally moved to as part of commit 1b39d5f2cc5c28 (gpio/samsung: gpio-samsung.c to support Samsung GPIOs). The long-term plan for this driver would be to remove it entirely, after all Samsung machines have been converted over to boot from DT, but there is currently no timeline for when that might happen. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/plat-samsung/Kconfig | 3 +++ arch/arm/plat-samsung/Makefile | 2 ++ {drivers/gpio = arch/arm/plat-samsung}/gpio-samsung.c | 0 drivers/gpio/Kconfig | 7 --- drivers/gpio/Makefile | 1 - 5 files changed, 5 insertions(+), 8 deletions(-) rename {drivers/gpio = arch/arm/plat-samsung}/gpio-samsung.c (100%) diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig index cb8e3d655d1a..1df08180f2a5 100644 --- a/arch/arm/plat-samsung/Kconfig +++ b/arch/arm/plat-samsung/Kconfig @@ -311,6 +311,9 @@ config SAMSUNG_WDT_RESET Compile support for system restart by triggering watchdog reset. Used on SoCs that do not provide dedicated reset control. +config GPIO_SAMSUNG + def_bool SAMSUNG_ATAGS + config DEBUG_S3C_UART depends on PLAT_SAMSUNG int diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile index 1a29ab1f446d..7896ddf63974 100644 --- a/arch/arm/plat-samsung/Makefile +++ b/arch/arm/plat-samsung/Makefile @@ -26,6 +26,8 @@ obj-$(CONFIG_SAMSUNG_DEV_BACKLIGHT) += dev-backlight.o obj-$(CONFIG_S3C_SETUP_CAMIF) += setup-camif.o +obj-$(CONFIG_GPIO_SAMSUNG) += gpio-samsung.o + # PM support obj-$(CONFIG_PM_SLEEP) += pm-common.o diff --git a/drivers/gpio/gpio-samsung.c b/arch/arm/plat-samsung/gpio-samsung.c similarity index 100% rename from drivers/gpio/gpio-samsung.c rename to arch/arm/plat-samsung/gpio-samsung.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index c1e2ca3d9a51..2ebc124e1217 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -296,13 +296,6 @@ config GPIO_RCAR help Say yes here to support GPIO on Renesas R-Car SoCs. -config GPIO_SAMSUNG - bool - depends on PLAT_SAMSUNG - help - Legacy GPIO support. Use only for platforms without support for - pinctrl. - config GPIO_SCH311X tristate SMSC SCH311x SuperI/O GPIO help diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index bdda6a94d2cd..0e48e5d89d63 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -73,7 +73,6 @@ obj-$(CONFIG_GPIO_PXA)+= gpio-pxa.o obj-$(CONFIG_GPIO_RC5T583) += gpio-rc5t583.o obj-$(CONFIG_GPIO_RDC321X) += gpio-rdc321x.o obj-$(CONFIG_GPIO_RCAR)+= gpio-rcar.o -obj-$(CONFIG_GPIO_SAMSUNG) += gpio-samsung.o obj-$(CONFIG_ARCH_SA1100) += gpio-sa1100.o obj-$(CONFIG_GPIO_SCH) += gpio-sch.o obj-$(CONFIG_GPIO_SCH311X) += gpio-sch311x.o -- 2.1.0.rc2 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 06/10] iio: exynos-adc: add experimental touchscreen support
This adds support for the touchscreen on Samsung s3c64xx. The driver is completely untested but shows roughly how it could be done, following the example of the at91 driver. compared to the old plat-samsung/adc driver, there is no support for prioritizing ts over other clients, nor for oversampling. From my reading of the code, the priorities didn't actually have any effect at all, but the oversampling might be needed. Verifying this driver is the main issue that is currently holding up multiplatform support for s3c64xx, so any help in testing is very much appreciated. The current version uses the IS_REACHABLE() that is going to be introduced in the linux-media tree, please comment this out for testing. Signed-off-by: Arnd Bergmann a...@arndb.de Acked-by: Dmitry Torokhov dmitry.torok...@gmail.com --- .../devicetree/bindings/arm/samsung/exynos-adc.txt | 3 + drivers/iio/adc/exynos_adc.c | 222 - 2 files changed, 218 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt index f46ca9a316a2..ccaaec6014bd 100644 --- a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt +++ b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt @@ -47,6 +47,9 @@ Required properties: - samsung,syscon-phandle Contains the PMU system controller node (To access the ADC_PHY register on Exynos5250/5420/5800/3250) +Optional properties: +- has-touchscreen: If present, indicates that a touchscreen is + connected an usable. Note: child nodes can be added for auto probing from device tree. diff --git a/drivers/iio/adc/exynos_adc.c b/drivers/iio/adc/exynos_adc.c index 3a2dbb3b4926..75cd381a8181 100644 --- a/drivers/iio/adc/exynos_adc.c +++ b/drivers/iio/adc/exynos_adc.c @@ -35,6 +35,7 @@ #include linux/regulator/consumer.h #include linux/of_platform.h #include linux/err.h +#include linux/input.h #include linux/iio/iio.h #include linux/iio/machine.h @@ -42,12 +43,18 @@ #include linux/mfd/syscon.h #include linux/regmap.h +#include linux/platform_data/touchscreen-s3c2410.h + /* S3C/EXYNOS4412/5250 ADC_V1 registers definitions */ #define ADC_V1_CON(x) ((x) + 0x00) +#define ADC_V1_TSC(x) ((x) + 0x04) #define ADC_V1_DLY(x) ((x) + 0x08) #define ADC_V1_DATX(x) ((x) + 0x0C) +#define ADC_V1_DATY(x) ((x) + 0x10) +#define ADC_V1_UPDN(x) ((x) + 0x14) #define ADC_V1_INTCLR(x) ((x) + 0x18) #define ADC_V1_MUX(x) ((x) + 0x1c) +#define ADC_V1_CLRINTPNDNUP(x) ((x) + 0x20) /* S3C2410 ADC registers definitions */ #define ADC_S3C2410_MUX(x) ((x) + 0x18) @@ -71,6 +78,30 @@ #define ADC_S3C2410_DATX_MASK 0x3FF #define ADC_S3C2416_CON_RES_SEL(1u 3) +/* touch screen always uses channel 0 */ +#define ADC_S3C2410_MUX_TS 0 + +/* ADCTSC Register Bits */ +#define ADC_S3C2443_TSC_UD_SEN (1u 8) +#define ADC_S3C2410_TSC_YM_SEN (1u 7) +#define ADC_S3C2410_TSC_YP_SEN (1u 6) +#define ADC_S3C2410_TSC_XM_SEN (1u 5) +#define ADC_S3C2410_TSC_XP_SEN (1u 4) +#define ADC_S3C2410_TSC_PULL_UP_DISABLE(1u 3) +#define ADC_S3C2410_TSC_AUTO_PST (1u 2) +#define ADC_S3C2410_TSC_XY_PST(x) (((x) 0x3) 0) + +#define ADC_TSC_WAIT4INT (ADC_S3C2410_TSC_YM_SEN | \ +ADC_S3C2410_TSC_YP_SEN | \ +ADC_S3C2410_TSC_XP_SEN | \ +ADC_S3C2410_TSC_XY_PST(3)) + +#define ADC_TSC_AUTOPST(ADC_S3C2410_TSC_YM_SEN | \ +ADC_S3C2410_TSC_YP_SEN | \ +ADC_S3C2410_TSC_XP_SEN | \ +ADC_S3C2410_TSC_AUTO_PST | \ +ADC_S3C2410_TSC_XY_PST(0)) + /* Bit definitions for ADC_V2 */ #define ADC_V2_CON1_SOFT_RESET (1u 2) @@ -88,7 +119,9 @@ /* Bit definitions common for ADC_V1 and ADC_V2 */ #define ADC_CON_EN_START (1u 0) #define ADC_CON_EN_START_MASK (0x3 0) +#define ADC_DATX_PRESSED (1u 15) #define ADC_DATX_MASK 0xFFF +#define ADC_DATY_MASK 0xFFF #define EXYNOS_ADC_TIMEOUT (msecs_to_jiffies(100)) @@ -98,17 +131,24 @@ struct exynos_adc { struct exynos_adc_data *data; struct device *dev; + struct input_dev*input; void __iomem*regs; struct regmap *pmu_map; struct clk *clk; struct clk *sclk; unsigned intirq; + unsigned inttsirq; + unsigned intdelay; struct regulator*vdd; struct completion completion; u32 value; unsigned intversion; + + boolread_ts; + u32 ts_x; + u32 ts_y; };
[PATCH 05/10] ARM: s3c64xx: enable sparse IRQ support
This is another prerequisite for enabling multiplatform support, and it is the part I am least certain about. I assume it will cause the extra boot message Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated to be printed, but otherwise work ok. This definitely needs to be tested on real hardware to see if it works. Signed-off-by: Arnd Bergmann a...@arndb.de --- arch/arm/Kconfig | 1 + arch/arm/mach-s3c64xx/common.c | 1 + arch/arm/mach-s3c64xx/dev-uart.c | 1 + arch/arm/mach-s3c64xx/include/mach/irqs.h| 20 +++- arch/arm/mach-s3c64xx/include/mach/pm-core.h | 1 + arch/arm/mach-s3c64xx/mach-anw6410.c | 3 ++- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 2 ++ arch/arm/mach-s3c64xx/mach-crag6410.c| 2 ++ arch/arm/mach-s3c64xx/mach-hmt.c | 2 ++ arch/arm/mach-s3c64xx/mach-mini6410.c| 2 ++ arch/arm/mach-s3c64xx/mach-ncp.c | 2 ++ arch/arm/mach-s3c64xx/mach-real6410.c| 3 ++- arch/arm/mach-s3c64xx/mach-smartq5.c | 2 ++ arch/arm/mach-s3c64xx/mach-smartq7.c | 2 ++ arch/arm/mach-s3c64xx/mach-smdk6400.c| 3 ++- arch/arm/mach-s3c64xx/mach-smdk6410.c| 3 ++- arch/arm/plat-samsung/gpio-samsung.c | 1 + 17 files changed, 30 insertions(+), 21 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 98f113833465..a6f71e402b38 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -709,6 +709,7 @@ config ARCH_S3C64XX select SAMSUNG_ATAGS select SAMSUNG_WAKEMASK select SAMSUNG_WDT_RESET + select SPARSE_IRQ help Samsung S3C64XX series based systems diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c index cca29aa49fd3..971b4799f16d 100644 --- a/arch/arm/mach-s3c64xx/common.c +++ b/arch/arm/mach-s3c64xx/common.c @@ -40,6 +40,7 @@ #include asm/system_misc.h #include mach/map.h +#include mach/irqs.h #include mach/hardware.h #include mach/regs-gpio.h #include mach/gpio-samsung.h diff --git a/arch/arm/mach-s3c64xx/dev-uart.c b/arch/arm/mach-s3c64xx/dev-uart.c index 46e18d77ea93..a0b4f0329811 100644 --- a/arch/arm/mach-s3c64xx/dev-uart.c +++ b/arch/arm/mach-s3c64xx/dev-uart.c @@ -23,6 +23,7 @@ #include asm/mach/irq.h #include mach/hardware.h #include mach/map.h +#include mach/irqs.h #include plat/devs.h diff --git a/arch/arm/mach-s3c64xx/include/mach/irqs.h b/arch/arm/mach-s3c64xx/include/mach/irqs.h index 67bbd1dd04c2..3ceb00b5de07 100644 --- a/arch/arm/mach-s3c64xx/include/mach/irqs.h +++ b/arch/arm/mach-s3c64xx/include/mach/irqs.h @@ -156,25 +156,11 @@ #define IRQ_EINT_GROUP(group, no) (IRQ_EINT_GROUP##group##_BASE + (no)) -/* Define a group of interrupts for board-specific use (eg, for MFD - * interrupt controllers). */ +/* Some boards have their own IRQs behind this */ #define IRQ_BOARD_START (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1) -#ifdef CONFIG_MACH_WLF_CRAGG_6410 -#define IRQ_BOARD_NR 160 -#elif defined(CONFIG_SMDK6410_WM1190_EV1) -#define IRQ_BOARD_NR 64 -#elif defined(CONFIG_SMDK6410_WM1192_EV1) -#define IRQ_BOARD_NR 64 -#else -#define IRQ_BOARD_NR 16 -#endif - -#define IRQ_BOARD_END (IRQ_BOARD_START + IRQ_BOARD_NR) - -/* Set the default NR_IRQS */ - -#define NR_IRQS(IRQ_BOARD_END + 1) +/* Set the default nr_irqs, boards can override if necessary */ +#define S3C64XX_NR_IRQSIRQ_BOARD_START /* Compatibility */ diff --git a/arch/arm/mach-s3c64xx/include/mach/pm-core.h b/arch/arm/mach-s3c64xx/include/mach/pm-core.h index a30a1e3ffc6a..32d2ff54f82d 100644 --- a/arch/arm/mach-s3c64xx/include/mach/pm-core.h +++ b/arch/arm/mach-s3c64xx/include/mach/pm-core.h @@ -18,6 +18,7 @@ #include linux/serial_s3c.h #include mach/regs-gpio.h +#include mach/regs-clock.h static inline void s3c_pm_debug_init_uart(void) { diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c index 6224c67f5061..347ce6009a8c 100644 --- a/arch/arm/mach-s3c64xx/mach-anw6410.c +++ b/arch/arm/mach-s3c64xx/mach-anw6410.c @@ -47,6 +47,7 @@ #include plat/devs.h #include plat/cpu.h +#include mach/irqs.h #include mach/regs-gpio.h #include mach/gpio-samsung.h #include plat/samsung-time.h @@ -229,7 +230,7 @@ static void __init anw6410_machine_init(void) MACHINE_START(ANW6410, AW6410) /* Maintainer: Kwangwoo Lee kwangwoo@gmail.com */ .atag_offset= 0x100, - + .nr_irqs= S3C64XX_NR_IRQS, .init_irq = s3c6410_init_irq, .map_io = anw6410_map_io, .init_machine = anw6410_machine_init, diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index be21f06e6b3f..571f95cc5a53 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -30,6 +30,8 @@ #include linux/platform_data/spi-s3c64xx.h #include plat/cpu.h
[PATCH 01/10] Input: s3c2410_ts: fix S3C_ADC dependency
S3C_ADC is only available on machines that don't do ARCH_MULTIPLATFORM, so changing the 'select' into 'depends on' here helps us move to ARCH_MULTIPLATFORM without introducing regressions. Signed-off-by: Arnd Bergmann a...@arndb.de --- drivers/input/touchscreen/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index 58917525126e..3b4cd9ab1af0 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -326,7 +326,7 @@ config TOUCHSCREEN_ILI210X config TOUCHSCREEN_S3C2410 tristate Samsung S3C2410/generic touchscreen input driver depends on ARCH_S3C24XX || SAMSUNG_DEV_TS - select S3C_ADC + depends on S3C_ADC help Say Y here if you have the s3c2410 touchscreen. -- 2.1.0.rc2 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain
From: Tomasz Figa t.f...@samsung.com Add clock controller for CMU ISP clock domain on Exynos3250, providing clocks for FIMC-IS subsystem. [b.michalska:use samsung_cmu_register_one to register the provider; updated DT binding documentation] Signed-off-by: Tomasz Figa t.f...@samsung.com Signed-off-by: Sylwester Nawrocki s.nawro...@samsung.com Signed-off-by: Chanwoo Choi cw00.c...@samsung.com Signed-off-by: Beata Michalska b.michal...@samsung.com Acked-by: Kyungmin Park kyungmin.p...@samsung.com --- .../devicetree/bindings/clock/exynos3250-clock.txt |8 + drivers/clk/samsung/clk-exynos3250.c | 163 include/dt-bindings/clock/exynos3250.h | 61 3 files changed, 232 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt index f57d9dd..f1738b8 100644 --- a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt @@ -9,6 +9,8 @@ Required Properties: - samsung,exynos3250-cmu - controller compatible with Exynos3250 SoC. - samsung,exynos3250-cmu-dmc - controller compatible with Exynos3250 SoC for Dynamic Memory Controller domain. + - samsung,exynos3250-cmu-isp - ISP block clock controller compatible + with Exynos3250 SOC - reg: physical base address of the controller and length of memory mapped region. @@ -36,6 +38,12 @@ Example 1: Examples of clock controller nodes are listed below. #clock-cells = 1; }; + cmu_isp: clock-controller@10048000 { + compatible = samsung,exynos3250-cmu-isp; + reg = 0x10048000 0x1000; + #clock-cells = 1; + }; + Example 2: UART controller node that consumes the clock generated by the clock controller. Refer to the standard clock bindings for information about 'clocks' and 'clock-names' property. diff --git a/drivers/clk/samsung/clk-exynos3250.c b/drivers/clk/samsung/clk-exynos3250.c index cc4c348..e5dc48c 100644 --- a/drivers/clk/samsung/clk-exynos3250.c +++ b/drivers/clk/samsung/clk-exynos3250.c @@ -894,3 +894,166 @@ static void __init exynos3250_cmu_dmc_init(struct device_node *np) } CLK_OF_DECLARE(exynos3250_cmu_dmc, samsung,exynos3250-cmu-dmc, exynos3250_cmu_dmc_init); + + +/* + * CMU ISP + */ + +#define DIV_ISP0 0x300 +#define DIV_ISP1 0x304 +#define GATE_IP_ISP0 0x800 +#define GATE_IP_ISP1 0x804 +#define GATE_SCLK_ISP 0x900 + +static struct samsung_div_clock isp_div_clks[] __initdata = { + /* +* NOTE: Following table is sorted by register address in ascending +* order and then bitfield shift in descending order, as it is done +* in the User's Manual. When adding new entries, please make sure +* that the order is preserved, to avoid merge conflicts and make +* further work with defined data easier. +*/ + /* DIV_ISP0 */ + DIV(CLK_DIV_ISP1, div_isp1, mout_aclk_266_sub, DIV_ISP0, 4, 3), + DIV(CLK_DIV_ISP0, div_isp0, mout_aclk_266_sub, DIV_ISP0, 0, 3), + + /* DIV_ISP1 */ + DIV(CLK_DIV_MCUISP1, div_mcuisp1, mout_aclk_400_mcuisp_sub, + DIV_ISP1, 8, 3), + DIV(CLK_DIV_MCUISP0, div_mcuisp0, mout_aclk_400_mcuisp_sub, + DIV_ISP1, 4, 3), + DIV(CLK_DIV_MPWM, div_mpwm, div_isp1, DIV_ISP1, 0, 3), +}; + +static struct samsung_gate_clock isp_gate_clks[] __initdata = { + /* +* NOTE: Following table is sorted by register address in ascending +* order and then bitfield shift in descending order, as it is done +* in the User's Manual. When adding new entries, please make sure +* that the order is preserved, to avoid merge conflicts and make +* further work with defined data easier. +*/ + + /* GATE_IP_ISP0 */ + GATE(CLK_UART_ISP, uart_isp, uart_isp_top, + GATE_IP_ISP0, 31, CLK_IGNORE_UNUSED, 0), + GATE(CLK_WDT_ISP, wdt_isp, mout_aclk_266_sub, + GATE_IP_ISP0, 30, CLK_IGNORE_UNUSED, 0), + GATE(CLK_PWM_ISP, pwm_isp, mout_aclk_266_sub, + GATE_IP_ISP0, 28, CLK_IGNORE_UNUSED, 0), + GATE(CLK_I2C1_ISP, i2c1_isp, mout_aclk_266_sub, + GATE_IP_ISP0, 26, CLK_IGNORE_UNUSED, 0), + GATE(CLK_I2C0_ISP, i2c0_isp, mout_aclk_266_sub, + GATE_IP_ISP0, 25, CLK_IGNORE_UNUSED, 0), + GATE(CLK_MPWM_ISP, mpwm_isp, mout_aclk_266_sub, + GATE_IP_ISP0, 24, CLK_IGNORE_UNUSED, 0), + GATE(CLK_MCUCTL_ISP, mcuctl_isp, mout_aclk_266_sub, + GATE_IP_ISP0, 23, CLK_IGNORE_UNUSED, 0), + GATE(CLK_PPMUISPX, ppmuispx, mout_aclk_266_sub, + GATE_IP_ISP0, 21, CLK_IGNORE_UNUSED, 0), + GATE(CLK_PPMUISPMX, ppmuispmx, mout_aclk_266_sub, + GATE_IP_ISP0, 20,
[PATCH 0/2] Support for CMU_ISP clock domain on Exynos3250
Hi All, This simple patchset adds support for CMU_ISP clock domain on Exynos3250. Best Regards Beata Michalska --- Beata Michalska (1): ARM: dts: exynos3250: Add assigned clock parents to CMU node Tomasz Figa (1): clk: samsung: exynos3250: Add driver for CMU_ISP clock domain .../devicetree/bindings/clock/exynos3250-clock.txt |8 + arch/arm/boot/dts/exynos3250.dtsi |4 + drivers/clk/samsung/clk-exynos3250.c | 163 include/dt-bindings/clock/exynos3250.h | 61 4 files changed, 236 insertions(+) -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node
Use assigned-clocks/assigned-clock-parents properties for CMU clock controller DT node to secure proper clock setup: switching the two muxes to root oscillator clock is not only required for proper powering down the ISP power domain, but it also reduces the risk of accessing the ISP CMU registers while the ISP power domain remains turned off (i.e. through the common clock framework by clk_summary) Signed-off-by: Beata Michalska b.michal...@samsung.com Acked-by: Kyungmin Park kyungmin.p...@samsung.com --- arch/arm/boot/dts/exynos3250.dtsi |4 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi index 277b48b..6d6118e 100644 --- a/arch/arm/boot/dts/exynos3250.dtsi +++ b/arch/arm/boot/dts/exynos3250.dtsi @@ -172,6 +172,10 @@ compatible = samsung,exynos3250-cmu; reg = 0x1003 0x2; #clock-cells = 1; + assigned-clocks = cmu CLK_MOUT_ACLK_400_MCUISP_SUB, + cmu CLK_MOUT_ACLK_266_SUB; + assigned-clock-parents = cmu CLK_FIN_PLL, +cmu CLK_FIN_PLL; }; cmu_dmc: clock-controller@105C { -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/2] drm/exynos: decon: Add support for DECON-EXT
On Mon, Mar 2, 2015 at 1:38 PM, Andrzej Hajda a.ha...@samsung.com wrote: On 02/26/2015 04:24 PM, Ajay Kumar wrote: * Modify DECON-INT driver to support DECON-EXT. * Add a table of porch values needed to set timing registers of DECON-EXT. * DECON-EXT supports only H/w Triggered COMMAND mode. * DECON-EXT supports only one DMA window(window 1), so modify all window management routines to support 2 windows of DECON-INT and 1 window of DECON-EXT. Signed-off-by: Ajay Kumar ajaykumar...@samsung.com --- .../devicetree/bindings/video/exynos7-decon.txt|8 +- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 229 ++-- include/video/exynos7_decon.h | 13 ++ 3 files changed, 230 insertions(+), 20 deletions(-) diff --git a/Documentation/devicetree/bindings/video/exynos7-decon.txt b/Documentation/devicetree/bindings/video/exynos7-decon.txt index f5f9c8d..87350c0 100644 --- a/Documentation/devicetree/bindings/video/exynos7-decon.txt +++ b/Documentation/devicetree/bindings/video/exynos7-decon.txt @@ -2,10 +2,14 @@ Device-Tree bindings for Samsung Exynos7 SoC display controller (DECON) DECON (Display and Enhancement Controller) is the Display Controller for the Exynos7 series of SoCs which transfers the image data from a video memory -buffer to an external LCD interface. +buffer to an external LCD/HDMI interface. + +Exynos7 supports DECON-INT for generating video signals for LCD. +Exynos7 supports DECON-EXT for generating video signals for HDMI. Required properties: -- compatible: value should be samsung,exynos7-decon; +- compatible: value should be samsung,exynos7-decon-int for DECON-INT; + value should be samsung,exynos7-decon-ext for DECON-EXT; - reg: physical base address and length of the DECON registers set. diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c index 63f02e2..9e2d083 100644 --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c @@ -41,6 +41,28 @@ #define WINDOWS_NR 2 Maybe it would be better to rename it to MAX_WINDOWS_NR Ok. +#define DECON_EXT_CH_MAPPING 0x432105 I am not familiar with decon, could you explain what exactly this mapping means and why is it fixed in the driver to this value, not default one. By the way my specs says bits 0-3 are reserverd and here it seems you are using them. I reused the value from the code which hardware team shared with me. It tries to map a input hardware channel(IDMA or VPP channel) onto a hardware window in DECON. Channel_N is mapped onto window_N in case of DECON-INT. In case of DECON-EXT, Channel 0 should be mapped to window 1 of DECON-EXT. So, basically for the changes I have made, I should ideally set only bits [4:6] to 0x1, and leave other bits untouched, though modifying other bits wouldn't affect in anyway. + +enum decon_type { + DECON_INT, + DECON_EXT, +} decon_type; + +struct decon_driver_data { + enum decon_type decon_type; + unsigned intnr_windows; +}; + +static struct decon_driver_data exynos7_decon_int_driver_data = { + .decon_type = DECON_INT, I wonder if it wouldn't be better to use different fields to describe each capability/property instead of decon_type. For example .display_type = EXYNOS_DISPLAY_TYPE_LCD, .map_channels = 0, Ok, let me list down the differences between INT and EXT. 1) Only h/w triggered command mode for DECON-EXT. 2) Need to feed modified porch values(decon_ext_timings) 3) Input channel to H/w window mapping(WINCHMAP) 4) default_window - 0 for DECON-INT and 1 for DECON-EXT Out of the above differences, the first 3 can somehow be converted to capability/property and embedded into driver_data. But the 4th difference is bothering me. I tried using something like start_window, end_window and tried to make The code common for DECON-INT and DECON-EXT, and it just doesn't work. ex: start_window = 0, end_window = 1 for DECON-INT start_window = 1, end_window = 1 for DECON-EXT When win_commit gets called for window 0 from crtc_commit/plane_commit: Configure start_window(0 for DECON-INT and 1 for DECON-EXT) When win_commit is called from decon_apply, it is called for window 1 also. That time win_commit can skip updating actual window 1. How do I take care of this ambiguity? This case happens with win_disable routine also! This way the code will be cleaner (less ifs). + .nr_windows = 2, +}; + +static struct decon_driver_data exynos7_decon_ext_driver_data = { + .decon_type = DECON_EXT, + .nr_windows = 1, +}; + struct decon_win_data { unsigned intovl_x; unsigned intovl_y; @@ -76,15 +98,28 @@ struct decon_context { atomic_twait_vsync_event; struct exynos_drm_panel_info panel; + struct decon_driver_data *driver_data;
Re: [PATCH 1/2] drm/exynos: hdmi: Add support for Exynos7 HDMI
Hi Andrej, On Fri, Feb 27, 2015 at 4:18 PM, Andrzej Hajda a.ha...@samsung.com wrote: Hi Ajay, Thanks for the patch. Thanks for reviewing the patch. On 02/26/2015 04:24 PM, Ajay Kumar wrote: Modify the exynos HDMI driver to support Exynos7 HDMI 1.4. * Add phy configs for Exynos7. * Exynos7 has a different clock structure for HDMI, so introduce the new clocks. * Add sysreg support to enable HDMI SYSREG on Exynos7. * Exynos7 based boards need a DCDC_EN and LS_EN pins for powering up HDMI. Add support for that too. Signed-off-by: Ajay Kumar ajaykumar...@samsung.com --- .../devicetree/bindings/video/exynos_hdmi.txt | 21 +- drivers/gpu/drm/exynos/exynos_hdmi.c | 252 drivers/gpu/drm/exynos/regs-hdmi.h |4 + 3 files changed, 231 insertions(+), 46 deletions(-) diff --git a/Documentation/devicetree/bindings/video/exynos_hdmi.txt b/Documentation/devicetree/bindings/video/exynos_hdmi.txt index 1fd8cf9..bb22a60 100644 --- a/Documentation/devicetree/bindings/video/exynos_hdmi.txt +++ b/Documentation/devicetree/bindings/video/exynos_hdmi.txt @@ -6,6 +6,7 @@ Required properties: 2) samsung,exynos4210-hdmi 3) samsung,exynos4212-hdmi 4) samsung,exynos5420-hdmi + 5) samsung,exynos7-hdmi Why not samsung,exynos7420-hdmi ? What compatible will you use for Exynos7430 or higher chip number? I will leave this decision to Inki Dae or Kukjin. - reg: physical base address of the hdmi and length of memory mapped region. - interrupts: interrupt number to the cpu. @@ -15,21 +16,33 @@ Required properties: c) optional flags and pull up/down. - clocks: list of clock IDs from SoC clock driver. a) hdmi: Gate of HDMI IP bus clock. - b) sclk_hdmi: Gate of HDMI special clock. - c) sclk_pixel: Pixel special clock, one of the two possible inputs of + HDMI clocks necessary for non exynos7: + b) sclk_hdmi: Gate of HDMI special clock. + c) sclk_pixel: Pixel special clock, one of the two possible inputs of HDMI clock mux. - d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of + d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of HDMI clock mux. - e) mout_hdmi: It is required by the driver to switch between the 2 + e) mout_hdmi: It is required by the driver to switch between the 2 parents i.e. sclk_pixel and sclk_hdmiphy. If hdmiphy is stable after configuration, parent is set to sclk_hdmiphy else sclk_pixel. + HDMI clocks necessary for Exynos7: + b) pclk_hdmiphy: Gate to HDMIPHY clock. According to specs there is also pclk_hdmi, why do you specify only this one? Right, I have reused hdmi gating clock for pclk_hdmi. That is why I have left hdmi clock as common for exynos7 and non-exynos7. + c) hdmi_pixel: Gate clock of MUX output for I_PIXEL_CLK. + d) hdmi_tmds: Gate clock of MUX output for I_TMDS_CLK. According to specs these clocks should be named i_pixel_clk and i_tmds_clk, shouldn't they? I actually took these changes from an internal code(non-DRM). The original author used these names, and I just carried the same names. :) - clock-names: aliases as per driver requirements for above clock IDs: hdmi, sclk_hdmi, sclk_pixel, sclk_hdmiphy and mout_hdmi. - ddc: phandle to the hdmi ddc node - phy: phandle to the hdmi phy node - samsung,syscon-phandle: phandle for system controller node for PMU. +Only for Exynos7(when compatible = samsung,exynos7-hdmi): +- samsung,sysreg-phandle: phandle for system controller node for SYSREG block. + +Optional properties: +- dcdc-gpios: OF device-tree gpio specification for HDMI_DCDC_EN pin. +- lsen-gpios: OF device-tree gpio specification for HDMI_LS_EN pin. What is purpose of these gpios? These 2 GPIOs need to be enabled to powerup HDMI on exynos7-espresso board. Other boards need not provide the GPIO. + Example: hdmi { diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 229b361..1b579ea 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -67,6 +67,7 @@ enum hdmi_type { HDMI_TYPE13, HDMI_TYPE14, + HDMI_TYPE14_7, }; struct hdmi_driver_data { @@ -82,6 +83,9 @@ struct hdmi_resources { struct clk *sclk_pixel; struct clk *sclk_hdmiphy; struct clk *mout_hdmi; + struct clk *hdmi_pixel; + struct clk *pclk_hdmiphy; + struct clk *hdmi_tmds; struct regulator_bulk_data *regul_bulk; struct regulator*reg_hdmi_en; int regul_count; @@ -210,6 +214,7 @@ struct hdmi_context { unsigned int
Re: [PATCH 2/2] drm/exynos: decon: Add support for DECON-EXT
On 02/26/2015 04:24 PM, Ajay Kumar wrote: * Modify DECON-INT driver to support DECON-EXT. * Add a table of porch values needed to set timing registers of DECON-EXT. * DECON-EXT supports only H/w Triggered COMMAND mode. * DECON-EXT supports only one DMA window(window 1), so modify all window management routines to support 2 windows of DECON-INT and 1 window of DECON-EXT. Signed-off-by: Ajay Kumar ajaykumar...@samsung.com --- .../devicetree/bindings/video/exynos7-decon.txt|8 +- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 229 ++-- include/video/exynos7_decon.h | 13 ++ 3 files changed, 230 insertions(+), 20 deletions(-) diff --git a/Documentation/devicetree/bindings/video/exynos7-decon.txt b/Documentation/devicetree/bindings/video/exynos7-decon.txt index f5f9c8d..87350c0 100644 --- a/Documentation/devicetree/bindings/video/exynos7-decon.txt +++ b/Documentation/devicetree/bindings/video/exynos7-decon.txt @@ -2,10 +2,14 @@ Device-Tree bindings for Samsung Exynos7 SoC display controller (DECON) DECON (Display and Enhancement Controller) is the Display Controller for the Exynos7 series of SoCs which transfers the image data from a video memory -buffer to an external LCD interface. +buffer to an external LCD/HDMI interface. + +Exynos7 supports DECON-INT for generating video signals for LCD. +Exynos7 supports DECON-EXT for generating video signals for HDMI. Required properties: -- compatible: value should be samsung,exynos7-decon; +- compatible: value should be samsung,exynos7-decon-int for DECON-INT; + value should be samsung,exynos7-decon-ext for DECON-EXT; - reg: physical base address and length of the DECON registers set. diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c index 63f02e2..9e2d083 100644 --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c @@ -41,6 +41,28 @@ #define WINDOWS_NR 2 Maybe it would be better to rename it to MAX_WINDOWS_NR +#define DECON_EXT_CH_MAPPING 0x432105 I am not familiar with decon, could you explain what exactly this mapping means and why is it fixed in the driver to this value, not default one. By the way my specs says bits 0-3 are reserverd and here it seems you are using them. + +enum decon_type { + DECON_INT, + DECON_EXT, +} decon_type; + +struct decon_driver_data { + enum decon_type decon_type; + unsigned intnr_windows; +}; + +static struct decon_driver_data exynos7_decon_int_driver_data = { + .decon_type = DECON_INT, I wonder if it wouldn't be better to use different fields to describe each capability/property instead of decon_type. For example .display_type = EXYNOS_DISPLAY_TYPE_LCD, .map_channels = 0, This way the code will be cleaner (less ifs). + .nr_windows = 2, +}; + +static struct decon_driver_data exynos7_decon_ext_driver_data = { + .decon_type = DECON_EXT, + .nr_windows = 1, +}; + struct decon_win_data { unsigned intovl_x; unsigned intovl_y; @@ -76,15 +98,28 @@ struct decon_context { atomic_twait_vsync_event; struct exynos_drm_panel_info panel; + struct decon_driver_data *driver_data; struct exynos_drm_display *display; }; static const struct of_device_id decon_driver_dt_match[] = { - {.compatible = samsung,exynos7-decon}, + { .compatible = samsung,exynos7-decon-int, + .data = exynos7_decon_int_driver_data }, + { .compatible = samsung,exynos7-decon-ext, + .data = exynos7_decon_ext_driver_data }, {}, }; MODULE_DEVICE_TABLE(of, decon_driver_dt_match); +static inline struct decon_driver_data *drm_decon_get_driver_data( + struct platform_device *pdev) +{ + const struct of_device_id *of_id = + of_match_device(decon_driver_dt_match, pdev-dev); + + return (struct decon_driver_data *)of_id-data; +} + static void decon_wait_for_vblank(struct exynos_drm_crtc *crtc) { struct decon_context *ctx = crtc-ctx; @@ -106,13 +141,20 @@ static void decon_wait_for_vblank(struct exynos_drm_crtc *crtc) static void decon_clear_channel(struct decon_context *ctx) { + struct decon_driver_data *drv_data = ctx-driver_data; int win, ch_enabled = 0; DRM_DEBUG_KMS(%s\n, __FILE__); /* Check if any channel is enabled. */ - for (win = 0; win WINDOWS_NR; win++) { - u32 val = readl(ctx-regs + WINCON(win)); + for (win = 0; win drv_data-nr_windows; win++) { + u32 val; + /* DECON EXT sw-hw window mapping */ + if (drv_data-decon_type == DECON_EXT) { + if (win == 0) + win = 1; Changing value of for iterator
Re: [PATCH] phy: exynos5-usbdrd: Fix off-by-one valid value checking for args-args[0]
Hi, On Friday, February 27, 2015 9:14 PM Axel Lin axel@ingics.com wrote: Current code uses args-args[0] as array subscript of phy_drd-phys[]. So the valid value range for args-args[0] is 0 ... EXYNOS5_DRDPHYS_NUM - 1. Signed-off-by: Axel Lin axel@ingics.com Reviewed by: Vivek Gautam gautam.vi...@samsung.com --- drivers/phy/phy-exynos5-usbdrd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c index 0437401..e2a0be7 100644 --- a/drivers/phy/phy-exynos5-usbdrd.c +++ b/drivers/phy/phy-exynos5-usbdrd.c @@ -531,7 +531,7 @@ static struct phy *exynos5_usbdrd_phy_xlate(struct device *dev, { struct exynos5_usbdrd_phy *phy_drd = dev_get_drvdata(dev); - if (WARN_ON(args-args[0] EXYNOS5_DRDPHYS_NUM)) + if (WARN_ON(args-args[0] = EXYNOS5_DRDPHYS_NUM)) return ERR_PTR(-ENODEV); return phy_drd-phys[args-args[0]].phy; -- 1.9.1 BRs Vivek -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
On Mon, Mar 02, 2015 at 01:35:53PM +0100, Arnd Bergmann wrote: Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. I and a bunch of other people still have Cragganmore, the ex-Wolfson (added Charles here) people may also be able to locate a smdk6410. may also be a signature.asc Description: Digital signature
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
Hi Arnd, Thanks a lot for these patches. 2015-03-02 21:35 GMT+09:00 Arnd Bergmann a...@arndb.de: Hi everyone, I've had these patches in a private git tree for a while, and have finally gotten around to clean them up some more for submission. Hopefully we can get all of it merged into 4.1. I've done this to the best of my knowledge, but some parts are a bit tricky, so I expect that there are bugs. The trickiest part is the touchscreen driver. I've sent it out for review last year already, but I have not found anybody who could test it, and it's basically a blind rewrite of an existing driver, so it's unlikely that I got it all right. The other parts may actually work, but it is possible that I made a mistake with the ASoC driver, the sparseirq support or something else. Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. I still have a tiny6410, which is compatible with mini6410, so I can test both DT and non-DT code paths. It also has a touchscreen using the on-SoC ADC. I'll give it a try this weekend. I'll try to review the series as well. Best regards, Tomasz -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
On Mon, Mar 2, 2015 at 8:37 PM, Dmitry Torokhov dmitry.torok...@gmail.com wrote: I think Vasily had access to hardware with s3c2410_ts at some point... Hi, Yep, I have s3c24xx hardware to test rewritten s3c2410_ts driver. Will try it this weekend. Regards, Vasily -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
On Mon, Mar 02, 2015 at 04:17:12PM +, Mark Brown wrote: On Mon, Mar 02, 2015 at 01:35:53PM +0100, Arnd Bergmann wrote: Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. I and a bunch of other people still have Cragganmore, the ex-Wolfson (added Charles here) people may also be able to locate a smdk6410. may also be a Certainly we have Cragganmores here, I think I have seen an smdk6410 kicking about the office unloved somewhere. I will have a look to see if I can unearth it somewhere. Thanks, Charles -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] clk/samsung: clk support for Exynos 5433 SoC
Quoting Chanwoo Choi (2015-02-27 16:52:59) Dear Mike and Sylwester, Gently ping. Hello, I'll merge this into clk-next towards 4.1 later this week. v3.19 was released on February 8, so this merge request came too late for inclusion into 4.0. Regards, Mike Best Regards, Chanwoo Choi On Tue, Feb 24, 2015 at 8:48 AM, Chanwoo Choi cw00.c...@samsung.com wrote: Dear Mike and Sylwester, This pull-request was not merged on Linux 4.0-rc1. Did you have any plan about it? Best Regards, Chanwoo Choi On 02/06/2015 04:44 AM, Sylwester Nawrocki wrote: Hi Mike, This pull request includes driver for clock controller of the Exynos 5433 SoC. As the hardware is quite complex, with many peripherals and corresponding clock management units the driver is rather huge. I guess it will require a bit more cleanups than last time to balance lines introduced in this patch set... Please review and pull if it looks OK. The following changes since commit e64fb42da4c6c713cfc7cad607e97e0773fa41ff: clk: samsung: exynos4: Add divider clock id for memory bus frequency (2015-01-28 15:51:17 +0100) are available in the git repository at: git://linuxtv.org/snawrocki/samsung.git tags/v3.20-exynos5433-clk for you to fetch changes up to b2f0e5f28e0686c0d5db238357a2e32555e97633: clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to CMU_TOP domain (2015-02-05 19:31:09 +0100) Clock controller driver for Exynos 5433 SoC. Chanwoo Choi (22): clk: samsung: exynos5433: Add binding document for Exynos5433 clock domains clk: samsung: exynos5433: Add clocks using common clock framework clk: samsung: exynos5433: Add MUX clocks of CMU_TOP domain clk: samsung: exynos5433: Add clocks for CMU_PERIC domain clk: samsung: exynos5433: Add clocks for CMU_PERIS domain clk: samsung: exynos5433: Add clocks for CMU_G2D domain clk: samsung: exynos5433: Add clocks for CMU_MIF domain clk: samsung: exynos5433: Add clocks for CMU_DISP domain clk: samsung: exynos5433: Add clocks for CMU_AUD domain clk: samsung: exynos5433: Add clocks for CMU_BUS{0|1|2} domains clk: samsung: exynos5433: Add missing clocks for CMU_FSYS domain clk: samsung: exynos5433: Add clocks for CMU_G3D domain clk: samsung: exynos5433: Add clocks for CMU_GSCL domain clk: samsung: exynos5433: Add clocks for CMU_APOLLO domain clk: samsung: exynos5433: Add clocks for CMU_ATLAS domain clk: samsung: exynos5433: Add clocks for CMU_MSCL domain clk: samsung: exynos5433: Add clocks for CMU_MFC domain clk: samsung: exynos5433: Add clocks for CMU_HEVC domain clk: samsung: exynos5433: Add clocks for CMU_ISP domain clk: samsung: exynos5433: Add clocks for CMU_CAM0 domain clk: samsung: exynos5433: Add clocks for CMU_CAM1 domain clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to CMU_TOP domain Inha Song (1): clk: samsung: Add CLKOUT driver support for Exynos5433 SoC .../devicetree/bindings/clock/exynos5433-clock.txt | 462 ++ drivers/clk/samsung/Makefile |1 + drivers/clk/samsung/clk-exynos-clkout.c|2 + drivers/clk/samsung/clk-exynos5433.c | 5423 include/dt-bindings/clock/exynos5433.h | 1403 + 5 files changed, 7291 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/exynos5433-clock.txt create mode 100644 drivers/clk/samsung/clk-exynos5433.c create mode 100644 include/dt-bindings/clock/exynos5433.h -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
On Mon, Mar 02, 2015 at 01:35:53PM +0100, Arnd Bergmann wrote: Hi everyone, I've had these patches in a private git tree for a while, and have finally gotten around to clean them up some more for submission. Hopefully we can get all of it merged into 4.1. I've done this to the best of my knowledge, but some parts are a bit tricky, so I expect that there are bugs. The trickiest part is the touchscreen driver. I've sent it out for review last year already, but I have not found anybody who could test it, and it's basically a blind rewrite of an existing driver, so it's unlikely that I got it all right. I think Vasily had access to hardware with s3c2410_ts at some point... The other parts may actually work, but it is possible that I made a mistake with the ASoC driver, the sparseirq support or something else. Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. Thanks. -- Dmitry -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 2/2] Samsung fixes-2 for v4.0
Hi, Please pull Samsung tmu and hdmi regression fixes for v4.0 and I know this is quite big for fixes but I couldn't handle this series for previous merge window because of dependency with driver side...sorry for that and please pull so that we could support them in v4.0 on exynos platforms. Thanks, Kukjin The following changes since commit c517d838eb7d07bbe9507871fab3931deccff539: Linux 4.0-rc1 (2015-02-22 18:21:14 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/samsung-fixes-dt for you to fetch changes up to 2d2c9a8d0a4f90e298315d2f4a282d8bd5d45e5c: ARM: dts: add display power domain for exynos5250 (2015-02-27 05:29:32 +0900) Samsung tmu and hdmi regression fixes for v4.0 - The thermal management unit and HDMI (drm mixer driver) related reworks have been merged in v4.0 merge window. So if this DT changes are missed for v4.0, we regressions in v4.0 release for exynos platforms such as exynos5250, exynos5420, exynos4 SoCs. - Note since there was a dependency with driver side, this cannot be sent to upstream during preivous merge window and now it has been resolved. Andrzej Hajda (1): ARM: dts: add display power domain for exynos5250 Lukasz Majewski (9): ARM: dts: Enable TMU for exynos4210-trats ARM: dts: Add LDO10 for TMU for exynos4412-odroid-common ARM: dts: Enable TMU for exynos4412-odriod-common ARM: dts: Adding CPU cooling binding for Exynos SoCs ARM: dts: add TMU default definitions for exynos4412 ARM: dts: default trip points definition for exynos5420 ARM: dts: define default thermal-zones for exynos4 ARM: dts: Trip points and sensor configuration data for exynos5440 ARM: dts: Provide dt bindings identical for Exynos TMU Marek Szyprowski (6): dt-bindings: document a note about power domain subdomains ARM: EXYNOS: add support for sub-power domains ARM: dts: add hdmi related nodes for exynos4 SoCs ARM: dts: add dependency between TV and LCD0 power domains for exynos4 ARM: dts: enable hdmi support for exynos4412-odroid-common ARM: dts: add 'hdmi' clock to mixer nodes for exynos5250 and exynos5420 Tomasz Stanislawski (1): ARM: dts: enable hdmi support for exynos4210-universal_c210 .../bindings/arm/exynos/power_domain.txt | 2 + .../devicetree/bindings/power/power_domain.txt | 29 ++ arch/arm/boot/dts/exynos3250.dtsi | 2 + arch/arm/boot/dts/exynos4-cpu-thermal.dtsi | 52 ++ arch/arm/boot/dts/exynos4.dtsi | 45 +++ arch/arm/boot/dts/exynos4210-trats.dts | 19 +++ arch/arm/boot/dts/exynos4210-universal_c210.dts| 57 +++ arch/arm/boot/dts/exynos4210.dtsi | 38 - arch/arm/boot/dts/exynos4212.dtsi | 5 +- arch/arm/boot/dts/exynos4412-odroid-common.dtsi| 64 ++ arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi | 24 arch/arm/boot/dts/exynos4412-trats2.dts| 15 + arch/arm/boot/dts/exynos4412.dtsi | 5 +- arch/arm/boot/dts/exynos4x12.dtsi | 12 arch/arm/boot/dts/exynos5250.dtsi | 44 +-- arch/arm/boot/dts/exynos5420-trip-points.dtsi | 35 arch/arm/boot/dts/exynos5420.dtsi | 33 ++- arch/arm/boot/dts/exynos5440-tmu-sensor-conf.dtsi | 24 arch/arm/boot/dts/exynos5440-trip-points.dtsi | 25 + arch/arm/boot/dts/exynos5440.dtsi | 18 ++ arch/arm/mach-exynos/pm_domains.c | 28 ++ 21 files changed, 565 insertions(+), 11 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4-cpu-thermal.dtsi create mode 100644 arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi create mode 100644 arch/arm/boot/dts/exynos5420-trip-points.dtsi create mode 100644 arch/arm/boot/dts/exynos5440-tmu-sensor-conf.dtsi create mode 100644 arch/arm/boot/dts/exynos5440-trip-points.dtsi -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 0/9] ARM: samsung: randconfig build fixes
On 02/18/15 09:21, Kukjin Kim wrote: Arnd Bergmann wrote: This is a set of mostly trivial build fixes for bugs I have encountered in random configurations. I'm sending them separate from the other platforms since we have a lot of them for the various samsung platforms here. Kukjin, please pick them up into a fixes branch for 3.20 or send an Ack so we can apply them directly. Sure, I will create a branch for them in this week. IMO, would be better if I could make a non-critical fixes branch for v3.20 in Samsung tree for further other Samsung stuff for v3.20 ;) Let me know if anything looks wrong with some of the patches. OK, if anything I'll let you know. Thanks for your pointing out. Happy new year again! (Actually it's the Lunar New Year holidays now) - Kukjin Arnd Bergmann (9): ARM: s3c64xx: add I2C dependencies where needed ARM: s3c64xx: fix building without CONFIG_PM_SLEEP ARM: s3c64xx: fix __initdata section mismatch ARM: s3c24xx: use SAMSUNG_WAKEMASK for s3c2416 ARM: s3c24xx: fix building without PM_SLEEP ARM: s3c24xx: fix header file inclusions ARM: s3c24xx: avoid a Kconfig warning ARM: EXYNOS: suspend requires regulator access ARM: EXYNOS: make exynos 4210 cpuidle build without SMP Arnd, BTW, I can't see exynos related patches in my mailbox, I don't know the reason...can you please re-send it? Thanks, Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] ARM: fix exynos randconfig build error
On 02/27/15 06:30, Kukjin Kim wrote: On 02/25/15 20:46, Krzysztof Kozlowski wrote: 2015-02-25 12:26 GMT+01:00 Russell King rmk+ker...@arm.linux.org.uk: The following error was observed with SMP=n in v4.0-rc1: arch/arm/mach-exynos/pm.c: In function 'exynos_cpu0_enter_aftr': arch/arm/mach-exynos/pm.c:246:4: error: implicit declaration of function 'arch_send_wakeup_ipi_mask' [-Werror=implicit-function-declaration] As the code unconditionally calls a function only available with SMP=y, make the Exynos PM support depend on SMP. Signed-off-by: Russell King rmk+ker...@arm.linux.org.uk Hi, Thanks for the patch but this already waits for Kukjin top be picked up. The first patch was similar to yours (adds dependency on SMP), sent on 4th of February: https://patchwork.ozlabs.org/patch/436231/ But later Bartlomiej fixed this in other way (allowing to use cpuidle on non-SMP): https://patchwork.ozlabs.org/patch/436445/ Unfortunately none of them were picked up. I've missed the fix, sorry. BTW, as you know, all of exynos SoCs are based on SMP so generally (in normal case) there is no reason to use non-SMP on exynos platforms...even though I understand the build error should be fixed... Anyway, I'll have a look Bart's patch and Russell's fix in this weekend. Firstly, let me take rmk's patch for the randconfig build error...BTW I'm still wondering exynos stuff needs to support non-SMP and need to think more about its usefulness?... - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/1] ARM: exynos_defconfig: Disable IOMMU support
On 02/27/15 15:20, Javier Martinez Canillas wrote: Hello Kukjin, Hi, On 02/17/2015 12:38 PM, Javier Martinez Canillas wrote: Enabling Exynos DRM IOMMU support for Exynos is currently broken and causes a BUG on exynos-iommu driver. This was not an issue since the options was disabled in exynos_defconfig but after commit 8dcc14f82f06 (drm/exynos: IOMMU support should not be selectable by user), it is selected if EXYNOS_IOMMU is enabled which is in exynos_defconfig. So a kernel built using exynos_defconfig after the mentioned commit fails to boot [0]. Disable IOMMU support in Exynos defconfig until things get sorted out. [0]: [1.242183] [ cut here ] [1.246191] kernel BUG at drivers/iommu/exynos-iommu.c:481! [1.251747] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM [1.257561] Modules linked in: [1.260603] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.19.0-07478-g796e1c55717e #490 [1.268412] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [1.274489] task: ee06c000 ti: ee05a000 task.ti: ee05a000 [1.279874] PC is at __exynos_sysmmu_enable+0x184/0x190 [1.285080] LR is at exynos_iommu_attach_device+0x44/0xb0 [1.290461] pc : [c0254a14]lr : [c0254a64]psr: 6193 [1.290461] sp : ee05bcf8 ip : fp : ed84aa40 [1.301916] r10: ed84a890 r9 : a113 r8 : 6db3 [1.307125] r7 : ed84aa40 r6 : r5 : r4 : ee174e10 [1.313635] r3 : 6db3 r2 : ed84aa40 r1 : 6db3 r0 : ee174e10 [1.320147] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel [1.327524] Control: 10c5387d Table: 4000406a DAC: 0015 [1.333252] Process swapper/0 (pid: 1, stack limit = 0xee05a210) [1.339241] Stack: (0xee05bcf8 to 0xee05c000) [1.343581] bce0: 6db3 ee174e10 [1.351741] bd00: ed84a880 ed84aa40 ee174e10 a113 ed84a890 c0254a64 [1.359900] bd20: 6db3 ee174e10 ed84adc0 0005 0034 0001 c0692c1c [1.368059] bd40: 0097 c02526c8 ee29f050 c0017210 ee29f050 ee174e10 edab6810 c0282558 [1.376219] bd60: edab6a10 ee1cb000 0005 c0283520 ee29f240 c028f210 edab6810 ee2ef280 [1.384378] bd80: edb24680 ed84a680 ee1cb000 c02883f8 edab6810 ee1cb000 ee1cb000 [1.392537] bda0: ed84a680 ee2ef450 c027e968 ee1cb000 c0268fd4 [1.400696] bdc0: edab6800 c06b0de4 ee1cb000 c026a8bc ee2ef0c0 c028f210 0002 ee2ef460 [1.408855] bde0: ee2ef460 0002 ee2ef280 c0288728 c04af5d0 edab6810 ee2ef280 [1.417014] be00: c06b1348 c0288918 c06b0f00 c06b0f00 edab6810 0001 c06b0da0 c027eaf4 [1.425173] be20: c070334c edaee190 edab6810 ffed c06b0da0 c028da1c [1.42] be40: edab6810 c070334c c028c5f8 edab6810 c06b0da0 edab6844 [1.441492] be60: eda3c740 c028c7a4 c06b0da0 c028c718 c028af74 ee005274 ee3b7b40 [1.449652] be80: c06b0da0 ee3b7680 c06b1540 c028bde4 c05b6990 c06b0da0 c0703324 c06b0da0 [1.457811] bea0: c0703324 c069ab18 c028cdc4 c0703324 c027ebd8 [1.465970] bec0: c05b6990 c00c4574 [1.474129] bee0: c069ab18 c027eb1c c069ab18 c069ab18 c0008944 [1.482288] bf00: 0036 c04770e8 ee049800 c06eace0 ee06c000 6113 c069eab0 [1.490447] bf20: c069eab0 6113 ef7fcabc ef7fcaae c061c594 c0038640 [1.498607] bf40: c05cb1d0 c061bc24 0006 0006 c069ea50 c06724d4 0006 c06724b4 [1.506766] bf60: c06c7600 c0647588 c0692c1c 0097 c0647d40 0006 0006 [1.514925] bf80: c0647588 c003d2d8 c046921c [1.523084] bfa0: c0469224 c000e680 [1.531243] bfc0: [1.539402] bfe0: 0013 [1.547567] [c0254a14] (__exynos_sysmmu_enable) from [c0254a64] (exynos_iommu_attach_device+0x44/0xb0) [1.557199] [c0254a64] (exynos_iommu_attach_device) from [c02526c8] (iommu_attach_device+0x18/0x24) [1.566576] [c02526c8] (iommu_attach_device) from [c0017210] (arm_iommu_attach_device+0x18/0x50) [1.575690] [c0017210] (arm_iommu_attach_device) from [c0282558] (drm_iommu_attach_device+0x50/0xb4) [1.585150] [c0282558] (drm_iommu_attach_device) from [c0283520] (fimd_bind+0x94/0x1b8) [1.593483] [c0283520] (fimd_bind) from [c02883f8] (component_bind_all+0xb4/0x214) [1.601380] [c02883f8] (component_bind_all) from [c027e968] (exynos_drm_load+0x9c/0x13c) [1.609802] [c027e968] (exynos_drm_load) from [c0268fd4]
[GIT PULL 1/2] Samsung fixes-1 for v4.0
The following changes since commit c517d838eb7d07bbe9507871fab3931deccff539: Linux 4.0-rc1 (2015-02-22 18:21:14 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/samsung-fixes-1 for you to fetch changes up to 8a68de64e984cfc49ecc22ac18155a7fe6dbbfaf: ARM: EXYNOS: fix exynos randconfig build error (2015-03-03 03:37:57 +0900) Samsung fixes for v4.0 - fix exynos randconfig build error with SMP=n - fix wrong hwirq of RTC interrupt for exynos3250 - fix usage of LDREX and STREX after disabling cache coherency Chanwoo Choi (1): ARM: EXYNOS: Fix wrong hwirq of RTC interrupt for Exynos3250 SoC Krzysztof Kozlowski (1): ARM: EXYNOS: Don't use LDREX and STREX after disabling cache coherency Russell King (1): ARM: EXYNOS: fix exynos randconfig build error arch/arm/mach-exynos/Kconfig | 1 + arch/arm/mach-exynos/platsmp.c | 3 +-- arch/arm/mach-exynos/suspend.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed
On 03/03/15 01:53, Tomasz Figa wrote: Hi Arnd, Hi, Thanks a lot for these patches. 2015-03-02 21:35 GMT+09:00 Arnd Bergmann a...@arndb.de: Hi everyone, I've had these patches in a private git tree for a while, and have finally gotten around to clean them up some more for submission. Hopefully we can get all of it merged into 4.1. Sure, I've done this to the best of my knowledge, but some parts are a bit tricky, so I expect that there are bugs. The trickiest part is the touchscreen driver. I've sent it out for review last year already, but I have not found anybody who could test it, and it's basically a blind rewrite of an existing driver, so it's unlikely that I got it all right. The other parts may actually work, but it is possible that I made a mistake with the ASoC driver, the sparseirq support or something else. Does anyone still have access to the hardware? I'm particularly interested in seeing this patch set get tested on smartq and on smdk6410, which have the majority of the hardware. I still have a tiny6410, which is compatible with mini6410, so I can test both DT and non-DT code paths. It also has a touchscreen using the on-SoC ADC. I'll give it a try this weekend. I'll try to review the series as well. I also have smdk6410 board on my desk and maybe I can test this series in the weekend. If anything I'll let you know. Thanks, Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html