Message ID | 1516286980-8603-3-git-send-email-gabriel.fernandez@st.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
SGkgR2FicmllbCwNCg0KVGVzdGVkIHN1Y2Nlc3NmdWxseSBvbiBmNDY5IGRpc2NvIGJvYXJkLg0K DQpUZXN0ZWQtYnk6IFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+DQoNCk1h bnkgdGhhbmtzLA0KUGhpbGlwcGUgOi0pDQoNCk9uIDAxLzE4LzIwMTggMDM6NDkgUE0sIGdhYnJp ZWwuZmVybmFuZGV6QHN0LmNvbSB3cm90ZToNCj4gRnJvbTogR2FicmllbCBGZXJuYW5kZXogPGdh YnJpZWwuZmVybmFuZGV6QHN0LmNvbT4NCj4gDQo+IFRoaXMgcGF0Y2ggYWRkcyBEU0kgY2xvY2sg Zm9yIFNUTTMyRjQ2OSBib2FyZA0KPiANCj4gU2lnbmVkLW9mZi1ieTogR2FicmllbCBGZXJuYW5k ZXogPGdhYnJpZWwuZmVybmFuZGV6QHN0LmNvbT4NCj4gLS0tDQo+ICAgZHJpdmVycy9jbGsvY2xr LXN0bTMyZjQuYyAgICAgICAgICAgICAgICAgfCAxMSArKysrKysrKysrLQ0KPiAgIGluY2x1ZGUv ZHQtYmluZGluZ3MvY2xvY2svc3RtMzJmeC1jbG9jay5oIHwgIDMgKystDQo+ICAgMiBmaWxlcyBj aGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2xrL2Nsay1zdG0zMmY0LmMgYi9kcml2ZXJzL2Nsay9jbGstc3RtMzJmNC5j DQo+IGluZGV4IGRhNDRmOGQuLjNjMjg3OTggMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY2xrL2Ns ay1zdG0zMmY0LmMNCj4gKysrIGIvZHJpdmVycy9jbGsvY2xrLXN0bTMyZjQuYw0KPiBAQCAtNTIx LDcgKzUyMSw3IEBAIHN0cnVjdCBzdG0zMmY0X3BsbF9kYXRhIHsNCj4gICB9Ow0KPiAgIA0KPiAg IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtMzJmNF9wbGxfZGF0YSBzdG0zMmY0NjlfcGxsW01BWF9Q TExfRElWXSA9IHsNCj4gLQl7IFBMTCwJICAgNTAsIHsgInBsbCIsCSAgICAgInBsbC1xIiwgICAg TlVMTAkgICAgfSB9LA0KPiArCXsgUExMLAkgICA1MCwgeyAicGxsIiwJICAgICAicGxsLXEiLCAg ICAicGxsLXIiICAgIH0gfSwNCj4gICAJeyBQTExfSTJTLCA1MCwgeyAicGxsaTJzLXAiLCAicGxs aTJzLXEiLCAicGxsaTJzLXIiIH0gfSwNCj4gICAJeyBQTExfU0FJLCA1MCwgeyAicGxsc2FpLXAi LCAicGxsc2FpLXEiLCAicGxsc2FpLXIiIH0gfSwNCj4gICB9Ow0KPiBAQCAtMTA0Nyw2ICsxMDQ3 LDggQEAgc3RhdGljIHN0cnVjdCBjbGtfaHcgKnN0bTMyX3JlZ2lzdGVyX2NjbGsoc3RydWN0IGRl dmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLA0KPiAgIAkibm8tY2xvY2siLCAibHNlIiwgImxz aSIsICJoc2UtcnRjIg0KPiAgIH07DQo+ICAgDQo+ICtzdGF0aWMgY29uc3QgY2hhciAqZHNpX3Bh cmVudFsyXSA9IHsgTlVMTCwgInBsbC1yIiB9Ow0KPiArDQo+ICAgc3RhdGljIGNvbnN0IGNoYXIg KmxjZF9wYXJlbnRbMV0gPSB7ICJwbGxzYWktci1kaXYiIH07DQo+ICAgDQo+ICAgc3RhdGljIGNv bnN0IGNoYXIgKmkyc19wYXJlbnRzWzJdID0geyAicGxsaTJzLXIiLCBOVUxMIH07DQo+IEBAIC0x MTU2LDYgKzExNTgsMTIgQEAgc3RydWN0IHN0bTMyZjRfY2xrX2RhdGEgew0KPiAgIAkJTk9fR0FU RSwgMCwNCj4gICAJCTANCj4gICAJfSwNCj4gKwl7DQo+ICsJCUNMS19GNDY5X0RTSSwgImRzaSIs IGRzaV9wYXJlbnQsIEFSUkFZX1NJWkUoZHNpX3BhcmVudCksDQo+ICsJCVNUTTMyRjRfUkNDX0RD S0NGR1IsIDI5LCAxLA0KPiArCQlTVE0zMkY0X1JDQ19BUEIyRU5SLCAyNywNCj4gKwkJQ0xLX1NF VF9SQVRFX1BBUkVOVCB8IENMS19TRVRfUkFURV9OT19SRVBBUkVOVA0KPiArCX0sDQo+ICAgfTsN Cj4gICANCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHN0bTMyX2F1eF9jbGsgc3RtMzJmNzQ2X2F1 eF9jbGtbXSA9IHsNCj4gQEAgLTE0NTAsNiArMTQ1OCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBz dG0zMmY0X3JjY19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+ICAgCXN0bTMyZjRfZ2F0 ZV9tYXAgPSBkYXRhLT5nYXRlc19tYXA7DQo+ICAgDQo+ICAgCWhzZV9jbGsgPSBvZl9jbGtfZ2V0 X3BhcmVudF9uYW1lKG5wLCAwKTsNCj4gKwlkc2lfcGFyZW50WzBdID0gaHNlX2NsazsNCj4gICAN Cj4gICAJaTJzX2luX2NsayA9IG9mX2Nsa19nZXRfcGFyZW50X25hbWUobnAsIDEpOw0KPiAgIA0K PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdG0zMmZ4LWNsb2NrLmgg Yi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0bTMyZngtY2xvY2suaA0KPiBpbmRleCA0ZDUy M2IwLi41OGQ4YjUxIDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0 bTMyZngtY2xvY2suaA0KPiArKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0bTMyZngt Y2xvY2suaA0KPiBAQCAtMzUsOCArMzUsOSBAQA0KPiAgICNkZWZpbmUgQ0xLX1NBSVFfUERJVgkJ MTMNCj4gICAjZGVmaW5lIENMS19IU0kJCQkxNA0KPiAgICNkZWZpbmUgQ0xLX1NZU0NMSwkJMTUN Cj4gKyNkZWZpbmUgQ0xLX0Y0NjlfRFNJCQkxNg0KPiAgIA0KPiAtI2RlZmluZSBFTkRfUFJJTUFS WV9DTEsJCTE2DQo+ICsjZGVmaW5lIEVORF9QUklNQVJZX0NMSwkJMTcNCj4gICANCj4gICAjZGVm aW5lIENMS19IRE1JX0NFQwkJMTYNCj4gICAjZGVmaW5lIENMS19TUERJRgkJMTcNCj4g -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jan 18, 2018 at 03:49:40PM +0100, gabriel.fernandez@st.com wrote: > From: Gabriel Fernandez <gabriel.fernandez@st.com> > > This patch adds DSI clock for STM32F469 board > > Signed-off-by: Gabriel Fernandez <gabriel.fernandez@st.com> > --- > drivers/clk/clk-stm32f4.c | 11 ++++++++++- > include/dt-bindings/clock/stm32fx-clock.h | 3 ++- > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c > index da44f8d..3c28798 100644 > --- a/drivers/clk/clk-stm32f4.c > +++ b/drivers/clk/clk-stm32f4.c > @@ -521,7 +521,7 @@ struct stm32f4_pll_data { > }; > > static const struct stm32f4_pll_data stm32f469_pll[MAX_PLL_DIV] = { > - { PLL, 50, { "pll", "pll-q", NULL } }, > + { PLL, 50, { "pll", "pll-q", "pll-r" } }, > { PLL_I2S, 50, { "plli2s-p", "plli2s-q", "plli2s-r" } }, > { PLL_SAI, 50, { "pllsai-p", "pllsai-q", "pllsai-r" } }, > }; > @@ -1047,6 +1047,8 @@ static struct clk_hw *stm32_register_cclk(struct device *dev, const char *name, > "no-clock", "lse", "lsi", "hse-rtc" > }; > > +static const char *dsi_parent[2] = { NULL, "pll-r" }; > + > static const char *lcd_parent[1] = { "pllsai-r-div" }; > > static const char *i2s_parents[2] = { "plli2s-r", NULL }; > @@ -1156,6 +1158,12 @@ struct stm32f4_clk_data { > NO_GATE, 0, > 0 > }, > + { > + CLK_F469_DSI, "dsi", dsi_parent, ARRAY_SIZE(dsi_parent), > + STM32F4_RCC_DCKCFGR, 29, 1, > + STM32F4_RCC_APB2ENR, 27, > + CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT > + }, > }; > > static const struct stm32_aux_clk stm32f746_aux_clk[] = { > @@ -1450,6 +1458,7 @@ static void __init stm32f4_rcc_init(struct device_node *np) > stm32f4_gate_map = data->gates_map; > > hse_clk = of_clk_get_parent_name(np, 0); > + dsi_parent[0] = hse_clk; > > i2s_in_clk = of_clk_get_parent_name(np, 1); > > diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h > index 4d523b0..58d8b51 100644 > --- a/include/dt-bindings/clock/stm32fx-clock.h > +++ b/include/dt-bindings/clock/stm32fx-clock.h > @@ -35,8 +35,9 @@ > #define CLK_SAIQ_PDIV 13 > #define CLK_HSI 14 > #define CLK_SYSCLK 15 > +#define CLK_F469_DSI 16 > > -#define END_PRIMARY_CLK 16 > +#define END_PRIMARY_CLK 17 > > #define CLK_HDMI_CEC 16 > #define CLK_SPDIF 17 This looks suspicious. What's the relationship of these clocks? Rob -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Rob, Thanks for reviewing. On 01/29/2018 07:56 PM, Rob Herring wrote: > On Thu, Jan 18, 2018 at 03:49:40PM +0100, gabriel.fernandez@st.com wrote: >> From: Gabriel Fernandez <gabriel.fernandez@st.com> >> >> This patch adds DSI clock for STM32F469 board >> >> Signed-off-by: Gabriel Fernandez <gabriel.fernandez@st.com> >> --- >> drivers/clk/clk-stm32f4.c | 11 ++++++++++- >> include/dt-bindings/clock/stm32fx-clock.h | 3 ++- >> 2 files changed, 12 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c >> index da44f8d..3c28798 100644 >> --- a/drivers/clk/clk-stm32f4.c >> +++ b/drivers/clk/clk-stm32f4.c >> @@ -521,7 +521,7 @@ struct stm32f4_pll_data { >> }; >> >> static const struct stm32f4_pll_data stm32f469_pll[MAX_PLL_DIV] = { >> - { PLL, 50, { "pll", "pll-q", NULL } }, >> + { PLL, 50, { "pll", "pll-q", "pll-r" } }, >> { PLL_I2S, 50, { "plli2s-p", "plli2s-q", "plli2s-r" } }, >> { PLL_SAI, 50, { "pllsai-p", "pllsai-q", "pllsai-r" } }, >> }; >> @@ -1047,6 +1047,8 @@ static struct clk_hw *stm32_register_cclk(struct device *dev, const char *name, >> "no-clock", "lse", "lsi", "hse-rtc" >> }; >> >> +static const char *dsi_parent[2] = { NULL, "pll-r" }; >> + >> static const char *lcd_parent[1] = { "pllsai-r-div" }; >> >> static const char *i2s_parents[2] = { "plli2s-r", NULL }; >> @@ -1156,6 +1158,12 @@ struct stm32f4_clk_data { >> NO_GATE, 0, >> 0 >> }, >> + { >> + CLK_F469_DSI, "dsi", dsi_parent, ARRAY_SIZE(dsi_parent), >> + STM32F4_RCC_DCKCFGR, 29, 1, >> + STM32F4_RCC_APB2ENR, 27, >> + CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT >> + }, >> }; >> >> static const struct stm32_aux_clk stm32f746_aux_clk[] = { >> @@ -1450,6 +1458,7 @@ static void __init stm32f4_rcc_init(struct device_node *np) >> stm32f4_gate_map = data->gates_map; >> >> hse_clk = of_clk_get_parent_name(np, 0); >> + dsi_parent[0] = hse_clk; >> >> i2s_in_clk = of_clk_get_parent_name(np, 1); >> >> diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h >> index 4d523b0..58d8b51 100644 >> --- a/include/dt-bindings/clock/stm32fx-clock.h >> +++ b/include/dt-bindings/clock/stm32fx-clock.h >> @@ -35,8 +35,9 @@ >> #define CLK_SAIQ_PDIV 13 >> #define CLK_HSI 14 >> #define CLK_SYSCLK 15 >> +#define CLK_F469_DSI 16 >> >> -#define END_PRIMARY_CLK 16 >> +#define END_PRIMARY_CLK 17 >> >> #define CLK_HDMI_CEC 16 >> #define CLK_SPDIF 17 > This looks suspicious. What's the relationship of these clocks? I have just added CLK_F469_DSI in the binding, and shifted the end of primary clock for F4 clocks. 'CLK_F469_DSI' binding is only used for STM32F469 and not for STM32F746 (that why CLK_HDMI_CEC can use the index 16) BR Gabriel. > > Rob
diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c index da44f8d..3c28798 100644 --- a/drivers/clk/clk-stm32f4.c +++ b/drivers/clk/clk-stm32f4.c @@ -521,7 +521,7 @@ struct stm32f4_pll_data { }; static const struct stm32f4_pll_data stm32f469_pll[MAX_PLL_DIV] = { - { PLL, 50, { "pll", "pll-q", NULL } }, + { PLL, 50, { "pll", "pll-q", "pll-r" } }, { PLL_I2S, 50, { "plli2s-p", "plli2s-q", "plli2s-r" } }, { PLL_SAI, 50, { "pllsai-p", "pllsai-q", "pllsai-r" } }, }; @@ -1047,6 +1047,8 @@ static struct clk_hw *stm32_register_cclk(struct device *dev, const char *name, "no-clock", "lse", "lsi", "hse-rtc" }; +static const char *dsi_parent[2] = { NULL, "pll-r" }; + static const char *lcd_parent[1] = { "pllsai-r-div" }; static const char *i2s_parents[2] = { "plli2s-r", NULL }; @@ -1156,6 +1158,12 @@ struct stm32f4_clk_data { NO_GATE, 0, 0 }, + { + CLK_F469_DSI, "dsi", dsi_parent, ARRAY_SIZE(dsi_parent), + STM32F4_RCC_DCKCFGR, 29, 1, + STM32F4_RCC_APB2ENR, 27, + CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT + }, }; static const struct stm32_aux_clk stm32f746_aux_clk[] = { @@ -1450,6 +1458,7 @@ static void __init stm32f4_rcc_init(struct device_node *np) stm32f4_gate_map = data->gates_map; hse_clk = of_clk_get_parent_name(np, 0); + dsi_parent[0] = hse_clk; i2s_in_clk = of_clk_get_parent_name(np, 1); diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h index 4d523b0..58d8b51 100644 --- a/include/dt-bindings/clock/stm32fx-clock.h +++ b/include/dt-bindings/clock/stm32fx-clock.h @@ -35,8 +35,9 @@ #define CLK_SAIQ_PDIV 13 #define CLK_HSI 14 #define CLK_SYSCLK 15 +#define CLK_F469_DSI 16 -#define END_PRIMARY_CLK 16 +#define END_PRIMARY_CLK 17 #define CLK_HDMI_CEC 16 #define CLK_SPDIF 17