Commit Graph

208 Commits

Author SHA1 Message Date
David Wu ee1ce3c58a pinctrl: rockchip: Use gmac1_rxd0 to select M0 and M1
Change-Id: Idba7d638d4fc55b1c163a3fa104c04345a74e51c
Signed-off-by: David Wu <david.wu@rock-chips.com>
2020-12-29 18:06:54 +08:00
Joseph Chen d7965d03e2 pinctrl: rockchip: add SPL support
CONFIG_OF_LIVE is always available in SPL and U-Boot.

Use CONFIG_IS_ENABLED(OF_LIVE) to unwind as CONFIG_OF_LIVE
in U-Boot and CONFIG_SPL_OF_LIVE in SPL.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I980579d54850ca7655b464688ba9e6bd35f24250
2020-11-27 14:05:18 +08:00
Jianqun Xu 8273b391c5 pinctrl: rockchip: a pin unrouted is invalid
Change-Id: I706b23277f33768fc7c8bcfd06e6417fe3e8a0db
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-11-19 14:50:05 +08:00
Jianqun Xu 836c6892fa pinctrl: rockchip: fix RK3568 for pull set
Change-Id: I9fa739d65caf54067f8c61142ced44f9ad9d7313
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-11-10 17:15:52 +08:00
Jianqun Xu 3f4af2112b pinctrl: rockchip: add rk3568 support
Change-Id: Ie8c3d6f6a3909ab481241b98d3af55b26c38accc
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-10-23 15:02:15 +08:00
Jianqun Xu 72832ab675 pinctrl: rockchip: add rk3308 support
Change-Id: Id2a34aa7984ee00da2bf78e55f38cf268a2ce8f3
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-08-31 16:03:47 +08:00
Jianqun Xu e20d80255b pinctrl: rockchip: add rk1808 support
Change-Id: Iac6b15651e19b7eaf6dd18339f6de6d65a3dd1ff
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-08-31 16:03:47 +08:00
Jianqun Xu 92b1d31aeb pinctrl: rockchip: add rv1126 support
Keep rv1126 support in pinctrl-rockchip.c with legency

Change-Id: I50791c3c30e6efa58d324eaef7bfc4d4aa9e440c
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-08-31 16:03:47 +08:00
Jianqun Xu b8d3e6ff7d pinctrl: rockchip: set mux route in core driver
Change-Id: Iccc880b150b1cea3cef9d2a84d14a0e82ce5c5cf
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-08-31 16:03:47 +08:00
Jianqun Xu 3624458ab0 pinctrl: rockchip: put nr_pins to pinctrl info structure
Put the nr_pins information to pinctrl info structure, instead of
calculating in probe.

Change-Id: I3af11d99ef4b0e30c306ebd99a2233cd0c6b97b5
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-08-31 16:03:47 +08:00
David Wu 5635c457ec UPSTREAM: pinctrl: rockchip: Also move common set_schmitter func into per Soc file
Only some Soc need Schmitter feature, so move the
implementation into their own files.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 79d16e45409f928c952b6935d695cd08f9db76b3)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: I41ede5737258292e27492e391cf9a981210e4a71
2020-08-31 16:03:47 +08:00
David Wu b8a0fe4c87 UPSTREAM: pinctrl: rockchip: Clean the unused type and label
As the mux/pull/drive feature implement at own file,
the type and label are not necessary.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 623aca88308b4f917f0465cd5dd1514ee781bee8)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: Idcbb3fdf4311567c599686d52926a057d1101b6b
2020-08-31 16:03:47 +08:00
David Wu cfe427fe38 UPSTREAM: pinctrl: rockchip: Special treatment for RK3288 gpio0 pins' pull
RK3288 pmu_gpio0 pull setting have no higher 16 writing corresponding
bits, need to read before write the register.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 69a38f81bb55893a8555c899319305c539226a0a)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: Ie8f94cf1a0b33a24bb32d3de8231b7f2db51ddff
2020-08-31 16:03:47 +08:00
David Wu 05a5688e53 UPSTREAM: pinctrl: rockchip: Split the common set_pull() func into per Soc
As the common set_mux func(), implement the feature at the own file
for each Soc.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 743a77373bfa22ca099b30d4ac88d95a2f98d1b6)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: Ib0de627d3aee1759965d64852bcd287785538dc0
2020-08-31 16:03:47 +08:00
David Wu 79899a49f9 UPSTREAM: pinctrl: rockchip: Special treatment for RK3288 gpio0 pins' drive strength
RK3288 pmu_gpio0 drive strength setting have no higher 16 writing
corresponding bits, need to read before write the register.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 956362c84b0422ea99da947feca2878193c26ade)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: I409107119d557b953c904b53e657685907879a3a
2020-08-31 16:03:47 +08:00
David Wu 681441e641 UPSTREAM: pinctrl: rockchip: Split the common set_drive() func into per Soc
As the common set_mux func(), implement the feature at the own file
for each Soc.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 625ab11fdae3daf346647aaba59abee804e34589)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: I07caae48cd4699aa7bbddf2edf7de6863c0a58c2
2020-08-31 16:03:47 +08:00
David Wu aa570f0140 UPSTREAM: pinctrl: rockchip: Special treatment for RK3288 gpio0 pins' iomux
RK3288 pmu_gpio0 iomux setting have no higher 16 writing corresponding
bits, need to read before write the register.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit cd8f00ce08102d2dbb350c76bbb53f7b0f804b7d)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: I7aaaf9642ee7bed6a2e9f6538a053bd6e1810dd7
2020-08-31 16:03:47 +08:00
David Wu 5f55bbd7d6 UPSTREAM: pinctrl: rockchip: Split the common set_mux() into per Soc
Such as rk3288's pins of pmu_gpio0 are a special feature, which have no
higher 16 writing corresponding bits, use common set_mux() func would
introduce more code, so implement their set_mux() in each Soc's own
file to reduce the size of code.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 54e75702c48a9757e82cbe71176c0b5ddcf6a092)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: Ifdfce706e9b1cbe94300d2bed91182033f23f301
2020-08-31 16:03:47 +08:00
David Wu 16f7081913 UPSTREAM: pinctrl: rockchip: Remove redundant spaces
Some files have the redundant spaces, remove them.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 8541beb86daf3ce7e4be9ca67859aab3dd0daefb)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: I9f621c3714260165bab0111e486a1d60ecf33c11
2020-08-31 16:03:47 +08:00
David Wu 8fa6c06288 UPSTREAM: pinctrl: rockchip: Add pull-pin-default param and remove unused param
Some Socs use the pull-pin-default config param, need to add it.
And input-enable/disable config params are not necessary, remove it.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 0a5cc3cac96dcbb1f31c9c2a3954dad702a543c1)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: Id7522a4fdd21d42d46c42e6f66b93985064fd9ab
2020-08-31 16:03:47 +08:00
David Wu 49b3d5d5ff UPSTREAM: pinctrl: rockchip: Add 32bit writing function for rk3288 gpio0 pinctrl
There are no higher 16 writing corresponding bits for pmu_gpio0's
iomux/drive/pull at rk3288, need to read the value from register
firstly. Add the flag to distinguish it from normal registers.

Signed-off-by: David Wu <david.wu@rock-chips.com>
(cherry picked from commit 502980914b2d6f9ee85a823aa3ef9ead76c0b7f2)
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>

Change-Id: Ibf0ba2d879904a06a2fb6722f5886a39c010a7f7
2020-08-31 16:03:47 +08:00
David Wu f2e4e921f0 UPSTREAM: pinctrl: rockchip: Add common rockchip pinctrl driver
Use this driver to fit all Rockchip SOCs and to support
the desired pinctrl configuration via DTS.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
(cherry picked from commit e7ae4cf27a6d5837cb5e868712cdaa61d3ceb5e0)

1. fix with error handle with pin with IOMUX_UNROUTED.
2. add get pin count operation
3. modify drivers/pinctrl/rockchip/Makefile

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Change-Id: I1a398c865eb9e9afc38c6aca5431b6546e7260a6
2020-08-31 16:03:47 +08:00
Jianqun Xu 2f6aff5865 pinctrl: rockchip: fix rk3288 nr_pins warning
Change-Id: I4631a88b5706cb8cdc190fb3432936c791e70bda
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-07-15 10:33:45 +08:00
Jianqun Xu e21613fbf5 pinctrl: rockchip: fix rk3308 nr_pins to 160
Change-Id: Ib3d1d9149d222c8fe60bbfe20bdc9f1dadbeabe8
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-07-09 20:37:05 +08:00
Jianqun Xu 13c03cb6ca pinctrl: rockchip: Covert the struct rockchip_pin_ctrl to const type
The rockchip_pin_ctrl struct is BSS data, only memset oncetime, but the
driver maybe probed several times, the nr_pins member of struct won't
to start from 0. that will cause pinctrl driver error.

Change-Id: I3d081da8bb91573126c6ee5af345ed73c85bb7af
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-07-08 14:17:51 +08:00
Jianqun Xu 33f8d8a65e pinctrl: export pinctrl_get_pins_count as generic API
Change-Id: I0c5e4977b068a09276a1d0561058679bd1791e0a
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-05-28 19:20:09 +08:00
Jianqun Xu 09989a56e1 pinctrl/rockchip: pinctrol support get_pins_count operation
Change-Id: I8459d9e21a7c95e62c053ea7848b189b714ddbfd
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-05-28 19:20:09 +08:00
Jianqun Xu 49e04eddc0 pinctrl: rockchip: rv1126 add mux_route_type flag
Change-Id: I04b8f60cac96d9a2c0bcea7b055d5324f60033d5
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-04-14 08:39:16 +08:00
Jianqun Xu cef897f0d4 pinctrl: rockchip: fix RK_GENMASK_VAL error
Change-Id: I48daafd57c96dcd2a0a8560d649daa7cb08dd4e7
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-04-14 08:30:40 +08:00
Jianqun Xu 42375b1080 pinctrl: rockchip: fix RK_GENMASK_VAL error
Change-Id: I5c6cb3ace53a86e9d8bfed0966950af3a47cd732
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-04-07 16:03:45 +08:00
Jianqun Xu d499d466a1 pinctrl: rockchip: fix rv1126 iomux
Change-Id: I2b6f129adadc26e9ccb53eb23edd816b599ef3ab
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-03-31 15:28:18 +08:00
Jianqun Xu cf04a17b62 pinctrl/rockchip: add support for rv1126
Change-Id: I177bbdf40d3becf848c054721f0986d7d3c6b1cd
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2020-03-10 16:14:40 +08:00
Jason Zhu d2e2dbd6d5 pinctrl: rockchip: use flat device tree to find the node in spl
Change-Id: I9eaa8aa17a0fad3bf9ea67746db3ed470a63a85b
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-11-11 09:46:07 +08:00
David.Wu 752032c993 pinctrl: rockchip: Add gpio3b4 io function recalculated select for RK3308B
Accroding to the datasheet, the pin of gpio3b4 needs to be
recalculated for iomux selecting.

Change-Id: I827be9a51851ee9323a133d8bded8b09e068f1b4
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-12-26 16:21:16 +08:00
Masahiro Yamada 0e00a84cde UPSTREAM: libfdt: move headers to <linux/libfdt.h> and <linux/libfdt_env.h>
Thomas reported U-Boot failed to build host tools if libfdt-devel
package is installed because tools include libfdt headers from
/usr/include/ instead of using internal ones.

This commit moves the header code:
  include/libfdt.h         -> include/linux/libfdt.h
  include/libfdt_env.h     -> include/linux/libfdt_env.h

and replaces include directives:
  #include <libfdt.h>      -> #include <linux/libfdt.h>
  #include <libfdt_env.h>  -> #include <linux/libfdt_env.h>

Change-Id: I6c0f7e50e8b571106627f25ddac008a62bd2994e
Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
2018-12-24 17:20:37 +08:00
David Wu 32c25d1fa3 pinctrl: rockchip: Add slew rate support for px30
The usage of slew rate is needed to config it at DTS,
such as:
  fast speed: slew-rate = <1>;
  slew speed: slew-rate = <0>;

Change-Id: I60ea4ddd37ca70adf1dbd504ba1c3c348e41348b
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-12-24 11:47:18 +08:00
David.Wu 2c16899d60 pinctrl: rockchip: Fix the cleaning of drv/pull type mask
Where need to clean the special mask for rockchip_perpin_drv_list
and rockchip_pull_list.

Change-Id: I98bac7768aa0570c12c947913ef2ea91ae303f95
Signed-off-by: David.Wu <david.wu@rock-chips.com>
2018-12-12 21:08:46 +08:00
David Wu d55170174a pinctrl: rockchip: Add pinctrl support for rk3308b
Change-Id: Ibf85312e909e040ef0efb120efe3f48c4a2c6ab9
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2018-11-22 17:45:16 +08:00
Jianqun Xu a2a3fc8f3a pinctrl: rockchip: Add pinctrl support for rk1808
Change-Id: Ia60accc1940ed5cb0fa04f017fa97e34dff480cb
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2018-09-25 14:11:09 +08:00
David Wu 55a89bc67a pinctrl: rockchip: Add DRV_TYPE_WRITABLE_32BIT and PULL_TYPE_WRITABLE_32BIT for rk3288 gpio0
Change-Id: Ib17e1b1c3d0aafa437014cc2cb5fb18d13319753
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-04-24 08:45:51 +08:00
David Wu 4bafc2da2d pinctrl: rockchip: Change the flag's name from IOMUX_UNMASKED to IOMUX_WRITABLE_32BIT
Using the name IOMUX_UNMASKED of flag is not so suitable, pickup the
IOMUX_WRITABLE_32BIT name. And need to clean the value when set the
iomux.

Change-Id: I3e2d69702f4669770ff933ba2c40a641a924b55e
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-04-19 10:06:58 +08:00
David Wu 8bf1bc66d9 pinctrl: rockchip: Add IOMUX_UNMASKED flag for rk3288 pmu_gpio0
There are no masked bits for pmu_gpio0 iomux, so add the IOMUX_UNMASKED
to read iomux register at first, it would not change others' bits.

Change-Id: I5a0cf5f15c90fa769c3447d4e5f5380630b10c3b
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-04-02 17:50:24 +08:00
David Wu 88a1f7ffce pinctrl: rockchip: Fix the reg offset of rk3308
Change-Id: I4f57f5eed807a60abfe4189b93a667ce13314f2c
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-03-27 16:49:06 +08:00
David Wu b3077611a6 pinctrl: rockchip: Add pinctrl support for rk3308
The most pins of rk3308 are 2bits iomux, but the banks's register
width is 0x8.

Change-Id: Iaf79232a552a5e239610bce533fe884df4a4743c
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-03-20 14:56:24 +08:00
David Wu 87f0ac5754 pinctrl: rockchip: Change the max pin entry to 30
Some case like rk3328 gmac rgmii pins has 22 pins, so
need to change the max pin entry to 30, otherwise it
make something not work.

Change-Id: I6897ce6ff995713da75c2094d857b3eb95b77204
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-02-26 17:55:49 +08:00
Kever Yang 2208cfa92d rockchip: pinctrl: convert to live dt
Use live dt api

Change-Id: Icb7d9fe52053b7436c262fbe79007e7f4394c715
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
2018-02-08 22:00:26 +08:00
Kever Yang 2d06d52c99 pinctrl-uclass: convert to use live dt
Use live dt interface for pinctrl_select_state_full()

Change-Id: I1cc892f59004a48f4f2e6adac2a17a03dbfcb81c
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
2018-02-08 21:11:01 +08:00
David Wu 793770df46 pinctrl: rockchip: Fix the uart2 & uart3 route bit of px30
Uart2 and uart3 both have routed bit, use their rx pin to
switch m0 or m1.

Change-Id: Iae64bb675a1f8cc8e54c7b798bffcf89d68fb64f
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-02-06 18:04:25 +08:00
David Wu 0d4b0063b6 pinctrl: rockchip: Clean the unused rockchip pinctrl drivers
If we used the pinctrl-rockchip driver, these code is not needed,
so remove them.

Change-Id: Ie419b40664215b4b23a97138398102745f9875e6
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-02-05 10:59:54 +08:00
David Wu 49c55878fa pinctrl: rockchip: Add common rockchip pinctrl driver
Use this drive to fit all Rockchip SOCs and to support
the desired pinctrl configuration via DTS.

Change-Id: I86b5f25feb13c92a56103aef292a492e8f2accc8
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-02-05 10:59:39 +08:00