[PATCH v3 2/2] pwm: add MediaTek display PWM driver support
From: Daniel Kurtz <hidden>
Date: 2015-07-02 08:15:17
Also in:
linux-devicetree, linux-mediatek, linux-pwm, lkml
On Mon, Jun 29, 2015 at 11:03 PM, YH Huang [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Add display PWM driver support to modify backlight for MT8173 and MT6595. The PWM has one channel to control the brightness of the display. When the (high_width / period) is closer to 1, the screen is brighter; otherwise, it is darker. Change-Id: Ie85b295e2dddd90b4163af1c906df977f79b59d6 Signed-off-by: YH Huang <redacted> --- drivers/pwm/Kconfig | 10 ++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-mtk-disp.c | 256 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 267 insertions(+) create mode 100644 drivers/pwm/pwm-mtk-disp.cdiff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig index b1541f4..90e3c079 100644 --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig@@ -211,6 +211,16 @@ config PWM_LPSS_PLATFORM To compile this driver as a module, choose M here: the module will be called pwm-lpss-platform. +config PWM_MTK_DISP + tristate "MediaTek display PWM driver" + depends on HAS_IOMEM
depends on ARCH_MEDIATEK || COMPILE_TEST
quoted hunk ↗ jump to hunk
+ help + Generic PWM framework driver for MediaTek disp-pwm device. + The PWM is used to control the backlight brightness for display. + + To compile this driver as a module, choose M here: the module + will be called pwm-mtk-disp. + config PWM_MXS tristate "Freescale MXS PWM support" depends on ARCH_MXS && OFdiff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile index ec50eb5..99c9e75 100644 --- a/drivers/pwm/Makefile +++ b/drivers/pwm/Makefile@@ -18,6 +18,7 @@ obj-$(CONFIG_PWM_LPC32XX) += pwm-lpc32xx.o obj-$(CONFIG_PWM_LPSS) += pwm-lpss.o obj-$(CONFIG_PWM_LPSS_PCI) += pwm-lpss-pci.o obj-$(CONFIG_PWM_LPSS_PLATFORM) += pwm-lpss-platform.o +obj-$(CONFIG_PWM_MTK_DISP) += pwm-mtk-disp.o obj-$(CONFIG_PWM_MXS) += pwm-mxs.o obj-$(CONFIG_PWM_PCA9685) += pwm-pca9685.o obj-$(CONFIG_PWM_PUV3) += pwm-puv3.odiff --git a/drivers/pwm/pwm-mtk-disp.c b/drivers/pwm/pwm-mtk-disp.c new file mode 100644 index 0000000..fb3a42e --- /dev/null +++ b/drivers/pwm/pwm-mtk-disp.c@@ -0,0 +1,256 @@ +/* + * MediaTek display pulse-width-modulation controller driver. + * Copyright (c) 2015 MediaTek Inc. + * Author: YH Huang <yh.huang@mediatek.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/clk.h> +#include <linux/err.h> +#include <linux/io.h> +#include <linux/module.h> +#include <linux/of.h> +#include <linux/pwm.h> +#include <linux/platform_device.h> +#include <linux/slab.h> + +#define DISP_PWM_EN 0x0 +#define PWM_ENABLE_MASK 0x1
For one bit fields like this, it is nicer to use: BIT() Thanks! -Dan