* [PATCH v1 0/2] SYSCFG Fast Mode Plus support for I2C STM32F7
@ 2018-11-16 12:20 Pierre-Yves MORDRET
2018-11-16 12:20 ` [PATCH v1 1/2] dt-bindings: i2c-stm32: " Pierre-Yves MORDRET
2018-11-16 12:20 ` [PATCH v1 2/2] i2c: i2c-stm32f7: " Pierre-Yves MORDRET
0 siblings, 2 replies; 6+ messages in thread
From: Pierre-Yves MORDRET @ 2018-11-16 12:20 UTC (permalink / raw)
To: linux-arm-kernel
Append optional bindings to update SYSCFG Fast Mode Plus bits if
Fast Mode Plus speed is selected.
---
Version history:
v1:
* Initial
---
Pierre-Yves MORDRET (2):
dt-bindings: i2c-stm32: SYSCFG Fast Mode Plus support for I2C STM32F7
i2c: i2c-stm32f7: SYSCFG Fast Mode Plus support for I2C STM32F7
.../devicetree/bindings/i2c/i2c-stm32.txt | 6 ++++
drivers/i2c/busses/i2c-stm32f7.c | 37 ++++++++++++++++++++--
2 files changed, 40 insertions(+), 3 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v1 1/2] dt-bindings: i2c-stm32: SYSCFG Fast Mode Plus support for I2C STM32F7 2018-11-16 12:20 [PATCH v1 0/2] SYSCFG Fast Mode Plus support for I2C STM32F7 Pierre-Yves MORDRET @ 2018-11-16 12:20 ` Pierre-Yves MORDRET 2018-11-17 16:06 ` Rob Herring 2018-11-16 12:20 ` [PATCH v1 2/2] i2c: i2c-stm32f7: " Pierre-Yves MORDRET 1 sibling, 1 reply; 6+ messages in thread From: Pierre-Yves MORDRET @ 2018-11-16 12:20 UTC (permalink / raw) To: linux-arm-kernel Append optional bindings to update SYSCFG Fast Mode Plus bits if Fast Mode Plus speed is selected. Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com> --- Version history: v1: * Initial --- --- Documentation/devicetree/bindings/i2c/i2c-stm32.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/i2c/i2c-stm32.txt b/Documentation/devicetree/bindings/i2c/i2c-stm32.txt index 3b54899..69240e1 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-stm32.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-stm32.txt @@ -26,6 +26,11 @@ Optional properties : - i2c-scl-falling-time-ns : Only for STM32F7, I2C SCL Falling time for the board (default: 10) I2C Timings are derived from these 2 values +- st,syscfg-fmp: Only for STM32F7, use to set Fast Mode Plus bit within SYSCFG + whether Fast Mode Plus speed is selected by slave. + 1st cell : phandle to syscfg + 2nd cell : register offset within SYSCFG + 3rd cell : register bitmask for FMP bit Example : @@ -53,4 +58,5 @@ Example : clocks = <&rcc 1 CLK_I2C1>; pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>; pinctrl-names = "default"; + st,syscfg-fmp = <&syscfg 0x4 0x1>; }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v1 1/2] dt-bindings: i2c-stm32: SYSCFG Fast Mode Plus support for I2C STM32F7 2018-11-16 12:20 ` [PATCH v1 1/2] dt-bindings: i2c-stm32: " Pierre-Yves MORDRET @ 2018-11-17 16:06 ` Rob Herring 0 siblings, 0 replies; 6+ messages in thread From: Rob Herring @ 2018-11-17 16:06 UTC (permalink / raw) To: linux-arm-kernel On Fri, 16 Nov 2018 13:20:21 +0100, Pierre-Yves MORDRET wrote: > Append optional bindings to update SYSCFG Fast Mode Plus bits if > Fast Mode Plus speed is selected. > > Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com> > --- > Version history: > v1: > * Initial > --- > --- > Documentation/devicetree/bindings/i2c/i2c-stm32.txt | 6 ++++++ > 1 file changed, 6 insertions(+) > Reviewed-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 2/2] i2c: i2c-stm32f7: SYSCFG Fast Mode Plus support for I2C STM32F7 2018-11-16 12:20 [PATCH v1 0/2] SYSCFG Fast Mode Plus support for I2C STM32F7 Pierre-Yves MORDRET 2018-11-16 12:20 ` [PATCH v1 1/2] dt-bindings: i2c-stm32: " Pierre-Yves MORDRET @ 2018-11-16 12:20 ` Pierre-Yves MORDRET 2018-11-18 7:05 ` kbuild test robot 2018-11-18 7:08 ` kbuild test robot 1 sibling, 2 replies; 6+ messages in thread From: Pierre-Yves MORDRET @ 2018-11-16 12:20 UTC (permalink / raw) To: linux-arm-kernel Read SYSCFG bindings to set Fast Mode Plus bits if Fast Mode Plus speed is selected. Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com> --- Version history: v1: * Initial --- --- drivers/i2c/busses/i2c-stm32f7.c | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c index 62d023e..8e381b7 100644 --- a/drivers/i2c/busses/i2c-stm32f7.c +++ b/drivers/i2c/busses/i2c-stm32f7.c @@ -21,6 +21,7 @@ #include <linux/interrupt.h> #include <linux/io.h> #include <linux/iopoll.h> +#include <linux/mfd/syscon.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_address.h> @@ -276,6 +277,7 @@ struct stm32f7_i2c_msg { * slave) * @dma: dma data * @use_dma: boolean to know if dma is used in the current transfer + * @regmap: holds SYSCFG phandle for Fast Mode Plus bits */ struct stm32f7_i2c_dev { struct i2c_adapter adap; @@ -296,6 +298,7 @@ struct stm32f7_i2c_dev { bool master_mode; struct stm32_i2c_dma *dma; bool use_dma; + struct regmap *regmap; }; /** @@ -1763,6 +1766,30 @@ static int stm32f7_i2c_unreg_slave(struct i2c_client *slave) return 0; } +static int stm32f7_i2c_setup_fm_plus_bits(struct platform_device *pdev, + struct stm32f7_i2c_dev *i2c_dev) +{ + struct device_node *np = pdev->dev.of_node; + int ret; + u32 reg, mask; + + i2c_dev->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscfg-fmp"); + if (IS_ERR(i2c_dev->regmap)) { + /* Optional */ + return 0; + } + + ret = of_property_read_u32_index(np, "st,syscfg-fmp", 1, ®); + if (ret) + return ret; + + ret = of_property_read_u32_index(np, "st,syscfg-fmp", 2, &mask); + if (ret) + return ret; + + return regmap_update_bits(i2c_dev->regmap, reg, mask, mask); +} + static u32 stm32f7_i2c_func(struct i2c_adapter *adap) { return I2C_FUNC_I2C | I2C_FUNC_10BIT_ADDR | I2C_FUNC_SLAVE | @@ -1828,12 +1855,16 @@ static int stm32f7_i2c_probe(struct platform_device *pdev) i2c_dev->speed = STM32_I2C_SPEED_STANDARD; ret = device_property_read_u32(&pdev->dev, "clock-frequency", &clk_rate); - if (!ret && clk_rate >= 1000000) + if (!ret && clk_rate >= 1000000) { i2c_dev->speed = STM32_I2C_SPEED_FAST_PLUS; - else if (!ret && clk_rate >= 400000) + ret = stm32f7_i2c_setup_fm_plus_bits(pdev, i2c_dev); + if (ret) + goto clk_free; + } else if (!ret && clk_rate >= 400000) { i2c_dev->speed = STM32_I2C_SPEED_FAST; - else if (!ret && clk_rate >= 100000) + } else if (!ret && clk_rate >= 100000) { i2c_dev->speed = STM32_I2C_SPEED_STANDARD; + } rst = devm_reset_control_get(&pdev->dev, NULL); if (IS_ERR(rst)) { -- 2.7.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v1 2/2] i2c: i2c-stm32f7: SYSCFG Fast Mode Plus support for I2C STM32F7 2018-11-16 12:20 ` [PATCH v1 2/2] i2c: i2c-stm32f7: " Pierre-Yves MORDRET @ 2018-11-18 7:05 ` kbuild test robot 2018-11-18 7:08 ` kbuild test robot 1 sibling, 0 replies; 6+ messages in thread From: kbuild test robot @ 2018-11-18 7:05 UTC (permalink / raw) To: linux-arm-kernel Hi Pierre-Yves, I love your patch! Yet something to improve: [auto build test ERROR on wsa/i2c/for-next] [also build test ERROR on v4.20-rc2 next-20181116] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Pierre-Yves-MORDRET/SYSCFG-Fast-Mode-Plus-support-for-I2C-STM32F7/20181118-135056 base: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-next config: s390-allmodconfig (attached as .config) compiler: s390x-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=s390 All errors (new ones prefixed by >>): drivers/i2c/busses/i2c-stm32f7.c: In function 'stm32f7_i2c_setup_fm_plus_bits': >> drivers/i2c/busses/i2c-stm32f7.c:1790:9: error: implicit declaration of function 'regmap_update_bits'; did you mean 'set_pgste_bits'? [-Werror=implicit-function-declaration] return regmap_update_bits(i2c_dev->regmap, reg, mask, mask); ^~~~~~~~~~~~~~~~~~ set_pgste_bits cc1: some warnings being treated as errors vim +1790 drivers/i2c/busses/i2c-stm32f7.c 1768 1769 static int stm32f7_i2c_setup_fm_plus_bits(struct platform_device *pdev, 1770 struct stm32f7_i2c_dev *i2c_dev) 1771 { 1772 struct device_node *np = pdev->dev.of_node; 1773 int ret; 1774 u32 reg, mask; 1775 1776 i2c_dev->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscfg-fmp"); 1777 if (IS_ERR(i2c_dev->regmap)) { 1778 /* Optional */ 1779 return 0; 1780 } 1781 1782 ret = of_property_read_u32_index(np, "st,syscfg-fmp", 1, ®); 1783 if (ret) 1784 return ret; 1785 1786 ret = of_property_read_u32_index(np, "st,syscfg-fmp", 2, &mask); 1787 if (ret) 1788 return ret; 1789 > 1790 return regmap_update_bits(i2c_dev->regmap, reg, mask, mask); 1791 } 1792 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation -------------- next part -------------- A non-text attachment was scrubbed... Name: .config.gz Type: application/gzip Size: 52103 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20181118/0e97a6da/attachment-0001.gz> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 2/2] i2c: i2c-stm32f7: SYSCFG Fast Mode Plus support for I2C STM32F7 2018-11-16 12:20 ` [PATCH v1 2/2] i2c: i2c-stm32f7: " Pierre-Yves MORDRET 2018-11-18 7:05 ` kbuild test robot @ 2018-11-18 7:08 ` kbuild test robot 1 sibling, 0 replies; 6+ messages in thread From: kbuild test robot @ 2018-11-18 7:08 UTC (permalink / raw) To: linux-arm-kernel Hi Pierre-Yves, I love your patch! Yet something to improve: [auto build test ERROR on wsa/i2c/for-next] [also build test ERROR on v4.20-rc2 next-20181116] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Pierre-Yves-MORDRET/SYSCFG-Fast-Mode-Plus-support-for-I2C-STM32F7/20181118-135056 base: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-next config: xtensa-allmodconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 8.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=8.1.0 make.cross ARCH=xtensa All errors (new ones prefixed by >>): drivers/i2c//busses/i2c-stm32f7.c: In function 'stm32f7_i2c_setup_fm_plus_bits': >> drivers/i2c//busses/i2c-stm32f7.c:1790:9: error: implicit declaration of function 'regmap_update_bits'; did you mean 'file_update_time'? [-Werror=implicit-function-declaration] return regmap_update_bits(i2c_dev->regmap, reg, mask, mask); ^~~~~~~~~~~~~~~~~~ file_update_time cc1: some warnings being treated as errors vim +1790 drivers/i2c//busses/i2c-stm32f7.c 1768 1769 static int stm32f7_i2c_setup_fm_plus_bits(struct platform_device *pdev, 1770 struct stm32f7_i2c_dev *i2c_dev) 1771 { 1772 struct device_node *np = pdev->dev.of_node; 1773 int ret; 1774 u32 reg, mask; 1775 1776 i2c_dev->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscfg-fmp"); 1777 if (IS_ERR(i2c_dev->regmap)) { 1778 /* Optional */ 1779 return 0; 1780 } 1781 1782 ret = of_property_read_u32_index(np, "st,syscfg-fmp", 1, ®); 1783 if (ret) 1784 return ret; 1785 1786 ret = of_property_read_u32_index(np, "st,syscfg-fmp", 2, &mask); 1787 if (ret) 1788 return ret; 1789 > 1790 return regmap_update_bits(i2c_dev->regmap, reg, mask, mask); 1791 } 1792 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation -------------- next part -------------- A non-text attachment was scrubbed... Name: .config.gz Type: application/gzip Size: 55652 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20181118/608c3092/attachment-0001.gz> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-11-18 7:08 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-11-16 12:20 [PATCH v1 0/2] SYSCFG Fast Mode Plus support for I2C STM32F7 Pierre-Yves MORDRET 2018-11-16 12:20 ` [PATCH v1 1/2] dt-bindings: i2c-stm32: " Pierre-Yves MORDRET 2018-11-17 16:06 ` Rob Herring 2018-11-16 12:20 ` [PATCH v1 2/2] i2c: i2c-stm32f7: " Pierre-Yves MORDRET 2018-11-18 7:05 ` kbuild test robot 2018-11-18 7:08 ` kbuild test robot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).