2014-11-04 11:16:30

by Vignesh Raghavendra

[permalink] [raw]
Subject: [PATCH v2 0/3] Add support for ADC on am437x-gp and am43x-epos-evm

This series of patches enable ADC on am437x-gp-evm and am43x-epos-evm.
The ADC clock hwmod data of am33xx has been moved to commom place so that
both am43xx and am33xx can reuse them.
tscadc DT node has been adided to am437x-gp and am43x-epos dt files.
With these patches, ADC functionalities are now available on am43xx.

Changelog:

v2:
Removed phy addresses in hwmod. Using DT instead.
Removed unused "ti,am4372" compatible string.
Use macro to set clk domain name.
Fixed subject format of all patches

Vignesh R (3):
ARM: OMAP2+: hwmod: AM335x/AM43x: Move am33xx_l4_hs_hwmod to
ipblock_data
ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on
am43x-evm
ARM: dts: AM43xx: add tscadc DT entries for am437x-evm and
am43x-epos-evm

arch/arm/boot/dts/am4372.dtsi | 20 ++++++
arch/arm/boot/dts/am437x-gp-evm.dts | 8 +++
arch/arm/boot/dts/am43x-epos-evm.dts | 8 +++
.../mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 2 +
.../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 71 ++++++++++++++++++++++
arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 64 -------------------
arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 1 +
7 files changed, 110 insertions(+), 64 deletions(-)

--
1.9.1


2014-11-04 11:16:33

by Vignesh Raghavendra

[permalink] [raw]
Subject: [PATCH v2 1/3] ARM: OMAP2+: hwmod: AM335x/AM43x: Move am33xx_l4_hs_hwmod to ipblock_data

This patch moves am33xx_l4_hs_hwmod from 33xx_data to ipblock_data. This
is required because it can be reused in 43xx to add hwmod support to
tscadc as it uses the same l4_hs hwmod in am43xx. This helps in setting
appropriate clock domain names for tscadc on am33xx and am43xx.

Signed-off-by: Vignesh R <[email protected]>
---
arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 1 +
arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 15 +++++++++++++++
arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 15 ---------------
3 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
index 130332c0534d..6e57b8ad0db5 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
@@ -82,6 +82,7 @@ extern struct omap_hwmod am33xx_l3_main_hwmod;
extern struct omap_hwmod am33xx_l3_s_hwmod;
extern struct omap_hwmod am33xx_l3_instr_hwmod;
extern struct omap_hwmod am33xx_l4_ls_hwmod;
+extern struct omap_hwmod am33xx_l4_hs_hwmod;
extern struct omap_hwmod am33xx_l4_wkup_hwmod;
extern struct omap_hwmod am33xx_mpu_hwmod;
extern struct omap_hwmod am33xx_pruss_hwmod;
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
index a579b89ce9b7..7f44922ab540 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
@@ -94,6 +94,21 @@ struct omap_hwmod am33xx_l4_ls_hwmod = {
},
};

+/* l4_hs */
+struct omap_hwmod am33xx_l4_hs_hwmod = {
+ .name = "l4_hs",
+ .class = &am33xx_l4_hwmod_class,
+ .clkdm_name = "l4hs_clkdm",
+ .flags = HWMOD_INIT_NO_IDLE,
+ .main_clk = "l4hs_gclk",
+ .prcm = {
+ .omap4 = {
+ .clkctrl_offs = AM33XX_CM_PER_L4HS_CLKCTRL_OFFSET,
+ .modulemode = MODULEMODE_SWCTRL,
+ },
+ },
+};
+
/* l4_wkup */
struct omap_hwmod am33xx_l4_wkup_hwmod = {
.name = "l4_wkup",
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index 6b406ca4bd3b..ce7d260495cb 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -63,21 +63,6 @@ static struct omap_hwmod am33xx_emif_hwmod = {
},
};

-/* l4_hs */
-static struct omap_hwmod am33xx_l4_hs_hwmod = {
- .name = "l4_hs",
- .class = &am33xx_l4_hwmod_class,
- .clkdm_name = "l4hs_clkdm",
- .flags = HWMOD_INIT_NO_IDLE,
- .main_clk = "l4hs_gclk",
- .prcm = {
- .omap4 = {
- .clkctrl_offs = AM33XX_CM_PER_L4HS_CLKCTRL_OFFSET,
- .modulemode = MODULEMODE_SWCTRL,
- },
- },
-};
-
static struct omap_hwmod_rst_info am33xx_wkup_m3_resets[] = {
{ .name = "wkup_m3", .rst_shift = 3, .st_shift = 5 },
};
--
1.9.1

2014-11-04 11:17:02

by Vignesh Raghavendra

[permalink] [raw]
Subject: [PATCH v2 3/3] ARM: dts: AM43xx: add tscadc DT entries for am437x-evm and am43x-epos-evm

This patch adds tscadc DT entries for am437x-gp-evm and am43x-epos-evm.

Signed-off-by: Vignesh R <[email protected]>
---
arch/arm/boot/dts/am4372.dtsi | 20 ++++++++++++++++++++
arch/arm/boot/dts/am437x-gp-evm.dts | 8 ++++++++
arch/arm/boot/dts/am43x-epos-evm.dts | 8 ++++++++
3 files changed, 36 insertions(+)

diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index 46660ffd2b65..cb73e5eb6971 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -667,6 +667,26 @@
};
};

+ tscadc: tscadc@44e0d000 {
+ compatible = "ti,am3359-tscadc";
+ reg = <0x44e0d000 0x1000>;
+ ti,hwmods = "adc_tsc";
+ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&adc_tsc_fck>;
+ clock-names = "fck";
+ status = "disabled";
+
+ tsc {
+ compatible = "ti,am3359-tsc";
+ };
+
+ adc {
+ #io-channel-cells = <1>;
+ compatible = "ti,am3359-adc";
+ };
+
+ };
+
sham: sham@53100000 {
compatible = "ti,omap5-sham";
ti,hwmods = "sham";
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index e7ac47fa6615..2ffd6d6dcc87 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -343,6 +343,14 @@
status = "okay";
};

+&tscadc {
+ status = "okay";
+
+ adc {
+ ti,adc-channels = <0 1 2 3 4 5 6 7>;
+ };
+};
+
&ecap0 {
status = "okay";
pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index ac3e4859935f..f9bc607f3b3a 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -519,6 +519,14 @@
status = "okay";
};

+&tscadc {
+ status = "okay";
+
+ adc {
+ ti,adc-channels = <0 1 2 3 4 5 6 7>;
+ };
+};
+
&ecap0 {
status = "okay";
pinctrl-names = "default";
--
1.9.1

2014-11-04 11:17:42

by Vignesh Raghavendra

[permalink] [raw]
Subject: [PATCH v2 2/3] ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on am43x-evm

This patch adds hwmod support for tscadc to work on am43xx-evm. The am33xx
hwmod structures of tscadc has been moved to ipblock_data so that it can
be reused in am43xx. The clock domain names are separately set for am33xx
and am43xx. Thus tscadc dt entries can now be added to am43xx board
dt files.

Signed-off-by: Vignesh R <[email protected]>
---
.../mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 1 +
.../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 56 ++++++++++++++++++++++
arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 49 -------------------
arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 1 +
4 files changed, 58 insertions(+), 49 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
index 6e57b8ad0db5..b92a7c7825fa 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
@@ -65,6 +65,7 @@ extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer4;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer5;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer6;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer7;
+extern struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tpcc;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc0;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc1;
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
index 7f44922ab540..ce9c133ea9ff 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
@@ -29,6 +29,7 @@
#define CLKCTRL(oh, clkctrl) ((oh).prcm.omap4.clkctrl_offs = (clkctrl))
#define RSTCTRL(oh, rstctrl) ((oh).prcm.omap4.rstctrl_offs = (rstctrl))
#define RSTST(oh, rstst) ((oh).prcm.omap4.rstst_offs = (rstst))
+#define CLKDMNAME(oh, clkdmname) ((oh).clkdm_name = (clkdmname))

/*
* 'l3' class
@@ -151,6 +152,45 @@ struct omap_hwmod_class am33xx_wkup_m3_hwmod_class = {
};

/*
+ * 'adc/tsc' class
+ * TouchScreen Controller (Anolog-To-Digital Converter)
+ */
+static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
+ .rev_offs = 0x00,
+ .sysc_offs = 0x10,
+ .sysc_flags = SYSC_HAS_SIDLEMODE,
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
+ SIDLE_SMART_WKUP),
+ .sysc_fields = &omap_hwmod_sysc_type2,
+};
+
+static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
+ .name = "adc_tsc",
+ .sysc = &am33xx_adc_tsc_sysc,
+};
+
+struct omap_hwmod am33xx_adc_tsc_hwmod = {
+ .name = "adc_tsc",
+ .class = &am33xx_adc_tsc_hwmod_class,
+ .clkdm_name = "l4_wkup_clkdm",
+ .main_clk = "adc_tsc_fck",
+ .prcm = {
+ .omap4 = {
+ .modulemode = MODULEMODE_SWCTRL,
+ },
+ },
+};
+
+/* L4 WKUP -> ADC_TSC */
+
+struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
+ .master = &am33xx_l4_wkup_hwmod,
+ .slave = &am33xx_adc_tsc_hwmod,
+ .clk = "dpll_core_m4_div2_ck",
+ .user = OCP_USER_MPU,
+};
+
+/*
* 'pru-icss' class
* Programmable Real-Time Unit and Industrial Communication Subsystem
*/
@@ -1370,6 +1410,7 @@ static void omap_hwmod_am33xx_clkctrl(void)
CLKCTRL(am33xx_timer5_hwmod, AM33XX_CM_PER_TIMER5_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer6_hwmod, AM33XX_CM_PER_TIMER6_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer7_hwmod, AM33XX_CM_PER_TIMER7_CLKCTRL_OFFSET);
+ CLKCTRL(am33xx_adc_tsc_hwmod, AM33XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex0_hwmod,
AM33XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex1_hwmod,
@@ -1398,6 +1439,18 @@ static void omap_hwmod_am33xx_clkctrl(void)
CLKCTRL(am33xx_aes0_hwmod , AM33XX_CM_PER_AES0_CLKCTRL_OFFSET);
}

+static void am33xx_hwmod_clockdomain(void)
+{
+ CLKDMNAME(am33xx_l4_hs_hwmod, "l4hs_clkdm");
+ CLKDMNAME(am33xx_adc_tsc_hwmod, "l4_wkup_clkdm");
+}
+
+static void am43xx_hwmod_clockdomain(void)
+{
+ CLKDMNAME(am33xx_l4_hs_hwmod, "l3_clkdm");
+ CLKDMNAME(am33xx_adc_tsc_hwmod, "l3s_tsc_clkdm");
+}
+
static void omap_hwmod_am33xx_rst(void)
{
RSTCTRL(am33xx_pruss_hwmod, AM33XX_RM_PER_RSTCTRL_OFFSET);
@@ -1409,6 +1462,7 @@ void omap_hwmod_am33xx_reg(void)
{
omap_hwmod_am33xx_clkctrl();
omap_hwmod_am33xx_rst();
+ am33xx_hwmod_clockdomain();
}

static void omap_hwmod_am43xx_clkctrl(void)
@@ -1443,6 +1497,7 @@ static void omap_hwmod_am43xx_clkctrl(void)
CLKCTRL(am33xx_timer5_hwmod, AM43XX_CM_PER_TIMER5_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer6_hwmod, AM43XX_CM_PER_TIMER6_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer7_hwmod, AM43XX_CM_PER_TIMER7_CLKCTRL_OFFSET);
+ CLKCTRL(am33xx_adc_tsc_hwmod, AM43XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex0_hwmod,
AM43XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex1_hwmod,
@@ -1482,4 +1537,5 @@ void omap_hwmod_am43xx_reg(void)
{
omap_hwmod_am43xx_clkctrl();
omap_hwmod_am43xx_rst();
+ am43xx_hwmod_clockdomain();
}
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index ce7d260495cb..c3ff14828850 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -88,37 +88,6 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = {
};

/*
- * 'adc/tsc' class
- * TouchScreen Controller (Anolog-To-Digital Converter)
- */
-static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
- .rev_offs = 0x00,
- .sysc_offs = 0x10,
- .sysc_flags = SYSC_HAS_SIDLEMODE,
- .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
- SIDLE_SMART_WKUP),
- .sysc_fields = &omap_hwmod_sysc_type2,
-};
-
-static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
- .name = "adc_tsc",
- .sysc = &am33xx_adc_tsc_sysc,
-};
-
-static struct omap_hwmod am33xx_adc_tsc_hwmod = {
- .name = "adc_tsc",
- .class = &am33xx_adc_tsc_hwmod_class,
- .clkdm_name = "l4_wkup_clkdm",
- .main_clk = "adc_tsc_fck",
- .prcm = {
- .omap4 = {
- .clkctrl_offs = AM33XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET,
- .modulemode = MODULEMODE_SWCTRL,
- },
- },
-};
-
-/*
* Modules omap_hwmod structures
*
* The following IPs are excluded for the moment because:
@@ -426,24 +395,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__gpio0 = {
.user = OCP_USER_MPU | OCP_USER_SDMA,
};

-/* L4 WKUP -> ADC_TSC */
-static struct omap_hwmod_addr_space am33xx_adc_tsc_addrs[] = {
- {
- .pa_start = 0x44E0D000,
- .pa_end = 0x44E0D000 + SZ_8K - 1,
- .flags = ADDR_TYPE_RT
- },
- { }
-};
-
-static struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
- .master = &am33xx_l4_wkup_hwmod,
- .slave = &am33xx_adc_tsc_hwmod,
- .clk = "dpll_core_m4_div2_ck",
- .addr = am33xx_adc_tsc_addrs,
- .user = OCP_USER_MPU,
-};
-
static struct omap_hwmod_ocp_if am33xx_l4_hs__cpgmac0 = {
.master = &am33xx_l4_hs_hwmod,
.slave = &am33xx_cpgmac0_hwmod,
diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
index fea01aa3ef42..3ce8d28c0f9a 100644
--- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c
@@ -809,6 +809,7 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = {
&am33xx_l4_ls__timer5,
&am33xx_l4_ls__timer6,
&am33xx_l4_ls__timer7,
+ &am33xx_l4_wkup__adc_tsc,
&am33xx_l3_main__tpcc,
&am33xx_l4_ls__uart2,
&am33xx_l4_ls__uart3,
--
1.9.1

2014-11-14 04:08:17

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v2 0/3] Add support for ADC on am437x-gp and am43x-epos-evm


On Tuesday 04 November 2014 04:45 PM, Vignesh R wrote:
> This series of patches enable ADC on am437x-gp-evm and am43x-epos-evm.
> The ADC clock hwmod data of am33xx has been moved to commom place so that
> both am43xx and am33xx can reuse them.
> tscadc DT node has been adided to am437x-gp and am43x-epos dt files.
> With these patches, ADC functionalities are now available on am43xx.
>
> Changelog:
>
> v2:
> Removed phy addresses in hwmod. Using DT instead.
> Removed unused "ti,am4372" compatible string.
> Use macro to set clk domain name.
> Fixed subject format of all patches
>

Please accept these patches.

Regards
Vignesh R

> Vignesh R (3):
> ARM: OMAP2+: hwmod: AM335x/AM43x: Move am33xx_l4_hs_hwmod to
> ipblock_data
> ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on
> am43x-evm
> ARM: dts: AM43xx: add tscadc DT entries for am437x-evm and
> am43x-epos-evm
>
> arch/arm/boot/dts/am4372.dtsi | 20 ++++++
> arch/arm/boot/dts/am437x-gp-evm.dts | 8 +++
> arch/arm/boot/dts/am43x-epos-evm.dts | 8 +++
> .../mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 2 +
> .../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 71 ++++++++++++++++++++++
> arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 64 -------------------
> arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 1 +
> 7 files changed, 110 insertions(+), 64 deletions(-)
>

2014-11-14 18:51:30

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2 0/3] Add support for ADC on am437x-gp and am43x-epos-evm

* Vignesh R <[email protected]> [141113 20:09]:
>
> On Tuesday 04 November 2014 04:45 PM, Vignesh R wrote:
> > This series of patches enable ADC on am437x-gp-evm and am43x-epos-evm.
> > The ADC clock hwmod data of am33xx has been moved to commom place so that
> > both am43xx and am33xx can reuse them.
> > tscadc DT node has been adided to am437x-gp and am43x-epos dt files.
> > With these patches, ADC functionalities are now available on am43xx.
> >
> > Changelog:
> >
> > v2:
> > Removed phy addresses in hwmod. Using DT instead.
> > Removed unused "ti,am4372" compatible string.
> > Use macro to set clk domain name.
> > Fixed subject format of all patches
> >
>
> Please accept these patches.

Adding Paul to Cc, I don't think Paul has seen these, probably because
get_maintainer.pl did not catch these hwmod files?

Regards,

Tony

> > Vignesh R (3):
> > ARM: OMAP2+: hwmod: AM335x/AM43x: Move am33xx_l4_hs_hwmod to
> > ipblock_data
> > ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on
> > am43x-evm
> > ARM: dts: AM43xx: add tscadc DT entries for am437x-evm and
> > am43x-epos-evm
> >
> > arch/arm/boot/dts/am4372.dtsi | 20 ++++++
> > arch/arm/boot/dts/am437x-gp-evm.dts | 8 +++
> > arch/arm/boot/dts/am43x-epos-evm.dts | 8 +++
> > .../mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 2 +
> > .../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 71 ++++++++++++++++++++++
> > arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 64 -------------------
> > arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 1 +
> > 7 files changed, 110 insertions(+), 64 deletions(-)
> >

2014-11-20 07:09:55

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on am43x-evm

On Tue, 4 Nov 2014, Vignesh R wrote:

> This patch adds hwmod support for tscadc to work on am43xx-evm. The am33xx
> hwmod structures of tscadc has been moved to ipblock_data so that it can
> be reused in am43xx. The clock domain names are separately set for am33xx
> and am43xx. Thus tscadc dt entries can now be added to am43xx board
> dt files.
>
> Signed-off-by: Vignesh R <[email protected]>

...

> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> index 6e57b8ad0db5..b92a7c7825fa 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h

...

> +static void am33xx_hwmod_clockdomain(void)
> +{
> + CLKDMNAME(am33xx_l4_hs_hwmod, "l4hs_clkdm");
> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l4_wkup_clkdm");
> +}
> +
> +static void am43xx_hwmod_clockdomain(void)
> +{
> + CLKDMNAME(am33xx_l4_hs_hwmod, "l3_clkdm");
> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l3s_tsc_clkdm");
> +}
> +

...

> + am33xx_hwmod_clockdomain();

I looked at this patch and the one before it. Is there some reason why we
need to share these two hwmods between AM33xx and AM43xx? It seems
cleaner just to add the ADC data directly to the AM43xx hwmod data file,
not touch the AM33xx data, and not add another runtime data update for the
clockdomains. Unless there's something that I'm missing?


- Paul

2014-11-20 18:23:08

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH v2 0/3] Add support for ADC on am437x-gp and am43x-epos-evm

On Fri, 14 Nov 2014, Tony Lindgren wrote:

> * Vignesh R <[email protected]> [141113 20:09]:
> >
> > On Tuesday 04 November 2014 04:45 PM, Vignesh R wrote:
> > > This series of patches enable ADC on am437x-gp-evm and am43x-epos-evm.
> > > The ADC clock hwmod data of am33xx has been moved to commom place so that
> > > both am43xx and am33xx can reuse them.
> > > tscadc DT node has been adided to am437x-gp and am43x-epos dt files.
> > > With these patches, ADC functionalities are now available on am43xx.
> > >
> > > Changelog:
> > >
> > > v2:
> > > Removed phy addresses in hwmod. Using DT instead.
> > > Removed unused "ti,am4372" compatible string.
> > > Use macro to set clk domain name.
> > > Fixed subject format of all patches
> > >
> >
> > Please accept these patches.
>
> Adding Paul to Cc, I don't think Paul has seen these, probably because
> get_maintainer.pl did not catch these hwmod files?

Yeah we didn't have top-level coverage for the data files and my
attempts to find other in-depth reviewers has so far failed. So just sent
this:

http://marc.info/?l=linux-omap&m=141650684712440&w=2

Want to take it upstream?


- Paul

2014-11-21 05:01:01

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on am43x-evm


On 11/20/2014 12:39 PM, Paul Walmsley wrote:
> On Tue, 4 Nov 2014, Vignesh R wrote:
>
>> This patch adds hwmod support for tscadc to work on am43xx-evm. The am33xx
>> hwmod structures of tscadc has been moved to ipblock_data so that it can
>> be reused in am43xx. The clock domain names are separately set for am33xx
>> and am43xx. Thus tscadc dt entries can now be added to am43xx board
>> dt files.
>>
>> Signed-off-by: Vignesh R <[email protected]>
> ...
>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
>> index 6e57b8ad0db5..b92a7c7825fa 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
>> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> ...
>
>> +static void am33xx_hwmod_clockdomain(void)
>> +{
>> + CLKDMNAME(am33xx_l4_hs_hwmod, "l4hs_clkdm");
>> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l4_wkup_clkdm");
>> +}
>> +
>> +static void am43xx_hwmod_clockdomain(void)
>> +{
>> + CLKDMNAME(am33xx_l4_hs_hwmod, "l3_clkdm");
>> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l3s_tsc_clkdm");
>> +}
>> +
> ...
>
>> + am33xx_hwmod_clockdomain();
> I looked at this patch and the one before it. Is there some reason why we
> need to share these two hwmods between AM33xx and AM43xx? It seems
> cleaner just to add the ADC data directly to the AM43xx hwmod data file,
> not touch the AM33xx data, and not add another runtime data update for the
> clockdomains. Unless there's something that I'm missing?


I wanted to reuse hwmod structures. Except for clockdomain and offset,
rest of the hwmod data are same for AM33xx and AM43xx. Adding data to AM43xx
hwmod file just duplicates these structures. Do you still want me to move them
to AM43xx file?

Regards
Vignesh


> - Paul

2014-11-21 05:26:13

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on am43x-evm

On Fri, 21 Nov 2014, Vignesh R wrote:

> On 11/20/2014 12:39 PM, Paul Walmsley wrote:
> > On Tue, 4 Nov 2014, Vignesh R wrote:
> >
> >> This patch adds hwmod support for tscadc to work on am43xx-evm. The am33xx
> >> hwmod structures of tscadc has been moved to ipblock_data so that it can
> >> be reused in am43xx. The clock domain names are separately set for am33xx
> >> and am43xx. Thus tscadc dt entries can now be added to am43xx board
> >> dt files.
> >>
> >> Signed-off-by: Vignesh R <[email protected]>
> > ...
> >
> >> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> >> index 6e57b8ad0db5..b92a7c7825fa 100644
> >> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> >> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
> > ...
> >
> >> +static void am33xx_hwmod_clockdomain(void)
> >> +{
> >> + CLKDMNAME(am33xx_l4_hs_hwmod, "l4hs_clkdm");
> >> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l4_wkup_clkdm");
> >> +}
> >> +
> >> +static void am43xx_hwmod_clockdomain(void)
> >> +{
> >> + CLKDMNAME(am33xx_l4_hs_hwmod, "l3_clkdm");
> >> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l3s_tsc_clkdm");
> >> +}
> >> +
> > ...
> >
> >> + am33xx_hwmod_clockdomain();
> > I looked at this patch and the one before it. Is there some reason why we
> > need to share these two hwmods between AM33xx and AM43xx? It seems
> > cleaner just to add the ADC data directly to the AM43xx hwmod data file,
> > not touch the AM33xx data, and not add another runtime data update for the
> > clockdomains. Unless there's something that I'm missing?
>
>
> I wanted to reuse hwmod structures. Except for clockdomain and offset,
> rest of the hwmod data are same for AM33xx and AM43xx. Adding data to AM43xx
> hwmod file just duplicates these structures. Do you still want me to move them
> to AM43xx file?

Yes. It looks to me like the number of lines saved by eliminating the
duplication is not too different than the number of lines added with the
dynamic clockdomain rewriting. Plus then we can avoid the dynamic
clockdomain rewriting that we are only doing for two IP blocks. Ideally
the hwmod data is meant to be static, not changed at runtime. For the
moment we are stuck with the CLKCTRL rewriting but I personally consider
that to be a hack.


- Paul

2014-11-21 10:17:35

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] ARM: OMAP2+: hwmod: AM335x/AM43x: add hwmod support for tscadc on am43x-evm



On Friday 21 November 2014 10:56 AM, Paul Walmsley wrote:
> On Fri, 21 Nov 2014, Vignesh R wrote:
>
>> On 11/20/2014 12:39 PM, Paul Walmsley wrote:
>>> On Tue, 4 Nov 2014, Vignesh R wrote:
>>>
>>>> This patch adds hwmod support for tscadc to work on am43xx-evm. The am33xx
>>>> hwmod structures of tscadc has been moved to ipblock_data so that it can
>>>> be reused in am43xx. The clock domain names are separately set for am33xx
>>>> and am43xx. Thus tscadc dt entries can now be added to am43xx board
>>>> dt files.
>>>>
>>>> Signed-off-by: Vignesh R <[email protected]>
>>> ...
>>>
>>>> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
>>>> index 6e57b8ad0db5..b92a7c7825fa 100644
>>>> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
>>>> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h
>>> ...
>>>
>>>> +static void am33xx_hwmod_clockdomain(void)
>>>> +{
>>>> + CLKDMNAME(am33xx_l4_hs_hwmod, "l4hs_clkdm");
>>>> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l4_wkup_clkdm");
>>>> +}
>>>> +
>>>> +static void am43xx_hwmod_clockdomain(void)
>>>> +{
>>>> + CLKDMNAME(am33xx_l4_hs_hwmod, "l3_clkdm");
>>>> + CLKDMNAME(am33xx_adc_tsc_hwmod, "l3s_tsc_clkdm");
>>>> +}
>>>> +
>>> ...
>>>
>>>> + am33xx_hwmod_clockdomain();
>>> I looked at this patch and the one before it. Is there some reason why we
>>> need to share these two hwmods between AM33xx and AM43xx? It seems
>>> cleaner just to add the ADC data directly to the AM43xx hwmod data file,
>>> not touch the AM33xx data, and not add another runtime data update for the
>>> clockdomains. Unless there's something that I'm missing?
>>
>>
>> I wanted to reuse hwmod structures. Except for clockdomain and offset,
>> rest of the hwmod data are same for AM33xx and AM43xx. Adding data to AM43xx
>> hwmod file just duplicates these structures. Do you still want me to move them
>> to AM43xx file?
>
> Yes. It looks to me like the number of lines saved by eliminating the
> duplication is not too different than the number of lines added with the
> dynamic clockdomain rewriting. Plus then we can avoid the dynamic
> clockdomain rewriting that we are only doing for two IP blocks. Ideally
> the hwmod data is meant to be static, not changed at runtime. For the
> moment we are stuck with the CLKCTRL rewriting but I personally consider
> that to be a hack.
>

Ok, will add ADC data to AM43xx and post v3.

Regards
Vignesh

>
> - Paul
>