Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'hisi-arm64-dt-for-4.13-v2' of git://github.com/hisilicon/linux-hisi into next/dt64

ARM64: DT: Hisilicon SoC DT updates for 4.13

- Add and update Hi3660-Hikey960 board, Hi3660 PCIe RC, Hi6421v530 MFD and
Hi3660 MMC binding
- Add and refine devices support for Hi3660-Hikey 960 including clock, reset,
I2C, GPIO, UART, Bluetooth, RTC, Power Key, LED, SPI, timer, PMIC, regulator,
sd/sdio and WiFi
- Add k3-dma and i2s/hdmi audio support based on audio-card-graph method for
Hikey board

* tag 'hisi-arm64-dt-for-4.13-v2' of git://github.com/hisilicon/linux-hisi: (21 commits)
arm64: dts: hi6220: Add k3-dma and i2s/hdmi audio support
arm64: dts: hi3660-hikey960: add nodes for WiFi
arm64: dts: hi3660: add sd/sdio device nodes
dt-bindings: mmc: dw_mmc-k3: add document of hi3660 mmc
arm64: dts: hikey960: add device node for pmic and regulators
dt-bindings: mfd: hi6421: Add hi6421v530 compatible string
arm64: dts: hisi: add kirin pcie node
dt-bindings: PCI: hisi: Add document for PCIe of Kirin SoCs
arm64: dts: hi3660: add sp804 timer node
arm64: dts: hi3660: add spi device nodes
arm64: dts: hikey960: add LED nodes
arm64: dts: hi3660: add power key dts node
arm64: dts: hi3660: Add pl031 rtc node
arm64: dts: hikey960: add WL1837 Bluetooth device node
arm64: dts: hi3660: Add uarts nodes
arm64: dts: hi3660: add gpio dtsi file for Hisilicon Hi3660 SOC
arm64: dts: Add I2C nodes for Hi3660
arm64: dts: hi3660: add resources for clock and reset
arm64: dts: hikey960: pinctrl: add more pinmux and pinconfig
arm64: dts: hisilicon: update compatible string for hikey960
...

Signed-off-by: Olof Johansson <olof@lixom.net>

+1718 -54
+4
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
··· 4 4 Required root node properties: 5 5 - compatible = "hisilicon,hi3660"; 6 6 7 + HiKey960 Board 8 + Required root node properties: 9 + - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660"; 10 + 7 11 Hi3798cv200 SoC 8 12 Required root node properties: 9 13 - compatible = "hisilicon,hi3798cv200";
+3 -1
Documentation/devicetree/bindings/mfd/hi6421.txt
··· 1 1 * HI6421 Multi-Functional Device (MFD), by HiSilicon Ltd. 2 2 3 3 Required parent device properties: 4 - - compatible : contains "hisilicon,hi6421-pmic"; 4 + - compatible : One of the following chip-specific strings: 5 + "hisilicon,hi6421-pmic"; 6 + "hisilicon,hi6421v530-pmic"; 5 7 - reg : register range space of hi6421; 6 8 7 9 Supported Hi6421 sub-devices include:
+1
Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
··· 12 12 Required Properties: 13 13 14 14 * compatible: should be one of the following. 15 + - "hisilicon,hi3660-dw-mshc": for controllers with hi3660 specific extensions. 15 16 - "hisilicon,hi4511-dw-mshc": for controllers with hi4511 specific extensions. 16 17 - "hisilicon,hi6220-dw-mshc": for controllers with hi6220 specific extensions. 17 18
+50
Documentation/devicetree/bindings/pci/kirin-pcie.txt
··· 1 + HiSilicon Kirin SoCs PCIe host DT description 2 + 3 + Kirin PCIe host controller is based on Designware PCI core. 4 + It shares common functions with PCIe Designware core driver 5 + and inherits common properties defined in 6 + Documentation/devicetree/bindings/pci/designware-pci.txt. 7 + 8 + Additional properties are described here: 9 + 10 + Required properties 11 + - compatible: 12 + "hisilicon,kirin960-pcie" for PCIe of Kirin960 SoC 13 + - reg: Should contain rc_dbi, apb, phy, config registers location and length. 14 + - reg-names: Must include the following entries: 15 + "dbi": controller configuration registers; 16 + "apb": apb Ctrl register defined by Kirin; 17 + "phy": apb PHY register defined by Kirin; 18 + "config": PCIe configuration space registers. 19 + - reset-gpios: The gpio to generate PCIe perst assert and deassert signal. 20 + 21 + Optional properties: 22 + 23 + Example based on kirin960: 24 + 25 + pcie@f4000000 { 26 + compatible = "hisilicon,kirin-pcie"; 27 + reg = <0x0 0xf4000000 0x0 0x1000>, <0x0 0xff3fe000 0x0 0x1000>, 28 + <0x0 0xf3f20000 0x0 0x40000>, <0x0 0xF4000000 0 0x2000>; 29 + reg-names = "dbi","apb","phy", "config"; 30 + bus-range = <0x0 0x1>; 31 + #address-cells = <3>; 32 + #size-cells = <2>; 33 + device_type = "pci"; 34 + ranges = <0x02000000 0x0 0x00000000 0x0 0xf5000000 0x0 0x2000000>; 35 + num-lanes = <1>; 36 + #interrupt-cells = <1>; 37 + interrupt-map-mask = <0xf800 0 0 7>; 38 + interrupt-map = <0x0 0 0 1 &gic 0 0 0 282 4>, 39 + <0x0 0 0 2 &gic 0 0 0 283 4>, 40 + <0x0 0 0 3 &gic 0 0 0 284 4>, 41 + <0x0 0 0 4 &gic 0 0 0 285 4>; 42 + clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 43 + <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 44 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 45 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 46 + <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 47 + clock-names = "pcie_phy_ref", "pcie_aux", 48 + "pcie_apb_phy", "pcie_apb_sys", "pcie_aclk"; 49 + reset-gpios = <&gpio11 1 0 >; 50 + };
+213 -4
arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
··· 9 9 10 10 #include "hi3660.dtsi" 11 11 #include "hikey960-pinctrl.dtsi" 12 + #include <dt-bindings/gpio/gpio.h> 13 + #include <dt-bindings/input/input.h> 14 + #include <dt-bindings/interrupt-controller/irq.h> 12 15 13 16 / { 14 17 model = "HiKey960"; 15 - compatible = "hisilicon,hi3660"; 18 + compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660"; 16 19 17 20 aliases { 18 - serial5 = &uart5; /* console UART */ 21 + mshc1 = &dwmmc1; 22 + mshc2 = &dwmmc2; 23 + serial0 = &uart0; 24 + serial1 = &uart1; 25 + serial2 = &uart2; 26 + serial3 = &uart3; 27 + serial4 = &uart4; 28 + serial5 = &uart5; 29 + serial6 = &uart6; 19 30 }; 20 31 21 32 chosen { 22 - stdout-path = "serial5:115200n8"; 33 + stdout-path = "serial6:115200n8"; 23 34 }; 24 35 25 36 memory@0 { ··· 38 27 /* rewrite this at bootloader */ 39 28 reg = <0x0 0x0 0x0 0x0>; 40 29 }; 30 + 31 + keys { 32 + compatible = "gpio-keys"; 33 + pinctrl-names = "default"; 34 + pinctrl-0 = <&pwr_key_pmx_func &pwr_key_cfg_func>; 35 + 36 + power { 37 + wakeup-source; 38 + gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 39 + label = "GPIO Power"; 40 + linux,code = <KEY_POWER>; 41 + }; 42 + }; 43 + 44 + leds { 45 + compatible = "gpio-leds"; 46 + 47 + user_led1 { 48 + label = "user_led1"; 49 + /* gpio_150_user_led1 */ 50 + gpios = <&gpio18 6 0>; 51 + linux,default-trigger = "heartbeat"; 52 + }; 53 + 54 + user_led2 { 55 + label = "user_led2"; 56 + /* gpio_151_user_led2 */ 57 + gpios = <&gpio18 7 0>; 58 + linux,default-trigger = "mmc0"; 59 + }; 60 + 61 + user_led3 { 62 + label = "user_led3"; 63 + /* gpio_189_user_led3 */ 64 + gpios = <&gpio23 5 0>; 65 + default-state = "off"; 66 + }; 67 + 68 + user_led4 { 69 + label = "user_led4"; 70 + /* gpio_190_user_led4 */ 71 + gpios = <&gpio23 6 0>; 72 + linux,default-trigger = "cpu0"; 73 + }; 74 + 75 + wlan_active_led { 76 + label = "wifi_active"; 77 + /* gpio_205_wifi_active */ 78 + gpios = <&gpio25 5 0>; 79 + linux,default-trigger = "phy0tx"; 80 + default-state = "off"; 81 + }; 82 + 83 + bt_active_led { 84 + label = "bt_active"; 85 + gpios = <&gpio25 7 0>; 86 + /* gpio_207_user_led1 */ 87 + linux,default-trigger = "hci0-power"; 88 + default-state = "off"; 89 + }; 90 + }; 91 + 92 + pmic: pmic@fff34000 { 93 + compatible = "hisilicon,hi6421v530-pmic"; 94 + reg = <0x0 0xfff34000 0x0 0x1000>; 95 + interrupt-controller; 96 + #interrupt-cells = <2>; 97 + 98 + regulators { 99 + ldo3: LDO3 { /* HDMI */ 100 + regulator-name = "VOUT3_1V85"; 101 + regulator-min-microvolt = <1800000>; 102 + regulator-max-microvolt = <2200000>; 103 + regulator-enable-ramp-delay = <120>; 104 + }; 105 + 106 + ldo9: LDO9 { /* SDCARD I/O */ 107 + regulator-name = "VOUT9_1V8_2V95"; 108 + regulator-min-microvolt = <1750000>; 109 + regulator-max-microvolt = <3300000>; 110 + regulator-enable-ramp-delay = <240>; 111 + }; 112 + 113 + ldo11: LDO11 { /* Low Speed Connector */ 114 + regulator-name = "VOUT11_1V8_2V95"; 115 + regulator-min-microvolt = <1750000>; 116 + regulator-max-microvolt = <3300000>; 117 + regulator-enable-ramp-delay = <240>; 118 + }; 119 + 120 + ldo15: LDO15 { /* UFS VCC */ 121 + regulator-name = "VOUT15_3V0"; 122 + regulator-min-microvolt = <1750000>; 123 + regulator-max-microvolt = <3000000>; 124 + regulator-boot-on; 125 + regulator-always-on; 126 + regulator-enable-ramp-delay = <120>; 127 + }; 128 + 129 + ldo16: LDO16 { /* SD VDD */ 130 + regulator-name = "VOUT16_2V95"; 131 + regulator-min-microvolt = <1750000>; 132 + regulator-max-microvolt = <3000000>; 133 + regulator-enable-ramp-delay = <360>; 134 + }; 135 + }; 136 + }; 137 + 138 + wlan_en: wlan-en-1-8v { 139 + compatible = "regulator-fixed"; 140 + regulator-name = "wlan-en-regulator"; 141 + regulator-min-microvolt = <1800000>; 142 + regulator-max-microvolt = <1800000>; 143 + 144 + /* GPIO_051_WIFI_EN */ 145 + gpio = <&gpio6 3 0>; 146 + 147 + /* WLAN card specific delay */ 148 + startup-delay-us = <70000>; 149 + enable-active-high; 150 + }; 41 151 }; 42 152 43 - &uart5 { 153 + &i2c0 { 154 + /* On Low speed expansion */ 155 + label = "LS-I2C0"; 44 156 status = "okay"; 157 + }; 158 + 159 + &i2c1 { 160 + status = "okay"; 161 + 162 + adv7533: adv7533@39 { 163 + status = "ok"; 164 + compatible = "adi,adv7533"; 165 + reg = <0x39>; 166 + }; 167 + }; 168 + 169 + &i2c7 { 170 + /* On Low speed expansion */ 171 + label = "LS-I2C1"; 172 + status = "okay"; 173 + }; 174 + 175 + &uart3 { 176 + /* On Low speed expansion */ 177 + label = "LS-UART0"; 178 + status = "okay"; 179 + }; 180 + 181 + &uart4 { 182 + status = "okay"; 183 + 184 + bluetooth { 185 + compatible = "ti,wl1837-st"; 186 + enable-gpios = <&gpio15 6 GPIO_ACTIVE_HIGH>; 187 + max-speed = <921600>; 188 + }; 189 + }; 190 + 191 + &uart6 { 192 + /* On Low speed expansion */ 193 + label = "LS-UART1"; 194 + status = "okay"; 195 + }; 196 + 197 + &spi2 { 198 + /* On Low speed expansion */ 199 + label = "LS-SPI0"; 200 + status = "okay"; 201 + }; 202 + 203 + &spi3 { 204 + /* On High speed expansion */ 205 + label = "HS-SPI1"; 206 + status = "okay"; 207 + }; 208 + 209 + &dwmmc1 { 210 + vmmc-supply = <&ldo16>; 211 + vqmmc-supply = <&ldo9>; 212 + status = "okay"; 213 + }; 214 + 215 + &dwmmc2 { /* WIFI */ 216 + broken-cd; 217 + /* WL_EN */ 218 + vmmc-supply = <&wlan_en>; 219 + ti,non-removable; 220 + non-removable; 221 + #address-cells = <0x1>; 222 + #size-cells = <0x0>; 223 + status = "ok"; 224 + 225 + wlcore: wlcore@2 { 226 + compatible = "ti,wl1837"; 227 + reg = <2>; /* sdio func num */ 228 + /* WL_IRQ, GPIO_179_WL_WAKEUP_AP */ 229 + interrupt-parent = <&gpio22>; 230 + interrupts = <3 IRQ_TYPE_EDGE_RISING>; 231 + }; 45 232 };
+699 -7
arch/arm64/boot/dts/hisilicon/hi3660.dtsi
··· 5 5 */ 6 6 7 7 #include <dt-bindings/interrupt-controller/arm-gic.h> 8 + #include <dt-bindings/clock/hi3660-clock.h> 8 9 9 10 / { 10 11 compatible = "hisilicon,hi3660"; ··· 142 141 #size-cells = <2>; 143 142 ranges; 144 143 145 - fixed_uart5: fixed_19_2M { 146 - compatible = "fixed-clock"; 147 - #clock-cells = <0>; 148 - clock-frequency = <19200000>; 149 - clock-output-names = "fixed:uart5"; 144 + crg_ctrl: crg_ctrl@fff35000 { 145 + compatible = "hisilicon,hi3660-crgctrl", "syscon"; 146 + reg = <0x0 0xfff35000 0x0 0x1000>; 147 + #clock-cells = <1>; 150 148 }; 151 149 152 - uart5: uart@fdf05000 { 150 + crg_rst: crg_rst_controller { 151 + compatible = "hisilicon,hi3660-reset"; 152 + #reset-cells = <2>; 153 + hisi,rst-syscon = <&crg_ctrl>; 154 + }; 155 + 156 + 157 + pctrl: pctrl@e8a09000 { 158 + compatible = "hisilicon,hi3660-pctrl", "syscon"; 159 + reg = <0x0 0xe8a09000 0x0 0x2000>; 160 + #clock-cells = <1>; 161 + }; 162 + 163 + pmuctrl: crg_ctrl@fff34000 { 164 + compatible = "hisilicon,hi3660-pmuctrl", "syscon"; 165 + reg = <0x0 0xfff34000 0x0 0x1000>; 166 + #clock-cells = <1>; 167 + }; 168 + 169 + sctrl: sctrl@fff0a000 { 170 + compatible = "hisilicon,hi3660-sctrl", "syscon"; 171 + reg = <0x0 0xfff0a000 0x0 0x1000>; 172 + #clock-cells = <1>; 173 + }; 174 + 175 + iomcu: iomcu@ffd7e000 { 176 + compatible = "hisilicon,hi3660-iomcu", "syscon"; 177 + reg = <0x0 0xffd7e000 0x0 0x1000>; 178 + #clock-cells = <1>; 179 + 180 + }; 181 + 182 + iomcu_rst: reset { 183 + compatible = "hisilicon,hi3660-reset"; 184 + hisi,rst-syscon = <&iomcu>; 185 + #reset-cells = <2>; 186 + }; 187 + 188 + dual_timer0: timer@fff14000 { 189 + compatible = "arm,sp804", "arm,primecell"; 190 + reg = <0x0 0xfff14000 0x0 0x1000>; 191 + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 192 + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 193 + clocks = <&crg_ctrl HI3660_OSC32K>, 194 + <&crg_ctrl HI3660_OSC32K>, 195 + <&crg_ctrl HI3660_OSC32K>; 196 + clock-names = "timer1", "timer2", "apb_pclk"; 197 + }; 198 + 199 + i2c0: i2c@ffd71000 { 200 + compatible = "snps,designware-i2c"; 201 + reg = <0x0 0xffd71000 0x0 0x1000>; 202 + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 203 + #address-cells = <1>; 204 + #size-cells = <0>; 205 + clock-frequency = <400000>; 206 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>; 207 + resets = <&iomcu_rst 0x20 3>; 208 + pinctrl-names = "default"; 209 + pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>; 210 + status = "disabled"; 211 + }; 212 + 213 + i2c1: i2c@ffd72000 { 214 + compatible = "snps,designware-i2c"; 215 + reg = <0x0 0xffd72000 0x0 0x1000>; 216 + interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 217 + #address-cells = <1>; 218 + #size-cells = <0>; 219 + clock-frequency = <400000>; 220 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>; 221 + resets = <&iomcu_rst 0x20 4>; 222 + pinctrl-names = "default"; 223 + pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>; 224 + status = "disabled"; 225 + }; 226 + 227 + i2c3: i2c@fdf0c000 { 228 + compatible = "snps,designware-i2c"; 229 + reg = <0x0 0xfdf0c000 0x0 0x1000>; 230 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 231 + #address-cells = <1>; 232 + #size-cells = <0>; 233 + clock-frequency = <400000>; 234 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>; 235 + resets = <&crg_rst 0x78 7>; 236 + pinctrl-names = "default"; 237 + pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>; 238 + status = "disabled"; 239 + }; 240 + 241 + i2c7: i2c@fdf0b000 { 242 + compatible = "snps,designware-i2c"; 243 + reg = <0x0 0xfdf0b000 0x0 0x1000>; 244 + interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>; 245 + #address-cells = <1>; 246 + #size-cells = <0>; 247 + clock-frequency = <400000>; 248 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>; 249 + resets = <&crg_rst 0x60 14>; 250 + pinctrl-names = "default"; 251 + pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>; 252 + status = "disabled"; 253 + }; 254 + 255 + uart0: serial@fdf02000 { 256 + compatible = "arm,pl011", "arm,primecell"; 257 + reg = <0x0 0xfdf02000 0x0 0x1000>; 258 + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 259 + clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, 260 + <&crg_ctrl HI3660_PCLK>; 261 + clock-names = "uartclk", "apb_pclk"; 262 + pinctrl-names = "default"; 263 + pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>; 264 + status = "disabled"; 265 + }; 266 + 267 + uart1: serial@fdf00000 { 268 + compatible = "arm,pl011", "arm,primecell"; 269 + reg = <0x0 0xfdf00000 0x0 0x1000>; 270 + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 271 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>, 272 + <&crg_ctrl HI3660_CLK_GATE_UART1>; 273 + clock-names = "uartclk", "apb_pclk"; 274 + pinctrl-names = "default"; 275 + pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>; 276 + status = "disabled"; 277 + }; 278 + 279 + uart2: serial@fdf03000 { 280 + compatible = "arm,pl011", "arm,primecell"; 281 + reg = <0x0 0xfdf03000 0x0 0x1000>; 282 + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 283 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>, 284 + <&crg_ctrl HI3660_PCLK>; 285 + clock-names = "uartclk", "apb_pclk"; 286 + pinctrl-names = "default"; 287 + pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>; 288 + status = "disabled"; 289 + }; 290 + 291 + uart3: serial@ffd74000 { 292 + compatible = "arm,pl011", "arm,primecell"; 293 + reg = <0x0 0xffd74000 0x0 0x1000>; 294 + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 295 + clocks = <&crg_ctrl HI3660_FACTOR_UART3>, 296 + <&crg_ctrl HI3660_PCLK>; 297 + clock-names = "uartclk", "apb_pclk"; 298 + pinctrl-names = "default"; 299 + pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>; 300 + status = "disabled"; 301 + }; 302 + 303 + uart4: serial@fdf01000 { 304 + compatible = "arm,pl011", "arm,primecell"; 305 + reg = <0x0 0xfdf01000 0x0 0x1000>; 306 + interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 307 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>, 308 + <&crg_ctrl HI3660_CLK_GATE_UART4>; 309 + clock-names = "uartclk", "apb_pclk"; 310 + pinctrl-names = "default"; 311 + pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>; 312 + status = "disabled"; 313 + }; 314 + 315 + uart5: serial@fdf05000 { 153 316 compatible = "arm,pl011", "arm,primecell"; 154 317 reg = <0x0 0xfdf05000 0x0 0x1000>; 155 318 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 156 - clocks = <&fixed_uart5 &fixed_uart5>; 319 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>, 320 + <&crg_ctrl HI3660_CLK_GATE_UART5>; 157 321 clock-names = "uartclk", "apb_pclk"; 322 + pinctrl-names = "default"; 323 + pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>; 324 + status = "disabled"; 325 + }; 326 + 327 + uart6: serial@fff32000 { 328 + compatible = "arm,pl011", "arm,primecell"; 329 + reg = <0x0 0xfff32000 0x0 0x1000>; 330 + interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 331 + clocks = <&crg_ctrl HI3660_CLK_UART6>, 332 + <&crg_ctrl HI3660_PCLK>; 333 + clock-names = "uartclk", "apb_pclk"; 334 + pinctrl-names = "default"; 335 + pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>; 336 + status = "disabled"; 337 + }; 338 + 339 + rtc0: rtc@fff04000 { 340 + compatible = "arm,pl031", "arm,primecell"; 341 + reg = <0x0 0Xfff04000 0x0 0x1000>; 342 + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 343 + clocks = <&crg_ctrl HI3660_PCLK>; 344 + clock-names = "apb_pclk"; 345 + }; 346 + 347 + gpio0: gpio@e8a0b000 { 348 + compatible = "arm,pl061", "arm,primecell"; 349 + reg = <0 0xe8a0b000 0 0x1000>; 350 + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 351 + gpio-controller; 352 + #gpio-cells = <2>; 353 + gpio-ranges = <&pmx0 1 0 7>; 354 + interrupt-controller; 355 + #interrupt-cells = <2>; 356 + clocks = <&crg_ctrl HI3660_PCLK_GPIO0>; 357 + clock-names = "apb_pclk"; 358 + }; 359 + 360 + gpio1: gpio@e8a0c000 { 361 + compatible = "arm,pl061", "arm,primecell"; 362 + reg = <0 0xe8a0c000 0 0x1000>; 363 + interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 364 + gpio-controller; 365 + #gpio-cells = <2>; 366 + gpio-ranges = <&pmx0 1 7 7>; 367 + interrupt-controller; 368 + #interrupt-cells = <2>; 369 + clocks = <&crg_ctrl HI3660_PCLK_GPIO1>; 370 + clock-names = "apb_pclk"; 371 + }; 372 + 373 + gpio2: gpio@e8a0d000 { 374 + compatible = "arm,pl061", "arm,primecell"; 375 + reg = <0 0xe8a0d000 0 0x1000>; 376 + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 377 + gpio-controller; 378 + #gpio-cells = <2>; 379 + gpio-ranges = <&pmx0 0 14 8>; 380 + interrupt-controller; 381 + #interrupt-cells = <2>; 382 + clocks = <&crg_ctrl HI3660_PCLK_GPIO2>; 383 + clock-names = "apb_pclk"; 384 + }; 385 + 386 + gpio3: gpio@e8a0e000 { 387 + compatible = "arm,pl061", "arm,primecell"; 388 + reg = <0 0xe8a0e000 0 0x1000>; 389 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 390 + gpio-controller; 391 + #gpio-cells = <2>; 392 + gpio-ranges = <&pmx0 0 22 8>; 393 + interrupt-controller; 394 + #interrupt-cells = <2>; 395 + clocks = <&crg_ctrl HI3660_PCLK_GPIO3>; 396 + clock-names = "apb_pclk"; 397 + }; 398 + 399 + gpio4: gpio@e8a0f000 { 400 + compatible = "arm,pl061", "arm,primecell"; 401 + reg = <0 0xe8a0f000 0 0x1000>; 402 + interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 403 + gpio-controller; 404 + #gpio-cells = <2>; 405 + gpio-ranges = <&pmx0 0 30 8>; 406 + interrupt-controller; 407 + #interrupt-cells = <2>; 408 + clocks = <&crg_ctrl HI3660_PCLK_GPIO4>; 409 + clock-names = "apb_pclk"; 410 + }; 411 + 412 + gpio5: gpio@e8a10000 { 413 + compatible = "arm,pl061", "arm,primecell"; 414 + reg = <0 0xe8a10000 0 0x1000>; 415 + interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 416 + gpio-controller; 417 + #gpio-cells = <2>; 418 + gpio-ranges = <&pmx0 0 38 8>; 419 + interrupt-controller; 420 + #interrupt-cells = <2>; 421 + clocks = <&crg_ctrl HI3660_PCLK_GPIO5>; 422 + clock-names = "apb_pclk"; 423 + }; 424 + 425 + gpio6: gpio@e8a11000 { 426 + compatible = "arm,pl061", "arm,primecell"; 427 + reg = <0 0xe8a11000 0 0x1000>; 428 + interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 429 + gpio-controller; 430 + #gpio-cells = <2>; 431 + gpio-ranges = <&pmx0 0 46 8>; 432 + interrupt-controller; 433 + #interrupt-cells = <2>; 434 + clocks = <&crg_ctrl HI3660_PCLK_GPIO6>; 435 + clock-names = "apb_pclk"; 436 + }; 437 + 438 + gpio7: gpio@e8a12000 { 439 + compatible = "arm,pl061", "arm,primecell"; 440 + reg = <0 0xe8a12000 0 0x1000>; 441 + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 442 + gpio-controller; 443 + #gpio-cells = <2>; 444 + gpio-ranges = <&pmx0 0 54 8>; 445 + interrupt-controller; 446 + #interrupt-cells = <2>; 447 + clocks = <&crg_ctrl HI3660_PCLK_GPIO7>; 448 + clock-names = "apb_pclk"; 449 + }; 450 + 451 + gpio8: gpio@e8a13000 { 452 + compatible = "arm,pl061", "arm,primecell"; 453 + reg = <0 0xe8a13000 0 0x1000>; 454 + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 455 + gpio-controller; 456 + #gpio-cells = <2>; 457 + gpio-ranges = <&pmx0 0 62 8>; 458 + interrupt-controller; 459 + #interrupt-cells = <2>; 460 + clocks = <&crg_ctrl HI3660_PCLK_GPIO8>; 461 + clock-names = "apb_pclk"; 462 + }; 463 + 464 + gpio9: gpio@e8a14000 { 465 + compatible = "arm,pl061", "arm,primecell"; 466 + reg = <0 0xe8a14000 0 0x1000>; 467 + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 468 + gpio-controller; 469 + #gpio-cells = <2>; 470 + gpio-ranges = <&pmx0 0 70 8>; 471 + interrupt-controller; 472 + #interrupt-cells = <2>; 473 + clocks = <&crg_ctrl HI3660_PCLK_GPIO9>; 474 + clock-names = "apb_pclk"; 475 + }; 476 + 477 + gpio10: gpio@e8a15000 { 478 + compatible = "arm,pl061", "arm,primecell"; 479 + reg = <0 0xe8a15000 0 0x1000>; 480 + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 481 + gpio-controller; 482 + #gpio-cells = <2>; 483 + gpio-ranges = <&pmx0 0 78 8>; 484 + interrupt-controller; 485 + #interrupt-cells = <2>; 486 + clocks = <&crg_ctrl HI3660_PCLK_GPIO10>; 487 + clock-names = "apb_pclk"; 488 + }; 489 + 490 + gpio11: gpio@e8a16000 { 491 + compatible = "arm,pl061", "arm,primecell"; 492 + reg = <0 0xe8a16000 0 0x1000>; 493 + interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 494 + gpio-controller; 495 + #gpio-cells = <2>; 496 + gpio-ranges = <&pmx0 0 86 8>; 497 + interrupt-controller; 498 + #interrupt-cells = <2>; 499 + clocks = <&crg_ctrl HI3660_PCLK_GPIO11>; 500 + clock-names = "apb_pclk"; 501 + }; 502 + 503 + gpio12: gpio@e8a17000 { 504 + compatible = "arm,pl061", "arm,primecell"; 505 + reg = <0 0xe8a17000 0 0x1000>; 506 + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 507 + gpio-controller; 508 + #gpio-cells = <2>; 509 + gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>; 510 + interrupt-controller; 511 + #interrupt-cells = <2>; 512 + clocks = <&crg_ctrl HI3660_PCLK_GPIO12>; 513 + clock-names = "apb_pclk"; 514 + }; 515 + 516 + gpio13: gpio@e8a18000 { 517 + compatible = "arm,pl061", "arm,primecell"; 518 + reg = <0 0xe8a18000 0 0x1000>; 519 + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 520 + gpio-controller; 521 + #gpio-cells = <2>; 522 + gpio-ranges = <&pmx0 0 102 8>; 523 + interrupt-controller; 524 + #interrupt-cells = <2>; 525 + clocks = <&crg_ctrl HI3660_PCLK_GPIO13>; 526 + clock-names = "apb_pclk"; 527 + }; 528 + 529 + gpio14: gpio@e8a19000 { 530 + compatible = "arm,pl061", "arm,primecell"; 531 + reg = <0 0xe8a19000 0 0x1000>; 532 + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 533 + gpio-controller; 534 + #gpio-cells = <2>; 535 + gpio-ranges = <&pmx0 0 110 8>; 536 + interrupt-controller; 537 + #interrupt-cells = <2>; 538 + clocks = <&crg_ctrl HI3660_PCLK_GPIO14>; 539 + clock-names = "apb_pclk"; 540 + }; 541 + 542 + gpio15: gpio@e8a1a000 { 543 + compatible = "arm,pl061", "arm,primecell"; 544 + reg = <0 0xe8a1a000 0 0x1000>; 545 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 546 + gpio-controller; 547 + #gpio-cells = <2>; 548 + gpio-ranges = <&pmx0 0 118 6>; 549 + interrupt-controller; 550 + #interrupt-cells = <2>; 551 + clocks = <&crg_ctrl HI3660_PCLK_GPIO15>; 552 + clock-names = "apb_pclk"; 553 + }; 554 + 555 + gpio16: gpio@e8a1b000 { 556 + compatible = "arm,pl061", "arm,primecell"; 557 + reg = <0 0xe8a1b000 0 0x1000>; 558 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 559 + gpio-controller; 560 + #gpio-cells = <2>; 561 + interrupt-controller; 562 + #interrupt-cells = <2>; 563 + clocks = <&crg_ctrl HI3660_PCLK_GPIO16>; 564 + clock-names = "apb_pclk"; 565 + }; 566 + 567 + gpio17: gpio@e8a1c000 { 568 + compatible = "arm,pl061", "arm,primecell"; 569 + reg = <0 0xe8a1c000 0 0x1000>; 570 + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 571 + gpio-controller; 572 + #gpio-cells = <2>; 573 + interrupt-controller; 574 + #interrupt-cells = <2>; 575 + clocks = <&crg_ctrl HI3660_PCLK_GPIO17>; 576 + clock-names = "apb_pclk"; 577 + }; 578 + 579 + gpio18: gpio@ff3b4000 { 580 + compatible = "arm,pl061", "arm,primecell"; 581 + reg = <0 0xff3b4000 0 0x1000>; 582 + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 583 + gpio-controller; 584 + #gpio-cells = <2>; 585 + gpio-ranges = <&pmx2 0 0 8>; 586 + interrupt-controller; 587 + #interrupt-cells = <2>; 588 + clocks = <&crg_ctrl HI3660_PCLK_GPIO18>; 589 + clock-names = "apb_pclk"; 590 + }; 591 + 592 + gpio19: gpio@ff3b5000 { 593 + compatible = "arm,pl061", "arm,primecell"; 594 + reg = <0 0xff3b5000 0 0x1000>; 595 + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 596 + gpio-controller; 597 + #gpio-cells = <2>; 598 + gpio-ranges = <&pmx2 0 8 4>; 599 + interrupt-controller; 600 + #interrupt-cells = <2>; 601 + clocks = <&crg_ctrl HI3660_PCLK_GPIO19>; 602 + clock-names = "apb_pclk"; 603 + }; 604 + 605 + gpio20: gpio@e8a1f000 { 606 + compatible = "arm,pl061", "arm,primecell"; 607 + reg = <0 0xe8a1f000 0 0x1000>; 608 + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 609 + gpio-controller; 610 + #gpio-cells = <2>; 611 + gpio-ranges = <&pmx1 0 0 6>; 612 + interrupt-controller; 613 + #interrupt-cells = <2>; 614 + clocks = <&crg_ctrl HI3660_PCLK_GPIO20>; 615 + clock-names = "apb_pclk"; 616 + }; 617 + 618 + gpio21: gpio@e8a20000 { 619 + compatible = "arm,pl061", "arm,primecell"; 620 + reg = <0 0xe8a20000 0 0x1000>; 621 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 622 + gpio-controller; 623 + #gpio-cells = <2>; 624 + interrupt-controller; 625 + #interrupt-cells = <2>; 626 + gpio-ranges = <&pmx3 0 0 6>; 627 + clocks = <&crg_ctrl HI3660_PCLK_GPIO21>; 628 + clock-names = "apb_pclk"; 629 + }; 630 + 631 + gpio22: gpio@fff0b000 { 632 + compatible = "arm,pl061", "arm,primecell"; 633 + reg = <0 0xfff0b000 0 0x1000>; 634 + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 635 + gpio-controller; 636 + #gpio-cells = <2>; 637 + /* GPIO176 */ 638 + gpio-ranges = <&pmx4 2 0 6>; 639 + interrupt-controller; 640 + #interrupt-cells = <2>; 641 + clocks = <&sctrl HI3660_PCLK_AO_GPIO0>; 642 + clock-names = "apb_pclk"; 643 + }; 644 + 645 + gpio23: gpio@fff0c000 { 646 + compatible = "arm,pl061", "arm,primecell"; 647 + reg = <0 0xfff0c000 0 0x1000>; 648 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 649 + gpio-controller; 650 + #gpio-cells = <2>; 651 + /* GPIO184 */ 652 + gpio-ranges = <&pmx4 0 6 7>; 653 + interrupt-controller; 654 + #interrupt-cells = <2>; 655 + clocks = <&sctrl HI3660_PCLK_AO_GPIO1>; 656 + clock-names = "apb_pclk"; 657 + }; 658 + 659 + gpio24: gpio@fff0d000 { 660 + compatible = "arm,pl061", "arm,primecell"; 661 + reg = <0 0xfff0d000 0 0x1000>; 662 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 663 + gpio-controller; 664 + #gpio-cells = <2>; 665 + /* GPIO192 */ 666 + gpio-ranges = <&pmx4 0 13 8>; 667 + interrupt-controller; 668 + #interrupt-cells = <2>; 669 + clocks = <&sctrl HI3660_PCLK_AO_GPIO2>; 670 + clock-names = "apb_pclk"; 671 + }; 672 + 673 + gpio25: gpio@fff0e000 { 674 + compatible = "arm,pl061", "arm,primecell"; 675 + reg = <0 0xfff0e000 0 0x1000>; 676 + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 677 + gpio-controller; 678 + #gpio-cells = <2>; 679 + /* GPIO200 */ 680 + gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>; 681 + interrupt-controller; 682 + #interrupt-cells = <2>; 683 + clocks = <&sctrl HI3660_PCLK_AO_GPIO3>; 684 + clock-names = "apb_pclk"; 685 + }; 686 + 687 + gpio26: gpio@fff0f000 { 688 + compatible = "arm,pl061", "arm,primecell"; 689 + reg = <0 0xfff0f000 0 0x1000>; 690 + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 691 + gpio-controller; 692 + #gpio-cells = <2>; 693 + /* GPIO208 */ 694 + gpio-ranges = <&pmx4 0 28 8>; 695 + interrupt-controller; 696 + #interrupt-cells = <2>; 697 + clocks = <&sctrl HI3660_PCLK_AO_GPIO4>; 698 + clock-names = "apb_pclk"; 699 + }; 700 + 701 + gpio27: gpio@fff10000 { 702 + compatible = "arm,pl061", "arm,primecell"; 703 + reg = <0 0xfff10000 0 0x1000>; 704 + interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 705 + gpio-controller; 706 + #gpio-cells = <2>; 707 + /* GPIO216 */ 708 + gpio-ranges = <&pmx4 0 36 6>; 709 + interrupt-controller; 710 + #interrupt-cells = <2>; 711 + clocks = <&sctrl HI3660_PCLK_AO_GPIO5>; 712 + clock-names = "apb_pclk"; 713 + }; 714 + 715 + gpio28: gpio@fff1d000 { 716 + compatible = "arm,pl061", "arm,primecell"; 717 + reg = <0 0xfff1d000 0 0x1000>; 718 + interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 719 + gpio-controller; 720 + #gpio-cells = <2>; 721 + interrupt-controller; 722 + #interrupt-cells = <2>; 723 + clocks = <&sctrl HI3660_PCLK_AO_GPIO6>; 724 + clock-names = "apb_pclk"; 725 + }; 726 + 727 + spi2: spi@ffd68000 { 728 + compatible = "arm,pl022", "arm,primecell"; 729 + reg = <0x0 0xffd68000 0x0 0x1000>; 730 + #address-cells = <1>; 731 + #size-cells = <0>; 732 + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 733 + clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>; 734 + clock-names = "apb_pclk"; 735 + pinctrl-names = "default"; 736 + pinctrl-0 = <&spi2_pmx_func>; 737 + num-cs = <1>; 738 + cs-gpios = <&gpio27 2 0>; 739 + status = "disabled"; 740 + }; 741 + 742 + spi3: spi@ff3b3000 { 743 + compatible = "arm,pl022", "arm,primecell"; 744 + reg = <0x0 0xff3b3000 0x0 0x1000>; 745 + #address-cells = <1>; 746 + #size-cells = <0>; 747 + interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 748 + clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>; 749 + clock-names = "apb_pclk"; 750 + pinctrl-names = "default"; 751 + pinctrl-0 = <&spi3_pmx_func>; 752 + num-cs = <1>; 753 + cs-gpios = <&gpio18 5 0>; 754 + status = "disabled"; 755 + }; 756 + 757 + pcie@f4000000 { 758 + compatible = "hisilicon,kirin960-pcie"; 759 + reg = <0x0 0xf4000000 0x0 0x1000>, 760 + <0x0 0xff3fe000 0x0 0x1000>, 761 + <0x0 0xf3f20000 0x0 0x40000>, 762 + <0x0 0xf5000000 0x0 0x2000>; 763 + reg-names = "dbi", "apb", "phy", "config"; 764 + bus-range = <0x0 0x1>; 765 + #address-cells = <3>; 766 + #size-cells = <2>; 767 + device_type = "pci"; 768 + ranges = <0x02000000 0x0 0x00000000 769 + 0x0 0xf6000000 770 + 0x0 0x02000000>; 771 + num-lanes = <1>; 772 + #interrupt-cells = <1>; 773 + interrupt-map-mask = <0xf800 0 0 7>; 774 + interrupt-map = <0x0 0 0 1 775 + &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, 776 + <0x0 0 0 2 777 + &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, 778 + <0x0 0 0 3 779 + &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, 780 + <0x0 0 0 4 781 + &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 782 + clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 783 + <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 784 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 785 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 786 + <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 787 + clock-names = "pcie_phy_ref", "pcie_aux", 788 + "pcie_apb_phy", "pcie_apb_sys", 789 + "pcie_aclk"; 790 + reset-gpios = <&gpio11 1 0 >; 791 + }; 792 + 793 + /* SD */ 794 + dwmmc1: dwmmc1@ff37f000 { 795 + #address-cells = <1>; 796 + #size-cells = <0>; 797 + cd-inverted; 798 + compatible = "hisilicon,hi3660-dw-mshc"; 799 + num-slots = <1>; 800 + bus-width = <0x4>; 801 + disable-wp; 802 + cap-sd-highspeed; 803 + supports-highspeed; 804 + card-detect-delay = <200>; 805 + reg = <0x0 0xff37f000 0x0 0x1000>; 806 + interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>; 807 + clocks = <&crg_ctrl HI3660_CLK_GATE_SD>, 808 + <&crg_ctrl HI3660_HCLK_GATE_SD>; 809 + clock-names = "ciu", "biu"; 810 + clock-frequency = <3200000>; 811 + resets = <&crg_rst 0x94 18>; 812 + cd-gpios = <&gpio25 3 0>; 813 + hisilicon,peripheral-syscon = <&sctrl>; 814 + pinctrl-names = "default"; 815 + pinctrl-0 = <&sd_pmx_func 816 + &sd_clk_cfg_func 817 + &sd_cfg_func>; 818 + sd-uhs-sdr12; 819 + sd-uhs-sdr25; 820 + sd-uhs-sdr50; 821 + sd-uhs-sdr104; 822 + status = "disabled"; 823 + 824 + slot@0 { 825 + reg = <0x0>; 826 + bus-width = <4>; 827 + disable-wp; 828 + }; 829 + }; 830 + 831 + /* SDIO */ 832 + dwmmc2: dwmmc2@ff3ff000 { 833 + compatible = "hisilicon,hi3660-dw-mshc"; 834 + reg = <0x0 0xff3ff000 0x0 0x1000>; 835 + interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 836 + num-slots = <1>; 837 + clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>, 838 + <&crg_ctrl HI3660_HCLK_GATE_SDIO0>; 839 + clock-names = "ciu", "biu"; 840 + resets = <&crg_rst 0x94 20>; 841 + card-detect-delay = <200>; 842 + supports-highspeed; 843 + keep-power-in-suspend; 844 + pinctrl-names = "default"; 845 + pinctrl-0 = <&sdio_pmx_func 846 + &sdio_clk_cfg_func 847 + &sdio_cfg_func>; 158 848 status = "disabled"; 159 849 }; 160 850 };
+31 -3
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
··· 466 466 method = "smc"; 467 467 }; 468 468 }; 469 + 470 + sound_card { 471 + compatible = "audio-graph-card"; 472 + dais = <&i2s0_port0>; 473 + }; 469 474 }; 470 475 471 476 &uart2 { ··· 511 506 interrupts = <1 2>; 512 507 pd-gpio = <&gpio0 4 0>; 513 508 adi,dsi-lanes = <4>; 509 + #sound-dai-cells = <0>; 514 510 515 - port { 516 - adv7533_in: endpoint { 517 - remote-endpoint = <&dsi_out0>; 511 + ports { 512 + #address-cells = <1>; 513 + #size-cells = <0>; 514 + port@0 { 515 + adv7533_in: endpoint { 516 + remote-endpoint = <&dsi_out0>; 517 + }; 518 + }; 519 + port@2 { 520 + reg = <2>; 521 + codec_endpoint: endpoint { 522 + remote-endpoint = <&i2s0_cpu_endpoint>; 523 + }; 524 + }; 525 + }; 526 + }; 527 + }; 528 + 529 + &i2s0 { 530 + 531 + ports { 532 + i2s0_port0: port@0 { 533 + i2s0_cpu_endpoint: endpoint { 534 + remote-endpoint = <&codec_endpoint>; 535 + dai-format = "i2s"; 518 536 }; 519 537 }; 520 538 };
+26
arch/arm64/boot/dts/hisilicon/hi6220.dtsi
··· 332 332 status = "disabled"; 333 333 }; 334 334 335 + dma0: dma@f7370000 { 336 + compatible = "hisilicon,k3-dma-1.0"; 337 + reg = <0x0 0xf7370000 0x0 0x1000>; 338 + #dma-cells = <1>; 339 + dma-channels = <15>; 340 + dma-requests = <32>; 341 + interrupts = <0 84 4>; 342 + clocks = <&sys_ctrl HI6220_EDMAC_ACLK>; 343 + dma-no-cci; 344 + dma-type = "hi6220_dma"; 345 + status = "ok"; 346 + }; 347 + 335 348 dual_timer0: timer@f8008000 { 336 349 compatible = "arm,sp804", "arm,primecell"; 337 350 reg = <0x0 0xf8008000 0x0 0x1000>; ··· 816 803 clocks = <&sys_ctrl 22>; 817 804 clock-names = "thermal_clk"; 818 805 #thermal-sensor-cells = <1>; 806 + }; 807 + 808 + i2s0: i2s@f7118000{ 809 + compatible = "hisilicon,hi6210-i2s"; 810 + reg = <0x0 0xf7118000 0x0 0x8000>; /* i2s unit */ 811 + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; /* 155 "DigACodec_intr"-32 */ 812 + clocks = <&sys_ctrl HI6220_DACODEC_PCLK>, 813 + <&sys_ctrl HI6220_BBPPLL0_DIV>; 814 + clock-names = "dacodec", "i2s-base"; 815 + dmas = <&dma0 15 &dma0 14>; 816 + dma-names = "rx", "tx"; 817 + hisilicon,sysctrl-syscon = <&sys_ctrl>; 818 + #sound-dai-cells = <1>; 819 819 }; 820 820 821 821 thermal-zones {
+691 -39
arch/arm64/boot/dts/hisilicon/hikey960-pinctrl.dtsi
··· 24 24 &range 0 7 0 25 25 &range 8 116 0>; 26 26 27 + pmu_pmx_func: pmu_pmx_func { 28 + pinctrl-single,pins = < 29 + 0x008 MUX_M1 /* PMU1_SSI */ 30 + 0x00c MUX_M1 /* PMU2_SSI */ 31 + 0x010 MUX_M1 /* PMU_CLKOUT */ 32 + 0x100 MUX_M1 /* PMU_HKADC_SSI */ 33 + >; 34 + }; 35 + 36 + csi0_pwd_n_pmx_func: csi0_pwd_n_pmx_func { 37 + pinctrl-single,pins = < 38 + 0x044 MUX_M0 /* CSI0_PWD_N */ 39 + >; 40 + }; 41 + 42 + csi1_pwd_n_pmx_func: csi1_pwd_n_pmx_func { 43 + pinctrl-single,pins = < 44 + 0x04c MUX_M0 /* CSI1_PWD_N */ 45 + >; 46 + }; 47 + 27 48 isp0_pmx_func: isp0_pmx_func { 28 49 pinctrl-single,pins = < 29 50 0x058 MUX_M1 /* ISP_CLK0 */ ··· 58 37 0x05c MUX_M1 /* ISP_CLK1 */ 59 38 0x06c MUX_M1 /* ISP_SCL1 */ 60 39 0x070 MUX_M1 /* ISP_SDA1 */ 40 + >; 41 + }; 42 + 43 + pwr_key_pmx_func: pwr_key_pmx_func { 44 + pinctrl-single,pins = < 45 + 0x080 MUX_M0 /* GPIO_034 */ 61 46 >; 62 47 }; 63 48 ··· 94 67 >; 95 68 }; 96 69 97 - spi1_pmx_func: spi1_pmx_func { 98 - pinctrl-single,pins = < 99 - 0x034 MUX_M1 /* SPI1_CLK */ 100 - 0x038 MUX_M1 /* SPI1_DI */ 101 - 0x03c MUX_M1 /* SPI1_DO */ 102 - 0x040 MUX_M1 /* SPI1_CS_N */ 103 - >; 104 - }; 105 - 106 70 uart0_pmx_func: uart0_pmx_func { 107 71 pinctrl-single,pins = < 108 72 0x0cc MUX_M2 /* UART0_RXD */ 109 73 0x0d0 MUX_M2 /* UART0_TXD */ 110 - 0x0d4 MUX_M2 /* UART0_RXD_M */ 111 - 0x0d8 MUX_M2 /* UART0_TXD_M */ 112 74 >; 113 75 }; 114 76 ··· 154 138 0x0d8 MUX_M1 /* UART6_TXD */ 155 139 >; 156 140 }; 141 + 142 + cam0_rst_pmx_func: cam0_rst_pmx_func { 143 + pinctrl-single,pins = < 144 + 0x0c8 MUX_M0 /* CAM0_RST */ 145 + >; 146 + }; 147 + 148 + cam1_rst_pmx_func: cam1_rst_pmx_func { 149 + pinctrl-single,pins = < 150 + 0x124 MUX_M0 /* CAM1_RST */ 151 + >; 152 + }; 157 153 }; 158 154 159 155 /* [IOMG_MMC0_000, IOMG_MMC0_005] */ ··· 201 173 pinctrl-single,function-mask = <0x7>; 202 174 /* pin base, nr pins & gpio function */ 203 175 pinctrl-single,gpio-range = <&range 0 12 0>; 176 + 177 + ufs_pmx_func: ufs_pmx_func { 178 + pinctrl-single,pins = < 179 + 0x000 MUX_M1 /* UFS_REF_CLK */ 180 + 0x004 MUX_M1 /* UFS_RST_N */ 181 + >; 182 + }; 204 183 205 184 spi3_pmx_func: spi3_pmx_func { 206 185 pinctrl-single,pins = < ··· 283 248 >; 284 249 }; 285 250 286 - i2c2_pmx_func: i2c2_pmx_func { 287 - pinctrl-single,pins = < 288 - 0x024 MUX_M1 /* I2C2_SCL */ 289 - 0x028 MUX_M1 /* I2C2_SDA */ 290 - >; 291 - }; 292 - 293 251 i2c7_pmx_func: i2c7_pmx_func { 294 252 pinctrl-single,pins = < 295 253 0x024 MUX_M3 /* I2C7_SCL */ 296 254 0x028 MUX_M3 /* I2C7_SDA */ 255 + >; 256 + }; 257 + 258 + pcie_pmx_func: pcie_pmx_func { 259 + pinctrl-single,pins = < 260 + 0x084 MUX_M1 /* PCIE_CLKREQ_N */ 261 + 0x088 MUX_M1 /* PCIE_WAKE_N */ 297 262 >; 298 263 }; 299 264 ··· 303 268 0x090 MUX_M1 /* SPI2_DI */ 304 269 0x094 MUX_M1 /* SPI2_DO */ 305 270 0x098 MUX_M1 /* SPI2_CS0_N */ 306 - >; 307 - }; 308 - 309 - spi4_pmx_func: spi4_pmx_func { 310 - pinctrl-single,pins = < 311 - 0x08c MUX_M4 /* SPI4_CLK */ 312 - 0x090 MUX_M4 /* SPI4_DI */ 313 - 0x094 MUX_M4 /* SPI4_DO */ 314 - 0x098 MUX_M4 /* SPI4_CS0_N */ 315 271 >; 316 272 }; 317 273 ··· 316 290 }; 317 291 }; 318 292 319 - pmx5: pinmux@ff3fd800 { 293 + pmx5: pinmux@e896c800 { 294 + compatible = "pinconf-single"; 295 + reg = <0x0 0xe896c800 0x0 0x200>; 296 + #pinctrl-cells = <1>; 297 + pinctrl-single,register-width = <0x20>; 298 + 299 + pmu_cfg_func: pmu_cfg_func { 300 + pinctrl-single,pins = < 301 + 0x010 0x0 /* PMU1_SSI */ 302 + 0x014 0x0 /* PMU2_SSI */ 303 + 0x018 0x0 /* PMU_CLKOUT */ 304 + 0x10c 0x0 /* PMU_HKADC_SSI */ 305 + >; 306 + pinctrl-single,bias-pulldown = < 307 + PULL_DIS 308 + PULL_DOWN 309 + PULL_DIS 310 + PULL_DOWN 311 + >; 312 + pinctrl-single,bias-pullup = < 313 + PULL_DIS 314 + PULL_UP 315 + PULL_DIS 316 + PULL_UP 317 + >; 318 + pinctrl-single,drive-strength = < 319 + DRIVE7_06MA DRIVE6_MASK 320 + >; 321 + }; 322 + 323 + i2c3_cfg_func: i2c3_cfg_func { 324 + pinctrl-single,pins = < 325 + 0x038 0x0 /* I2C3_SCL */ 326 + 0x03c 0x0 /* I2C3_SDA */ 327 + >; 328 + pinctrl-single,bias-pulldown = < 329 + PULL_DIS 330 + PULL_DOWN 331 + PULL_DIS 332 + PULL_DOWN 333 + >; 334 + pinctrl-single,bias-pullup = < 335 + PULL_DIS 336 + PULL_UP 337 + PULL_DIS 338 + PULL_UP 339 + >; 340 + pinctrl-single,drive-strength = < 341 + DRIVE7_02MA DRIVE6_MASK 342 + >; 343 + }; 344 + 345 + csi0_pwd_n_cfg_func: csi0_pwd_n_cfg_func { 346 + pinctrl-single,pins = < 347 + 0x050 0x0 /* CSI0_PWD_N */ 348 + >; 349 + pinctrl-single,bias-pulldown = < 350 + PULL_DIS 351 + PULL_DOWN 352 + PULL_DIS 353 + PULL_DOWN 354 + >; 355 + pinctrl-single,bias-pullup = < 356 + PULL_DIS 357 + PULL_UP 358 + PULL_DIS 359 + PULL_UP 360 + >; 361 + pinctrl-single,drive-strength = < 362 + DRIVE7_04MA DRIVE6_MASK 363 + >; 364 + }; 365 + 366 + csi1_pwd_n_cfg_func: csi1_pwd_n_cfg_func { 367 + pinctrl-single,pins = < 368 + 0x058 0x0 /* CSI1_PWD_N */ 369 + >; 370 + pinctrl-single,bias-pulldown = < 371 + PULL_DIS 372 + PULL_DOWN 373 + PULL_DIS 374 + PULL_DOWN 375 + >; 376 + pinctrl-single,bias-pullup = < 377 + PULL_DIS 378 + PULL_UP 379 + PULL_DIS 380 + PULL_UP 381 + >; 382 + pinctrl-single,drive-strength = < 383 + DRIVE7_04MA DRIVE6_MASK 384 + >; 385 + }; 386 + 387 + isp0_cfg_func: isp0_cfg_func { 388 + pinctrl-single,pins = < 389 + 0x064 0x0 /* ISP_CLK0 */ 390 + 0x070 0x0 /* ISP_SCL0 */ 391 + 0x074 0x0 /* ISP_SDA0 */ 392 + >; 393 + pinctrl-single,bias-pulldown = < 394 + PULL_DIS 395 + PULL_DOWN 396 + PULL_DIS 397 + PULL_DOWN 398 + >; 399 + pinctrl-single,bias-pullup = < 400 + PULL_DIS 401 + PULL_UP 402 + PULL_DIS 403 + PULL_UP 404 + >; 405 + pinctrl-single,drive-strength = < 406 + DRIVE7_04MA DRIVE6_MASK>; 407 + }; 408 + 409 + isp1_cfg_func: isp1_cfg_func { 410 + pinctrl-single,pins = < 411 + 0x068 0x0 /* ISP_CLK1 */ 412 + 0x078 0x0 /* ISP_SCL1 */ 413 + 0x07c 0x0 /* ISP_SDA1 */ 414 + >; 415 + pinctrl-single,bias-pulldown = < 416 + PULL_DIS 417 + PULL_DOWN 418 + PULL_DIS 419 + PULL_DOWN 420 + >; 421 + pinctrl-single,bias-pullup = < 422 + PULL_DIS 423 + PULL_UP 424 + PULL_DIS 425 + PULL_UP 426 + >; 427 + pinctrl-single,drive-strength = < 428 + DRIVE7_04MA DRIVE6_MASK 429 + >; 430 + }; 431 + 432 + pwr_key_cfg_func: pwr_key_cfg_func { 433 + pinctrl-single,pins = < 434 + 0x08c 0x0 /* GPIO_034 */ 435 + >; 436 + pinctrl-single,bias-pulldown = < 437 + PULL_DIS 438 + PULL_DOWN 439 + PULL_DIS 440 + PULL_DOWN 441 + >; 442 + pinctrl-single,bias-pullup = < 443 + PULL_DIS 444 + PULL_UP 445 + PULL_DIS 446 + PULL_UP 447 + >; 448 + pinctrl-single,drive-strength = < 449 + DRIVE7_02MA DRIVE6_MASK 450 + >; 451 + }; 452 + 453 + uart1_cfg_func: uart1_cfg_func { 454 + pinctrl-single,pins = < 455 + 0x0b4 0x0 /* UART1_RXD */ 456 + 0x0b8 0x0 /* UART1_TXD */ 457 + 0x0bc 0x0 /* UART1_CTS_N */ 458 + 0x0c0 0x0 /* UART1_RTS_N */ 459 + >; 460 + pinctrl-single,bias-pulldown = < 461 + PULL_DIS 462 + PULL_DOWN 463 + PULL_DIS 464 + PULL_DOWN 465 + >; 466 + pinctrl-single,bias-pullup = < 467 + PULL_DIS 468 + PULL_UP 469 + PULL_DIS 470 + PULL_UP 471 + >; 472 + pinctrl-single,drive-strength = < 473 + DRIVE7_02MA DRIVE6_MASK 474 + >; 475 + }; 476 + 477 + uart2_cfg_func: uart2_cfg_func { 478 + pinctrl-single,pins = < 479 + 0x0c8 0x0 /* UART2_CTS_N */ 480 + 0x0cc 0x0 /* UART2_RTS_N */ 481 + 0x0d0 0x0 /* UART2_TXD */ 482 + 0x0d4 0x0 /* UART2_RXD */ 483 + >; 484 + pinctrl-single,bias-pulldown = < 485 + PULL_DIS 486 + PULL_DOWN 487 + PULL_DIS 488 + PULL_DOWN 489 + >; 490 + pinctrl-single,bias-pullup = < 491 + PULL_DIS 492 + PULL_UP 493 + PULL_DIS 494 + PULL_UP 495 + >; 496 + pinctrl-single,drive-strength = < 497 + DRIVE7_02MA DRIVE6_MASK 498 + >; 499 + }; 500 + 501 + uart5_cfg_func: uart5_cfg_func { 502 + pinctrl-single,pins = < 503 + 0x0c8 0x0 /* UART5_RXD */ 504 + 0x0cc 0x0 /* UART5_TXD */ 505 + 0x0d0 0x0 /* UART5_CTS_N */ 506 + 0x0d4 0x0 /* UART5_RTS_N */ 507 + >; 508 + pinctrl-single,bias-pulldown = < 509 + PULL_DIS 510 + PULL_DOWN 511 + PULL_DIS 512 + PULL_DOWN 513 + >; 514 + pinctrl-single,bias-pullup = < 515 + PULL_DIS 516 + PULL_UP 517 + PULL_DIS 518 + PULL_UP 519 + >; 520 + pinctrl-single,drive-strength = < 521 + DRIVE7_02MA DRIVE6_MASK 522 + >; 523 + }; 524 + 525 + cam0_rst_cfg_func: cam0_rst_cfg_func { 526 + pinctrl-single,pins = < 527 + 0x0d4 0x0 /* CAM0_RST */ 528 + >; 529 + pinctrl-single,bias-pulldown = < 530 + PULL_DIS 531 + PULL_DOWN 532 + PULL_DIS 533 + PULL_DOWN 534 + >; 535 + pinctrl-single,bias-pullup = < 536 + PULL_DIS 537 + PULL_UP 538 + PULL_DIS 539 + PULL_UP 540 + >; 541 + pinctrl-single,drive-strength = < 542 + DRIVE7_04MA DRIVE6_MASK 543 + >; 544 + }; 545 + 546 + uart0_cfg_func: uart0_cfg_func { 547 + pinctrl-single,pins = < 548 + 0x0d8 0x0 /* UART0_RXD */ 549 + 0x0dc 0x0 /* UART0_TXD */ 550 + >; 551 + pinctrl-single,bias-pulldown = < 552 + PULL_DIS 553 + PULL_DOWN 554 + PULL_DIS 555 + PULL_DOWN 556 + >; 557 + pinctrl-single,bias-pullup = < 558 + PULL_DIS 559 + PULL_UP 560 + PULL_DIS 561 + PULL_UP 562 + >; 563 + pinctrl-single,drive-strength = < 564 + DRIVE7_02MA DRIVE6_MASK 565 + >; 566 + }; 567 + 568 + uart6_cfg_func: uart6_cfg_func { 569 + pinctrl-single,pins = < 570 + 0x0d8 0x0 /* UART6_CTS_N */ 571 + 0x0dc 0x0 /* UART6_RTS_N */ 572 + 0x0e0 0x0 /* UART6_RXD */ 573 + 0x0e4 0x0 /* UART6_TXD */ 574 + >; 575 + pinctrl-single,bias-pulldown = < 576 + PULL_DIS 577 + PULL_DOWN 578 + PULL_DIS 579 + PULL_DOWN 580 + >; 581 + pinctrl-single,bias-pullup = < 582 + PULL_DIS 583 + PULL_UP 584 + PULL_DIS 585 + PULL_UP 586 + >; 587 + pinctrl-single,drive-strength = < 588 + DRIVE7_02MA DRIVE6_MASK 589 + >; 590 + }; 591 + 592 + uart3_cfg_func: uart3_cfg_func { 593 + pinctrl-single,pins = < 594 + 0x0e8 0x0 /* UART3_CTS_N */ 595 + 0x0ec 0x0 /* UART3_RTS_N */ 596 + 0x0f0 0x0 /* UART3_RXD */ 597 + 0x0f4 0x0 /* UART3_TXD */ 598 + >; 599 + pinctrl-single,bias-pulldown = < 600 + PULL_DIS 601 + PULL_DOWN 602 + PULL_DIS 603 + PULL_DOWN 604 + >; 605 + pinctrl-single,bias-pullup = < 606 + PULL_DIS 607 + PULL_UP 608 + PULL_DIS 609 + PULL_UP 610 + >; 611 + pinctrl-single,drive-strength = < 612 + DRIVE7_02MA DRIVE6_MASK 613 + >; 614 + }; 615 + 616 + uart4_cfg_func: uart4_cfg_func { 617 + pinctrl-single,pins = < 618 + 0x0f8 0x0 /* UART4_CTS_N */ 619 + 0x0fc 0x0 /* UART4_RTS_N */ 620 + 0x100 0x0 /* UART4_RXD */ 621 + 0x104 0x0 /* UART4_TXD */ 622 + >; 623 + pinctrl-single,bias-pulldown = < 624 + PULL_DIS 625 + PULL_DOWN 626 + PULL_DIS 627 + PULL_DOWN 628 + >; 629 + pinctrl-single,bias-pullup = < 630 + PULL_DIS 631 + PULL_UP 632 + PULL_DIS 633 + PULL_UP 634 + >; 635 + pinctrl-single,drive-strength = < 636 + DRIVE7_02MA DRIVE6_MASK 637 + >; 638 + }; 639 + 640 + cam1_rst_cfg_func: cam1_rst_cfg_func { 641 + pinctrl-single,pins = < 642 + 0x130 0x0 /* CAM1_RST */ 643 + >; 644 + pinctrl-single,bias-pulldown = < 645 + PULL_DIS 646 + PULL_DOWN 647 + PULL_DIS 648 + PULL_DOWN 649 + >; 650 + pinctrl-single,bias-pullup = < 651 + PULL_DIS 652 + PULL_UP 653 + PULL_DIS 654 + PULL_UP 655 + >; 656 + pinctrl-single,drive-strength = < 657 + DRIVE7_04MA DRIVE6_MASK 658 + >; 659 + }; 660 + }; 661 + 662 + pmx6: pinmux@ff3b6800 { 663 + compatible = "pinconf-single"; 664 + reg = <0x0 0xff3b6800 0x0 0x18>; 665 + #pinctrl-cells = <1>; 666 + pinctrl-single,register-width = <0x20>; 667 + 668 + ufs_cfg_func: ufs_cfg_func { 669 + pinctrl-single,pins = < 670 + 0x000 0x0 /* UFS_REF_CLK */ 671 + 0x004 0x0 /* UFS_RST_N */ 672 + >; 673 + pinctrl-single,bias-pulldown = < 674 + PULL_DIS 675 + PULL_DOWN 676 + PULL_DIS 677 + PULL_DOWN 678 + >; 679 + pinctrl-single,bias-pullup = < 680 + PULL_DIS 681 + PULL_UP 682 + PULL_DIS 683 + PULL_UP 684 + >; 685 + pinctrl-single,drive-strength = < 686 + DRIVE7_08MA DRIVE6_MASK 687 + >; 688 + }; 689 + 690 + spi3_cfg_func: spi3_cfg_func { 691 + pinctrl-single,pins = < 692 + 0x008 0x0 /* SPI3_CLK */ 693 + 0x0 /* SPI3_DI */ 694 + 0x010 0x0 /* SPI3_DO */ 695 + 0x014 0x0 /* SPI3_CS0_N */ 696 + >; 697 + pinctrl-single,bias-pulldown = < 698 + PULL_DIS 699 + PULL_DOWN 700 + PULL_DIS 701 + PULL_DOWN 702 + >; 703 + pinctrl-single,bias-pullup = < 704 + PULL_DIS 705 + PULL_UP 706 + PULL_DIS 707 + PULL_UP 708 + >; 709 + pinctrl-single,drive-strength = < 710 + DRIVE7_02MA DRIVE6_MASK 711 + >; 712 + }; 713 + }; 714 + 715 + pmx7: pinmux@ff3fd800 { 320 716 compatible = "pinconf-single"; 321 717 reg = <0x0 0xff3fd800 0x0 0x18>; 322 718 #pinctrl-cells = <1>; 323 - #address-cells = <1>; 324 - #size-cells = <1>; 325 - pinctrl-single,register-width = <32>; 719 + pinctrl-single,register-width = <0x20>; 326 720 327 721 sdio_clk_cfg_func: sdio_clk_cfg_func { 328 722 pinctrl-single,pins = < ··· 761 315 PULL_UP 762 316 >; 763 317 pinctrl-single,drive-strength = < 764 - DRIVE6_32MA 765 - DRIVE6_MASK 318 + DRIVE6_32MA DRIVE6_MASK 766 319 >; 767 320 }; 768 321 ··· 786 341 PULL_UP 787 342 >; 788 343 pinctrl-single,drive-strength = < 789 - DRIVE6_19MA 790 - DRIVE6_MASK 344 + DRIVE6_19MA DRIVE6_MASK 791 345 >; 792 346 }; 793 347 }; 794 348 795 - pmx6: pinmux@ff37e800 { 349 + pmx8: pinmux@ff37e800 { 796 350 compatible = "pinconf-single"; 797 351 reg = <0x0 0xff37e800 0x0 0x18>; 798 352 #pinctrl-cells = <1>; 799 - #address-cells = <1>; 800 - #size-cells = <1>; 801 - pinctrl-single,register-width = <32>; 353 + pinctrl-single,register-width = <0x20>; 802 354 803 355 sd_clk_cfg_func: sd_clk_cfg_func { 804 356 pinctrl-single,pins = < ··· 842 400 pinctrl-single,drive-strength = < 843 401 DRIVE6_19MA 844 402 DRIVE6_MASK 403 + >; 404 + }; 405 + }; 406 + 407 + pmx9: pinmux@fff11800 { 408 + compatible = "pinconf-single"; 409 + reg = <0x0 0xfff11800 0x0 0xbc>; 410 + #pinctrl-cells = <1>; 411 + pinctrl-single,register-width = <0x20>; 412 + 413 + i2c0_cfg_func: i2c0_cfg_func { 414 + pinctrl-single,pins = < 415 + 0x01c 0x0 /* I2C0_SCL */ 416 + 0x020 0x0 /* I2C0_SDA */ 417 + >; 418 + pinctrl-single,bias-pulldown = < 419 + PULL_DIS 420 + PULL_DOWN 421 + PULL_DIS 422 + PULL_DOWN 423 + >; 424 + pinctrl-single,bias-pullup = < 425 + PULL_UP 426 + PULL_UP 427 + PULL_DIS 428 + PULL_UP 429 + >; 430 + pinctrl-single,drive-strength = < 431 + DRIVE7_02MA DRIVE6_MASK 432 + >; 433 + }; 434 + 435 + i2c1_cfg_func: i2c1_cfg_func { 436 + pinctrl-single,pins = < 437 + 0x024 0x0 /* I2C1_SCL */ 438 + 0x028 0x0 /* I2C1_SDA */ 439 + >; 440 + pinctrl-single,bias-pulldown = < 441 + PULL_DIS 442 + PULL_DOWN 443 + PULL_DIS 444 + PULL_DOWN 445 + >; 446 + pinctrl-single,bias-pullup = < 447 + PULL_UP 448 + PULL_UP 449 + PULL_DIS 450 + PULL_UP 451 + >; 452 + pinctrl-single,drive-strength = < 453 + DRIVE7_02MA DRIVE6_MASK 454 + >; 455 + }; 456 + 457 + i2c7_cfg_func: i2c7_cfg_func { 458 + pinctrl-single,pins = < 459 + 0x02c 0x0 /* I2C7_SCL */ 460 + 0x030 0x0 /* I2C7_SDA */ 461 + >; 462 + pinctrl-single,bias-pulldown = < 463 + PULL_DIS 464 + PULL_DOWN 465 + PULL_DIS 466 + PULL_DOWN 467 + >; 468 + pinctrl-single,bias-pullup = < 469 + PULL_UP 470 + PULL_UP 471 + PULL_DIS 472 + PULL_UP 473 + >; 474 + pinctrl-single,drive-strength = < 475 + DRIVE7_02MA DRIVE6_MASK 476 + >; 477 + }; 478 + 479 + slimbus_cfg_func: slimbus_cfg_func { 480 + pinctrl-single,pins = < 481 + 0x034 0x0 /* SLIMBUS_CLK */ 482 + 0x038 0x0 /* SLIMBUS_DATA */ 483 + >; 484 + pinctrl-single,bias-pulldown = < 485 + PULL_DIS 486 + PULL_DOWN 487 + PULL_DIS 488 + PULL_DOWN 489 + >; 490 + pinctrl-single,bias-pullup = < 491 + PULL_UP 492 + PULL_UP 493 + PULL_DIS 494 + PULL_UP 495 + >; 496 + pinctrl-single,drive-strength = < 497 + DRIVE7_02MA DRIVE6_MASK 498 + >; 499 + }; 500 + 501 + i2s0_cfg_func: i2s0_cfg_func { 502 + pinctrl-single,pins = < 503 + 0x040 0x0 /* I2S0_DI */ 504 + 0x044 0x0 /* I2S0_DO */ 505 + 0x048 0x0 /* I2S0_XCLK */ 506 + 0x04c 0x0 /* I2S0_XFS */ 507 + >; 508 + pinctrl-single,bias-pulldown = < 509 + PULL_DIS 510 + PULL_DOWN 511 + PULL_DIS 512 + PULL_DOWN 513 + >; 514 + pinctrl-single,bias-pullup = < 515 + PULL_UP 516 + PULL_UP 517 + PULL_DIS 518 + PULL_UP 519 + >; 520 + pinctrl-single,drive-strength = < 521 + DRIVE7_02MA DRIVE6_MASK 522 + >; 523 + }; 524 + 525 + i2s2_cfg_func: i2s2_cfg_func { 526 + pinctrl-single,pins = < 527 + 0x050 0x0 /* I2S2_DI */ 528 + 0x054 0x0 /* I2S2_DO */ 529 + 0x058 0x0 /* I2S2_XCLK */ 530 + 0x05c 0x0 /* I2S2_XFS */ 531 + >; 532 + pinctrl-single,bias-pulldown = < 533 + PULL_DIS 534 + PULL_DOWN 535 + PULL_DIS 536 + PULL_DOWN 537 + >; 538 + pinctrl-single,bias-pullup = < 539 + PULL_UP 540 + PULL_UP 541 + PULL_DIS 542 + PULL_UP 543 + >; 544 + pinctrl-single,drive-strength = < 545 + DRIVE7_02MA DRIVE6_MASK 546 + >; 547 + }; 548 + 549 + pcie_cfg_func: pcie_cfg_func { 550 + pinctrl-single,pins = < 551 + 0x094 0x0 /* PCIE_CLKREQ_N */ 552 + 0x098 0x0 /* PCIE_WAKE_N */ 553 + >; 554 + pinctrl-single,bias-pulldown = < 555 + PULL_DIS 556 + PULL_DOWN 557 + PULL_DIS 558 + PULL_DOWN 559 + >; 560 + pinctrl-single,bias-pullup = < 561 + PULL_UP 562 + PULL_UP 563 + PULL_DIS 564 + PULL_UP 565 + >; 566 + pinctrl-single,drive-strength = < 567 + DRIVE7_02MA DRIVE6_MASK 568 + >; 569 + }; 570 + 571 + spi2_cfg_func: spi2_cfg_func { 572 + pinctrl-single,pins = < 573 + 0x09c 0x0 /* SPI2_CLK */ 574 + 0x0a0 0x0 /* SPI2_DI */ 575 + 0x0a4 0x0 /* SPI2_DO */ 576 + 0x0a8 0x0 /* SPI2_CS0_N */ 577 + >; 578 + pinctrl-single,bias-pulldown = < 579 + PULL_DIS 580 + PULL_DOWN 581 + PULL_DIS 582 + PULL_DOWN 583 + >; 584 + pinctrl-single,bias-pullup = < 585 + PULL_UP 586 + PULL_UP 587 + PULL_DIS 588 + PULL_UP 589 + >; 590 + pinctrl-single,drive-strength = < 591 + DRIVE7_02MA DRIVE6_MASK 592 + >; 593 + }; 594 + 595 + usb_cfg_func: usb_cfg_func { 596 + pinctrl-single,pins = < 597 + 0x0ac 0x0 /* GPIO_219 */ 598 + >; 599 + pinctrl-single,bias-pulldown = < 600 + PULL_DIS 601 + PULL_DOWN 602 + PULL_DIS 603 + PULL_DOWN 604 + >; 605 + pinctrl-single,bias-pullup = < 606 + PULL_UP 607 + PULL_UP 608 + PULL_DIS 609 + PULL_UP 610 + >; 611 + pinctrl-single,drive-strength = < 612 + DRIVE7_02MA DRIVE6_MASK 845 613 >; 846 614 }; 847 615 };