@@ -926,19 +926,19 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
926
926
RK_MUXROUTE_PMU (0 , RK_PB5 , 4 , 0x0110 , WRITE_MASK_VAL (3 , 2 , 1 )), /* PWM1 IO mux M1 */
927
927
RK_MUXROUTE_PMU (0 , RK_PC1 , 1 , 0x0110 , WRITE_MASK_VAL (5 , 4 , 0 )), /* PWM2 IO mux M0 */
928
928
RK_MUXROUTE_PMU (0 , RK_PB6 , 4 , 0x0110 , WRITE_MASK_VAL (5 , 4 , 1 )), /* PWM2 IO mux M1 */
929
- RK_MUXROUTE_PMU (0 , RK_PB3 , 2 , 0x0300 , WRITE_MASK_VAL (0 , 0 , 0 )), /* CAN0 IO mux M0 */
929
+ RK_MUXROUTE_GRF (0 , RK_PB3 , 2 , 0x0300 , WRITE_MASK_VAL (0 , 0 , 0 )), /* CAN0 IO mux M0 */
930
930
RK_MUXROUTE_GRF (2 , RK_PA1 , 4 , 0x0300 , WRITE_MASK_VAL (0 , 0 , 1 )), /* CAN0 IO mux M1 */
931
931
RK_MUXROUTE_GRF (1 , RK_PA1 , 3 , 0x0300 , WRITE_MASK_VAL (2 , 2 , 0 )), /* CAN1 IO mux M0 */
932
932
RK_MUXROUTE_GRF (4 , RK_PC3 , 3 , 0x0300 , WRITE_MASK_VAL (2 , 2 , 1 )), /* CAN1 IO mux M1 */
933
933
RK_MUXROUTE_GRF (4 , RK_PB5 , 3 , 0x0300 , WRITE_MASK_VAL (4 , 4 , 0 )), /* CAN2 IO mux M0 */
934
934
RK_MUXROUTE_GRF (2 , RK_PB2 , 4 , 0x0300 , WRITE_MASK_VAL (4 , 4 , 1 )), /* CAN2 IO mux M1 */
935
935
RK_MUXROUTE_GRF (4 , RK_PC4 , 1 , 0x0300 , WRITE_MASK_VAL (6 , 6 , 0 )), /* HPDIN IO mux M0 */
936
- RK_MUXROUTE_PMU (0 , RK_PC2 , 2 , 0x0300 , WRITE_MASK_VAL (6 , 6 , 1 )), /* HPDIN IO mux M1 */
936
+ RK_MUXROUTE_GRF (0 , RK_PC2 , 2 , 0x0300 , WRITE_MASK_VAL (6 , 6 , 1 )), /* HPDIN IO mux M1 */
937
937
RK_MUXROUTE_GRF (3 , RK_PB1 , 3 , 0x0300 , WRITE_MASK_VAL (8 , 8 , 0 )), /* GMAC1 IO mux M0 */
938
938
RK_MUXROUTE_GRF (4 , RK_PA7 , 3 , 0x0300 , WRITE_MASK_VAL (8 , 8 , 1 )), /* GMAC1 IO mux M1 */
939
939
RK_MUXROUTE_GRF (4 , RK_PD1 , 1 , 0x0300 , WRITE_MASK_VAL (10 , 10 , 0 )), /* HDMITX IO mux M0 */
940
- RK_MUXROUTE_PMU (0 , RK_PC7 , 1 , 0x0300 , WRITE_MASK_VAL (10 , 10 , 1 )), /* HDMITX IO mux M1 */
941
- RK_MUXROUTE_PMU (0 , RK_PB6 , 1 , 0x0300 , WRITE_MASK_VAL (14 , 14 , 0 )), /* I2C2 IO mux M0 */
940
+ RK_MUXROUTE_GRF (0 , RK_PC7 , 1 , 0x0300 , WRITE_MASK_VAL (10 , 10 , 1 )), /* HDMITX IO mux M1 */
941
+ RK_MUXROUTE_GRF (0 , RK_PB6 , 1 , 0x0300 , WRITE_MASK_VAL (14 , 14 , 0 )), /* I2C2 IO mux M0 */
942
942
RK_MUXROUTE_GRF (4 , RK_PB4 , 1 , 0x0300 , WRITE_MASK_VAL (14 , 14 , 1 )), /* I2C2 IO mux M1 */
943
943
RK_MUXROUTE_GRF (1 , RK_PA0 , 1 , 0x0304 , WRITE_MASK_VAL (0 , 0 , 0 )), /* I2C3 IO mux M0 */
944
944
RK_MUXROUTE_GRF (3 , RK_PB6 , 4 , 0x0304 , WRITE_MASK_VAL (0 , 0 , 1 )), /* I2C3 IO mux M1 */
@@ -964,7 +964,7 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
964
964
RK_MUXROUTE_GRF (4 , RK_PC3 , 1 , 0x0308 , WRITE_MASK_VAL (12 , 12 , 1 )), /* PWM15 IO mux M1 */
965
965
RK_MUXROUTE_GRF (3 , RK_PD2 , 3 , 0x0308 , WRITE_MASK_VAL (14 , 14 , 0 )), /* SDMMC2 IO mux M0 */
966
966
RK_MUXROUTE_GRF (3 , RK_PA5 , 5 , 0x0308 , WRITE_MASK_VAL (14 , 14 , 1 )), /* SDMMC2 IO mux M1 */
967
- RK_MUXROUTE_PMU (0 , RK_PB5 , 2 , 0x030c , WRITE_MASK_VAL (0 , 0 , 0 )), /* SPI0 IO mux M0 */
967
+ RK_MUXROUTE_GRF (0 , RK_PB5 , 2 , 0x030c , WRITE_MASK_VAL (0 , 0 , 0 )), /* SPI0 IO mux M0 */
968
968
RK_MUXROUTE_GRF (2 , RK_PD3 , 3 , 0x030c , WRITE_MASK_VAL (0 , 0 , 1 )), /* SPI0 IO mux M1 */
969
969
RK_MUXROUTE_GRF (2 , RK_PB5 , 3 , 0x030c , WRITE_MASK_VAL (2 , 2 , 0 )), /* SPI1 IO mux M0 */
970
970
RK_MUXROUTE_GRF (3 , RK_PC3 , 3 , 0x030c , WRITE_MASK_VAL (2 , 2 , 1 )), /* SPI1 IO mux M1 */
@@ -973,8 +973,8 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
973
973
RK_MUXROUTE_GRF (4 , RK_PB3 , 4 , 0x030c , WRITE_MASK_VAL (6 , 6 , 0 )), /* SPI3 IO mux M0 */
974
974
RK_MUXROUTE_GRF (4 , RK_PC2 , 2 , 0x030c , WRITE_MASK_VAL (6 , 6 , 1 )), /* SPI3 IO mux M1 */
975
975
RK_MUXROUTE_GRF (2 , RK_PB4 , 2 , 0x030c , WRITE_MASK_VAL (8 , 8 , 0 )), /* UART1 IO mux M0 */
976
- RK_MUXROUTE_PMU ( 0 , RK_PD1 , 1 , 0x030c , WRITE_MASK_VAL (8 , 8 , 1 )), /* UART1 IO mux M1 */
977
- RK_MUXROUTE_PMU (0 , RK_PD1 , 1 , 0x030c , WRITE_MASK_VAL (10 , 10 , 0 )), /* UART2 IO mux M0 */
976
+ RK_MUXROUTE_GRF ( 3 , RK_PD6 , 4 , 0x030c , WRITE_MASK_VAL (8 , 8 , 1 )), /* UART1 IO mux M1 */
977
+ RK_MUXROUTE_GRF (0 , RK_PD1 , 1 , 0x030c , WRITE_MASK_VAL (10 , 10 , 0 )), /* UART2 IO mux M0 */
978
978
RK_MUXROUTE_GRF (1 , RK_PD5 , 2 , 0x030c , WRITE_MASK_VAL (10 , 10 , 1 )), /* UART2 IO mux M1 */
979
979
RK_MUXROUTE_GRF (1 , RK_PA1 , 2 , 0x030c , WRITE_MASK_VAL (12 , 12 , 0 )), /* UART3 IO mux M0 */
980
980
RK_MUXROUTE_GRF (3 , RK_PB7 , 4 , 0x030c , WRITE_MASK_VAL (12 , 12 , 1 )), /* UART3 IO mux M1 */
@@ -1004,13 +1004,13 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
1004
1004
RK_MUXROUTE_GRF (3 , RK_PD6 , 5 , 0x0314 , WRITE_MASK_VAL (1 , 0 , 1 )), /* PDM IO mux M1 */
1005
1005
RK_MUXROUTE_GRF (4 , RK_PA0 , 4 , 0x0314 , WRITE_MASK_VAL (1 , 0 , 1 )), /* PDM IO mux M1 */
1006
1006
RK_MUXROUTE_GRF (3 , RK_PC4 , 5 , 0x0314 , WRITE_MASK_VAL (1 , 0 , 2 )), /* PDM IO mux M2 */
1007
- RK_MUXROUTE_PMU (0 , RK_PA5 , 3 , 0x0314 , WRITE_MASK_VAL (3 , 2 , 0 )), /* PCIE20 IO mux M0 */
1007
+ RK_MUXROUTE_GRF (0 , RK_PA5 , 3 , 0x0314 , WRITE_MASK_VAL (3 , 2 , 0 )), /* PCIE20 IO mux M0 */
1008
1008
RK_MUXROUTE_GRF (2 , RK_PD0 , 4 , 0x0314 , WRITE_MASK_VAL (3 , 2 , 1 )), /* PCIE20 IO mux M1 */
1009
1009
RK_MUXROUTE_GRF (1 , RK_PB0 , 4 , 0x0314 , WRITE_MASK_VAL (3 , 2 , 2 )), /* PCIE20 IO mux M2 */
1010
- RK_MUXROUTE_PMU (0 , RK_PA4 , 3 , 0x0314 , WRITE_MASK_VAL (5 , 4 , 0 )), /* PCIE30X1 IO mux M0 */
1010
+ RK_MUXROUTE_GRF (0 , RK_PA4 , 3 , 0x0314 , WRITE_MASK_VAL (5 , 4 , 0 )), /* PCIE30X1 IO mux M0 */
1011
1011
RK_MUXROUTE_GRF (2 , RK_PD2 , 4 , 0x0314 , WRITE_MASK_VAL (5 , 4 , 1 )), /* PCIE30X1 IO mux M1 */
1012
1012
RK_MUXROUTE_GRF (1 , RK_PA5 , 4 , 0x0314 , WRITE_MASK_VAL (5 , 4 , 2 )), /* PCIE30X1 IO mux M2 */
1013
- RK_MUXROUTE_PMU (0 , RK_PA6 , 2 , 0x0314 , WRITE_MASK_VAL (7 , 6 , 0 )), /* PCIE30X2 IO mux M0 */
1013
+ RK_MUXROUTE_GRF (0 , RK_PA6 , 2 , 0x0314 , WRITE_MASK_VAL (7 , 6 , 0 )), /* PCIE30X2 IO mux M0 */
1014
1014
RK_MUXROUTE_GRF (2 , RK_PD4 , 4 , 0x0314 , WRITE_MASK_VAL (7 , 6 , 1 )), /* PCIE30X2 IO mux M1 */
1015
1015
RK_MUXROUTE_GRF (4 , RK_PC2 , 4 , 0x0314 , WRITE_MASK_VAL (7 , 6 , 2 )), /* PCIE30X2 IO mux M2 */
1016
1016
};
@@ -2436,10 +2436,19 @@ static int rockchip_get_pull(struct rockchip_pin_bank *bank, int pin_num)
2436
2436
case RK3308 :
2437
2437
case RK3368 :
2438
2438
case RK3399 :
2439
+ case RK3568 :
2439
2440
case RK3588 :
2440
2441
pull_type = bank -> pull_type [pin_num / 8 ];
2441
2442
data >>= bit ;
2442
2443
data &= (1 << RK3188_PULL_BITS_PER_PIN ) - 1 ;
2444
+ /*
2445
+ * In the TRM, pull-up being 1 for everything except the GPIO0_D3-D6,
2446
+ * where that pull up value becomes 3.
2447
+ */
2448
+ if (ctrl -> type == RK3568 && bank -> bank_num == 0 && pin_num >= 27 && pin_num <= 30 ) {
2449
+ if (data == 3 )
2450
+ data = 1 ;
2451
+ }
2443
2452
2444
2453
return rockchip_pull_list [pull_type ][data ];
2445
2454
default :
@@ -2497,7 +2506,7 @@ static int rockchip_set_pull(struct rockchip_pin_bank *bank,
2497
2506
}
2498
2507
}
2499
2508
/*
2500
- * In the TRM, pull-up being 1 for everything except the GPIO0_D0 -D6,
2509
+ * In the TRM, pull-up being 1 for everything except the GPIO0_D3 -D6,
2501
2510
* where that pull up value becomes 3.
2502
2511
*/
2503
2512
if (ctrl -> type == RK3568 && bank -> bank_num == 0 && pin_num >= 27 && pin_num <= 30 ) {
0 commit comments