riscv: dts: canaan: Add k230's pinctrl node

Add pinctrl device, containing default config for uart, pwm, iis, iic
and mmc.

Signed-off-by: Ze Huang <18771902331@163.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
This commit is contained in:
Ze Huang 2024-09-26 23:57:45 +08:00 committed by Conor Dooley
parent f7e74a96da
commit 8205ceec00
3 changed files with 328 additions and 0 deletions

View File

@ -26,3 +26,307 @@ ddr: memory@0 {
&uart0 {
status = "okay";
};
&pinctrl {
jtag_pins: jtag-pins {
jtag-tck-cfg {
pinmux = <K230_PINMUX(2, 1)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
input-enable;
bias-pull-down;
input-schmitt-enable;
};
jtag-tdi-cfg {
pinmux = <K230_PINMUX(3, 1)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
input-enable;
bias-disable;
};
jtag-tdo-cfg {
pinmux = <K230_PINMUX(4, 1)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
output-enable;
bias-disable;
};
jtag-tms-cfg {
pinmux = <K230_PINMUX(5, 1)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
input-enable;
bias-pull-up;
};
};
uart2_pins: uart2-pins {
uart2-pins-cfg {
pinmux = <K230_PINMUX(5, 3)>, /* uart2 txd */
<K230_PINMUX(6, 3)>; /* uart2 rxd */
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-disable;
};
};
pwm2_pins: pwm2-pins {
pwm2-pin-cfg {
pinmux = <K230_PINMUX(7, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-disable;
input-schmitt-enable;
};
};
pwm3_pins: pwm3-pins {
pwm3-pin-cfg {
pinmux = <K230_PINMUX(8, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-disable;
input-schmitt-enable;
};
};
pwm4_pins: pwm4-pins {
pwm4-pin-cfg {
pinmux = <K230_PINMUX(9, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-disable;
input-schmitt-enable;
};
};
iis_pins: iis-pins {
iis-clk-cfg {
pinmux = <K230_PINMUX(32, 2)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
output-enable;
bias-disable;
};
iis-ws-cfg {
pinmux = <K230_PINMUX(33, 2)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
output-enable;
bias-disable;
};
iis-din0-cfg {
pinmux = <K230_PINMUX(34, 2)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
input-enable;
bias-disable;
};
iis-dout0-cfg {
pinmux = <K230_PINMUX(35, 2)>;
slew-rate = <0>;
drive-strength = <4>;
power-source = <K230_MSC_1V8>;
output-enable;
bias-disable;
};
};
uart4_pins: uart4-pins {
uart4-txd-cfg {
pinmux = <K230_PINMUX(36, 4)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
output-enable;
bias-disable;
input-schmitt-enable;
};
uart4-rxd-cfg {
pinmux = <K230_PINMUX(37, 4)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
bias-disable;
input-schmitt-enable;
};
};
uart0_pins: uart0-pins {
uart0-txd-cfg {
pinmux = <K230_PINMUX(38, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
output-enable;
bias-disable;
input-schmitt-enable;
};
uart0-rxd-cfg {
pinmux = <K230_PINMUX(39, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
bias-disable;
input-schmitt-enable;
};
};
iic1_pins: iic1-pins {
iic1-pins-cfg {
pinmux = <K230_PINMUX(40, 2)>, /* iic1 scl */
<K230_PINMUX(41, 2)>; /* iic1 sda */
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-pull-up;
input-schmitt-enable;
};
};
iic3_pins: iic3-pins {
iic3-pins-cfg {
pinmux = <K230_PINMUX(44, 2)>, /* iic3 scl */
<K230_PINMUX(45, 2)>; /* iic3 sda */
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-pull-up;
input-schmitt-enable;
};
};
iic4_pins: iic4-pins {
iic4-pins-cfg {
pinmux = <K230_PINMUX(46, 3)>, /* iic4 scl */
<K230_PINMUX(47, 3)>; /* iic4 sda */
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-pull-up;
input-schmitt-enable;
};
};
iic0_pins: iic0-pins {
iic0-pins-cfg {
pinmux = <K230_PINMUX(48, 3)>, /* iic0 scl */
<K230_PINMUX(49, 3)>; /* iic0 sda */
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_1V8>;
input-enable;
output-enable;
bias-pull-up;
input-schmitt-enable;
};
};
uart3_pins: uart3-pins {
uart3-txd-cfg {
pinmux = <K230_PINMUX(50, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_3V3>;
output-enable;
bias-disable;
input-schmitt-enable;
};
uart3-rxd-cfg {
pinmux = <K230_PINMUX(51, 1)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_3V3>;
input-enable;
bias-disable;
input-schmitt-enable;
};
};
key_pins: key-pins {
key-pins-cfg {
pinmux = <K230_PINMUX(52, 0)>, /* key0 */
<K230_PINMUX(53, 0)>; /* key1 */
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_3V3>;
input-enable;
output-enable;
bias-disable;
input-schmitt-enable;
};
};
mmc1_pins: mmc1-pins {
mmc1-cmd-cfg {
pinmux = <K230_PINMUX(54, 2)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_3V3>;
input-enable;
output-enable;
bias-pull-up;
input-schmitt-enable;
};
mmc1-clk-cfg {
pinmux = <K230_PINMUX(55, 2)>;
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_3V3>;
output-enable;
bias-disable;
input-schmitt-enable;
};
mmc1-data-cfg {
pinmux = <K230_PINMUX(56, 2)>, /* mmc1 data0 */
<K230_PINMUX(57, 2)>, /* mmc1 data1 */
<K230_PINMUX(58, 2)>, /* mmc1 data2 */
<K230_PINMUX(59, 2)>; /* mmc1 data3 */
slew-rate = <0>;
drive-strength = <7>;
power-source = <K230_MSC_3V3>;
input-enable;
output-enable;
bias-pull-up;
input-schmitt-enable;
};
};
};

View File

@ -0,0 +1,18 @@
/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
/*
* Copyright (C) 2024 Canaan Bright Sight Co. Ltd
* Copyright (C) 2024 Ze Huang <18771902331@163.com>
*/
#ifndef _K230_PINCTRL_H
#define _K230_PINCTRL_H
#define K230_MSC_3V3 0
#define K230_MSC_1V8 1
#define BANK_VOLTAGE_DEFAULT K230_MSC_1V8
#define BANK_VOLTAGE_IO50_IO61 K230_MSC_3V3
#define K230_PINMUX(pin, mode) (((pin) << 8) | (mode))
#endif /* _K230_PINCTRL_H */

View File

@ -4,6 +4,7 @@
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include "k230-pinctrl.h"
/dts-v1/;
/ {
@ -86,6 +87,11 @@ clint: timer@f04000000 {
interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>;
};
pinctrl: pinctrl@91105000 {
compatible = "canaan,k230-pinctrl";
reg = <0x0 0x91105000 0x0 0x100>;
};
uart0: serial@91400000 {
compatible = "snps,dw-apb-uart";
reg = <0x0 0x91400000 0x0 0x1000>;