This patch enables usage of multiple eCAP and eHRPWM devices

using PWM sysfs entries.
 
 Without this patch, creation of multiple entries fails due
 to name clash.
 
 This is not a v4.9 regression but it will be nice to fix it
 soon.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJYGxxYAAoJEGFBu2jqvgRNATwQAJQioVsiBS8JRoiPwVfbZQqu
 Fgnb1NXdCo6qnSVWd5CRieN0RsCt2BKJwru6ON0g7A4qdxOzg0eWn5t5HZzQujhW
 qT/o6DzIgmK4saH5SFgnj50je1az5TGY/joYYBMJsrTUwSUdOZWwGYU++Evlximw
 4H7kbj8u0qVPE86vokmFGpl/qu1iQDEhiVUigpHvhtG45OX4rj3wr+IKBQ9NRNmp
 ZTAYvtU5MsxbHv2k3nh85zTiVXIkiJTodxXHftdbiwcBGMXi8vn0Tc07V+FH3o55
 atPSuYOQTyVojE6qKULK0meVbzjSixD8ekGOFd10q+aD1jjUECbUIaPojvcfYMV6
 RbsWLeMDuu/iZbLce7lD9K7PV0XbcXVRqxKfyoY7jcT6lfsmR2jKN96ce2es16ty
 kL2995Iu5wKSgO4SHobWS+Jsidb5czkyWxEjVgPauKq+GjEWjxraZOulESOEViCU
 6Q5f3JMWzKbFGJVw+zdaNHQp1nYZIWiOukUysYoxdEdIR/h+n3bf/OE5voatayfh
 FTw5D0j4tVpEwTCbTvYr6OUS68A/BSIOHTMB84bxCleRjMIghwr5F4sYnWRzgsRt
 27LQE3WYZk7Vqu3gzIWBmpgQbprYTTiX4+ULsdqZLu/DbKmfVF066HkVEw+2p40b
 Tv1afsskUP/5Jwe8Hdjl
 =DtFg
 -----END PGP SIGNATURE-----

Merge tag 'davinci-fixes-for-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/fixes-non-critical

This patch enables usage of multiple eCAP and eHRPWM devices
using PWM sysfs entries.

Without this patch, creation of multiple entries fails due
to name clash.

This is not a v4.9 regression but it will be nice to fix it
soon.

* tag 'davinci-fixes-for-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
  ARM: davinci: da850: Fix pwm name matching

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2016-11-07 19:19:40 -08:00
Родитель 9cfc93b2f8 36173c2d02
Коммит 8b87963b54
2 изменённых файлов: 50 добавлений и 8 удалений

Просмотреть файл

@ -424,6 +424,16 @@ static struct clk ehrpwm_clk = {
.gpsc = 1,
};
static struct clk ehrpwm0_clk = {
.name = "ehrpwm0",
.parent = &ehrpwm_clk,
};
static struct clk ehrpwm1_clk = {
.name = "ehrpwm1",
.parent = &ehrpwm_clk,
};
#define DA8XX_EHRPWM_TBCLKSYNC BIT(12)
static void ehrpwm_tblck_enable(struct clk *clk)
@ -451,6 +461,16 @@ static struct clk ehrpwm_tbclk = {
.clk_disable = ehrpwm_tblck_disable,
};
static struct clk ehrpwm0_tbclk = {
.name = "ehrpwm0_tbclk",
.parent = &ehrpwm_tbclk,
};
static struct clk ehrpwm1_tbclk = {
.name = "ehrpwm1_tbclk",
.parent = &ehrpwm_tbclk,
};
static struct clk ecap_clk = {
.name = "ecap",
.parent = &async3_clk,
@ -458,6 +478,21 @@ static struct clk ecap_clk = {
.gpsc = 1,
};
static struct clk ecap0_clk = {
.name = "ecap0_clk",
.parent = &ecap_clk,
};
static struct clk ecap1_clk = {
.name = "ecap1_clk",
.parent = &ecap_clk,
};
static struct clk ecap2_clk = {
.name = "ecap2_clk",
.parent = &ecap_clk,
};
static struct clk_lookup da850_clks[] = {
CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll0", &pll0_clk),
@ -510,9 +545,16 @@ static struct clk_lookup da850_clks[] = {
CLK("vpif", NULL, &vpif_clk),
CLK("ahci_da850", NULL, &sata_clk),
CLK("davinci-rproc.0", NULL, &dsp_clk),
CLK("ehrpwm", "fck", &ehrpwm_clk),
CLK("ehrpwm", "tbclk", &ehrpwm_tbclk),
CLK("ecap", "fck", &ecap_clk),
CLK(NULL, NULL, &ehrpwm_clk),
CLK("ehrpwm.0", "fck", &ehrpwm0_clk),
CLK("ehrpwm.1", "fck", &ehrpwm1_clk),
CLK(NULL, NULL, &ehrpwm_tbclk),
CLK("ehrpwm.0", "tbclk", &ehrpwm0_tbclk),
CLK("ehrpwm.1", "tbclk", &ehrpwm1_tbclk),
CLK(NULL, NULL, &ecap_clk),
CLK("ecap.0", "fck", &ecap0_clk),
CLK("ecap.1", "fck", &ecap1_clk),
CLK("ecap.2", "fck", &ecap2_clk),
CLK(NULL, NULL, NULL),
};

Просмотреть файл

@ -23,11 +23,11 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
OF_DEV_AUXDATA("ti,davinci-i2c", 0x01e28000, "i2c_davinci.2", NULL),
OF_DEV_AUXDATA("ti,davinci-wdt", 0x01c21000, "davinci-wdt", NULL),
OF_DEV_AUXDATA("ti,da830-mmc", 0x01c40000, "da830-mmc.0", NULL),
OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f00000, "ehrpwm", NULL),
OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f02000, "ehrpwm", NULL),
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap", NULL),
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap", NULL),
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap", NULL),
OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f00000, "ehrpwm.0", NULL),
OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f02000, "ehrpwm.1", NULL),
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap.0", NULL),
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap.1", NULL),
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap.2", NULL),
OF_DEV_AUXDATA("ti,da830-spi", 0x01c41000, "spi_davinci.0", NULL),
OF_DEV_AUXDATA("ti,da830-spi", 0x01f0e000, "spi_davinci.1", NULL),
OF_DEV_AUXDATA("ns16550a", 0x01c42000, "serial8250.0", NULL),