ARM: SoC fixes for 4.14-rc
Our first batch of fixes this release cycle, unfortunately a bit noisier than usual. Two major groups stand out: - Some pinctril dts/dtsi changes for stm32 due to a new driver being merged during the merge window, and this aligns the DT contents between the old format and the new. This could arguably be moved to the next merge window but it also seemed relatively harmless to include now. - Amlogic/meson had driver changes merged that required devicetree changes to avoid functional/performance regressions. I've already asked them to be more careful about this going forward, and making sure drivers are compatible with older DTs when they make these kind of changes. The platform is actively being upstreamed so there's a few things in flight, we've seen this happen before and sometimes it's hard to catch in time. Besides that there is the usual mix of minor fixes. -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEElf+HevZ4QCAJmMQ+jBrnPN6EHHcFAlnVaI8PHG9sb2ZAbGl4 b20ubmV0AAoJEIwa5zzehBx3Xc4QAKlPYT8G91Qa01eUhZQK3HLFgC7t7T6o1SZN xFcJ1gC/C1KkN1UD5Msyf9BRWn6mgLSprGzhoihXJ4wiXKXZhkJUkUWbjMkuHzIK Cx6sKlnlsxXGa1SvLCn2f5pmXHiJApWiSoYEu2JhIH1L+h2kMbsdkICIWxJ+PwJI S6Zceghfz0cc685rkG9xpn6907EzmeIEgGpMfeXpI/R5NYeY3HgZ9hKaLxYVgc0i TVMwPEQ7YHmaSQwDxm2bhs2BJYqvbML4VMdLBf4w5bs0XuMIYAuImIYa1UlR/Fpk mv51qi/5JsABXhXTL8IoWlOOJMMIa0jXIEvh5tmyq2UT+6IRUiH7TWPtcAVVejSL +HIHI7yuxtAq3sGMt37nSc20kWIUhONfkYJCh8iQLgIBWMWCFO247Rfi555DQgIC n7omV+6Oqi+QrDCj7Fj8chFIDIuvjUcYv8qkuOjV69EIZ1ZyGPe4ea6n6exkW7AT +7J/TO42cqgRc0CQXoXW3L9Bi94PQmN3y7ivI75698q5C7v75aB6EirAwXRZhtiP d4ejq44X0b9S3Fe60cakGvT1ZS9LyFSy5nRfcjHuZhk2t5DIUEGi0io59w9uqoXq nl3IQ75jHuVk7a5sAb5cKPzMLYOVS6vV8IdazWhdBbZ2tVvt/DAaEL4vKcGhemSV PV4JNLcM =/0Nj -----END PGP SIGNATURE----- Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "Our first batch of fixes this release cycle, unfortunately a bit noisier than usual. Two major groups stand out: - Some pinctril dts/dtsi changes for stm32 due to a new driver being merged during the merge window, and this aligns the DT contents between the old format and the new. This could arguably be moved to the next merge window but it also seemed relatively harmless to include now. - Amlogic/meson had driver changes merged that required devicetree changes to avoid functional/performance regressions. I've already asked them to be more careful about this going forward, and making sure drivers are compatible with older DTs when they make these kind of changes. The platform is actively being upstreamed so there's a few things in flight, we've seen this happen before and sometimes it's hard to catch in time. Besides that there is the usual mix of minor fixes" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (33 commits) ARM: dts: stm32: use right pinctrl compatible for stm32f469 ARM: dts: stm32: Fix STMPE1600 binding on stm32429i-eval board ARM: defconfig: update Gemini defconfig ARM: defconfig: FRAMEBUFFER_CONSOLE can no longer be =m arm64: dts: rockchip: add the grf clk for dw-mipi-dsi on rk3399 reset: Restrict RESET_HSDK to ARC_SOC_HSDK or COMPILE_TEST ARM: dts: da850-evm: add serial and ethernet aliases ARM: dts: am43xx-epos-evm: Remove extra CPSW EMAC entry ARM: dts: am33xx: Add spi alias to match SOC schematics ARM: OMAP2+: hsmmc: fix logic to call either omap_hsmmc_init or omap_hsmmc_late_init but not both ARM: dts: dra7: Set a default parent to mcasp3_ahclkx_mux ARM: OMAP2+: dra7xx: Set OPT_CLKS_IN_RESET flag for gpio1 ARM: dts: nokia n900: drop unneeded/undocumented parts of the dts arm64: dts: rockchip: Correct MIPI DPHY PLL clock on rk3399 arm64: dt marvell: Fix AP806 system controller size MAINTAINERS: add Macchiatobin maintainers entry ARC: reset: remove the misleading v1 suffix all over ARC: reset: add missing DT binding documentation for HSDKv1 reset driver ARC: reset: Only build on archs that have IOMEM ARM: at91: Replace uses of virt_to_phys with __pa_symbol ...
This commit is contained in:
commit
42b76d0e6b
44 changed files with 810 additions and 503 deletions
28
Documentation/devicetree/bindings/reset/snps,hsdk-reset.txt
Normal file
28
Documentation/devicetree/bindings/reset/snps,hsdk-reset.txt
Normal file
|
@ -0,0 +1,28 @@
|
|||
Binding for the Synopsys HSDK reset controller
|
||||
|
||||
This binding uses the common reset binding[1].
|
||||
|
||||
[1] Documentation/devicetree/bindings/reset/reset.txt
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "snps,hsdk-reset".
|
||||
- reg: should always contain 2 pairs address - length: first for reset
|
||||
configuration register and second for corresponding SW reset and status bits
|
||||
register.
|
||||
- #reset-cells: from common reset binding; Should always be set to 1.
|
||||
|
||||
Example:
|
||||
reset: reset@880 {
|
||||
compatible = "snps,hsdk-reset";
|
||||
#reset-cells = <1>;
|
||||
reg = <0x8A0 0x4>, <0xFF0 0x4>;
|
||||
};
|
||||
|
||||
Specifying reset lines connected to IP modules:
|
||||
ethernet@.... {
|
||||
....
|
||||
resets = <&reset HSDK_V1_ETH_RESET>;
|
||||
....
|
||||
};
|
||||
|
||||
The index could be found in <dt-bindings/reset/snps,hsdk-reset.h>
|
12
MAINTAINERS
12
MAINTAINERS
|
@ -8264,6 +8264,12 @@ L: libertas-dev@lists.infradead.org
|
|||
S: Orphan
|
||||
F: drivers/net/wireless/marvell/libertas/
|
||||
|
||||
MARVELL MACCHIATOBIN SUPPORT
|
||||
M: Russell King <rmk@armlinux.org.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org
|
||||
S: Maintained
|
||||
F: arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
|
||||
|
||||
MARVELL MV643XX ETHERNET DRIVER
|
||||
M: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
|
||||
L: netdev@vger.kernel.org
|
||||
|
@ -12931,9 +12937,9 @@ F: drivers/mmc/host/dw_mmc*
|
|||
SYNOPSYS HSDK RESET CONTROLLER DRIVER
|
||||
M: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
|
||||
S: Supported
|
||||
F: drivers/reset/reset-hsdk-v1.c
|
||||
F: include/dt-bindings/reset/snps,hsdk-v1-reset.h
|
||||
F: Documentation/devicetree/bindings/reset/snps,hsdk-v1-reset.txt
|
||||
F: drivers/reset/reset-hsdk.c
|
||||
F: include/dt-bindings/reset/snps,hsdk-reset.h
|
||||
F: Documentation/devicetree/bindings/reset/snps,hsdk-reset.txt
|
||||
|
||||
SYSTEM CONFIGURATION (SYSCON)
|
||||
M: Lee Jones <lee.jones@linaro.org>
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
phy1 = &usb1_phy;
|
||||
ethernet0 = &cpsw_emac0;
|
||||
ethernet1 = &cpsw_emac1;
|
||||
spi0 = &spi0;
|
||||
spi1 = &spi1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
|
|
@ -388,6 +388,7 @@
|
|||
pinctrl-0 = <&cpsw_default>;
|
||||
pinctrl-1 = <&cpsw_sleep>;
|
||||
status = "okay";
|
||||
slaves = <1>;
|
||||
};
|
||||
|
||||
&davinci_mdio {
|
||||
|
@ -402,11 +403,6 @@
|
|||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&cpsw_emac1 {
|
||||
phy_id = <&davinci_mdio>, <1>;
|
||||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&phy_sel {
|
||||
rmii-clock-ext;
|
||||
};
|
||||
|
|
|
@ -67,7 +67,10 @@
|
|||
|
||||
usb1: ohci@00400000 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>;
|
||||
atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */
|
||||
&pioA PIN_PA27 GPIO_ACTIVE_HIGH
|
||||
0
|
||||
>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usb_default>;
|
||||
status = "okay";
|
||||
|
@ -120,7 +123,7 @@
|
|||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mikrobus2_uart>;
|
||||
atmel,use-dma-rx;
|
||||
atmel-use-dma-tx;
|
||||
atmel,use-dma-tx;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -178,7 +181,7 @@
|
|||
uart4: serial@fc00c000 {
|
||||
atmel,use-dma-rx;
|
||||
atmel,use-dma-tx;
|
||||
pinctrl-name = "default";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mikrobus1_uart>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -330,7 +333,7 @@
|
|||
};
|
||||
|
||||
pinctrl_led_gpio_default: led_gpio_default {
|
||||
pinmux = <PIN_PA27__GPIO>,
|
||||
pinmux = <PIN_PA10__GPIO>,
|
||||
<PIN_PB1__GPIO>,
|
||||
<PIN_PA31__GPIO>;
|
||||
bias-pull-up;
|
||||
|
@ -396,7 +399,7 @@
|
|||
};
|
||||
|
||||
pinctrl_usb_default: usb_default {
|
||||
pinmux = <PIN_PA10__GPIO>,
|
||||
pinmux = <PIN_PA27__GPIO>,
|
||||
<PIN_PD19__GPIO>;
|
||||
bias-disable;
|
||||
};
|
||||
|
@ -520,17 +523,17 @@
|
|||
|
||||
red {
|
||||
label = "red";
|
||||
gpios = <&pioA PIN_PA27 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
green {
|
||||
label = "green";
|
||||
gpios = <&pioA PIN_PB1 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
blue {
|
||||
label = "blue";
|
||||
gpios = <&pioA PIN_PA31 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -15,6 +15,13 @@
|
|||
compatible = "ti,da850-evm", "ti,da850";
|
||||
model = "DA850/AM1808/OMAP-L138 EVM";
|
||||
|
||||
aliases {
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
serial2 = &serial2;
|
||||
ethernet0 = ð0;
|
||||
};
|
||||
|
||||
soc@1c00000 {
|
||||
pmx_core: pinmux@14120 {
|
||||
status = "okay";
|
||||
|
|
|
@ -1817,6 +1817,8 @@
|
|||
clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atl_clkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>;
|
||||
ti,bit-shift = <24>;
|
||||
reg = <0x1868>;
|
||||
assigned-clocks = <&mcasp3_ahclkx_mux>;
|
||||
assigned-clock-parents = <&abe_24m_fclk>;
|
||||
};
|
||||
|
||||
mcasp3_aux_gfclk_mux: mcasp3_aux_gfclk_mux@1868 {
|
||||
|
|
|
@ -144,15 +144,6 @@
|
|||
io-channel-names = "temp", "bsi", "vbat";
|
||||
};
|
||||
|
||||
rear_camera: camera@0 {
|
||||
compatible = "linux,camera";
|
||||
|
||||
module {
|
||||
model = "TCM8341MD";
|
||||
sensor = <&cam1>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm9: dmtimer-pwm {
|
||||
compatible = "ti,omap-dmtimer-pwm";
|
||||
#pwm-cells = <3>;
|
||||
|
@ -189,10 +180,8 @@
|
|||
clock-lanes = <1>;
|
||||
data-lanes = <0>;
|
||||
lane-polarity = <0 0>;
|
||||
clock-inv = <0>;
|
||||
/* Select strobe = <1> for back camera, <0> for front camera */
|
||||
strobe = <1>;
|
||||
crc = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
/dts-v1/;
|
||||
#include "stm32f429.dtsi"
|
||||
#include "stm32f429-pinctrl.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
|
@ -202,10 +203,8 @@
|
|||
stmpe1600: stmpe1600@42 {
|
||||
compatible = "st,stmpe1600";
|
||||
reg = <0x42>;
|
||||
irq-gpio = <&gpioi 8 0>;
|
||||
irq-trigger = <3>;
|
||||
interrupts = <8 3>;
|
||||
interrupt-parent = <&exti>;
|
||||
interrupt-parent = <&gpioi>;
|
||||
interrupt-controller;
|
||||
wakeup-source;
|
||||
|
||||
|
|
343
arch/arm/boot/dts/stm32f4-pinctrl.dtsi
Normal file
343
arch/arm/boot/dts/stm32f4-pinctrl.dtsi
Normal file
|
@ -0,0 +1,343 @@
|
|||
/*
|
||||
* Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/stm32f429-pinfunc.h>
|
||||
#include <dt-bindings/mfd/stm32f4-rcc.h>
|
||||
|
||||
/ {
|
||||
soc {
|
||||
pinctrl: pin-controller {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x40020000 0x3000>;
|
||||
interrupt-parent = <&exti>;
|
||||
st,syscfg = <&syscfg 0x8>;
|
||||
pins-are-numbered;
|
||||
|
||||
gpioa: gpio@40020000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x0 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>;
|
||||
st,bank-name = "GPIOA";
|
||||
};
|
||||
|
||||
gpiob: gpio@40020400 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x400 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>;
|
||||
st,bank-name = "GPIOB";
|
||||
};
|
||||
|
||||
gpioc: gpio@40020800 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x800 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>;
|
||||
st,bank-name = "GPIOC";
|
||||
};
|
||||
|
||||
gpiod: gpio@40020c00 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0xc00 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>;
|
||||
st,bank-name = "GPIOD";
|
||||
};
|
||||
|
||||
gpioe: gpio@40021000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1000 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>;
|
||||
st,bank-name = "GPIOE";
|
||||
};
|
||||
|
||||
gpiof: gpio@40021400 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1400 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>;
|
||||
st,bank-name = "GPIOF";
|
||||
};
|
||||
|
||||
gpiog: gpio@40021800 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1800 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>;
|
||||
st,bank-name = "GPIOG";
|
||||
};
|
||||
|
||||
gpioh: gpio@40021c00 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1c00 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>;
|
||||
st,bank-name = "GPIOH";
|
||||
};
|
||||
|
||||
gpioi: gpio@40022000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x2000 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>;
|
||||
st,bank-name = "GPIOI";
|
||||
};
|
||||
|
||||
gpioj: gpio@40022400 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x2400 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>;
|
||||
st,bank-name = "GPIOJ";
|
||||
};
|
||||
|
||||
gpiok: gpio@40022800 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x2800 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>;
|
||||
st,bank-name = "GPIOK";
|
||||
};
|
||||
|
||||
usart1_pins_a: usart1@0 {
|
||||
pins1 {
|
||||
pinmux = <STM32F429_PA9_FUNC_USART1_TX>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
pins2 {
|
||||
pinmux = <STM32F429_PA10_FUNC_USART1_RX>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
usart3_pins_a: usart3@0 {
|
||||
pins1 {
|
||||
pinmux = <STM32F429_PB10_FUNC_USART3_TX>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
pins2 {
|
||||
pinmux = <STM32F429_PB11_FUNC_USART3_RX>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg_fs_pins_a: usbotg_fs@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PA10_FUNC_OTG_FS_ID>,
|
||||
<STM32F429_PA11_FUNC_OTG_FS_DM>,
|
||||
<STM32F429_PA12_FUNC_OTG_FS_DP>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg_fs_pins_b: usbotg_fs@1 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PB12_FUNC_OTG_HS_ID>,
|
||||
<STM32F429_PB14_FUNC_OTG_HS_DM>,
|
||||
<STM32F429_PB15_FUNC_OTG_HS_DP>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg_hs_pins_a: usbotg_hs@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>,
|
||||
<STM32F429_PI11_FUNC_OTG_HS_ULPI_DIR>,
|
||||
<STM32F429_PC0_FUNC_OTG_HS_ULPI_STP>,
|
||||
<STM32F429_PA5_FUNC_OTG_HS_ULPI_CK>,
|
||||
<STM32F429_PA3_FUNC_OTG_HS_ULPI_D0>,
|
||||
<STM32F429_PB0_FUNC_OTG_HS_ULPI_D1>,
|
||||
<STM32F429_PB1_FUNC_OTG_HS_ULPI_D2>,
|
||||
<STM32F429_PB10_FUNC_OTG_HS_ULPI_D3>,
|
||||
<STM32F429_PB11_FUNC_OTG_HS_ULPI_D4>,
|
||||
<STM32F429_PB12_FUNC_OTG_HS_ULPI_D5>,
|
||||
<STM32F429_PB13_FUNC_OTG_HS_ULPI_D6>,
|
||||
<STM32F429_PB5_FUNC_OTG_HS_ULPI_D7>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
ethernet_mii: mii@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0>,
|
||||
<STM32F429_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1>,
|
||||
<STM32F429_PC2_FUNC_ETH_MII_TXD2>,
|
||||
<STM32F429_PB8_FUNC_ETH_MII_TXD3>,
|
||||
<STM32F429_PC3_FUNC_ETH_MII_TX_CLK>,
|
||||
<STM32F429_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN>,
|
||||
<STM32F429_PA2_FUNC_ETH_MDIO>,
|
||||
<STM32F429_PC1_FUNC_ETH_MDC>,
|
||||
<STM32F429_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK>,
|
||||
<STM32F429_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV>,
|
||||
<STM32F429_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0>,
|
||||
<STM32F429_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1>,
|
||||
<STM32F429_PH6_FUNC_ETH_MII_RXD2>,
|
||||
<STM32F429_PH7_FUNC_ETH_MII_RXD3>;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
adc3_in8_pin: adc@200 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PF10_FUNC_ANALOG>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm1_pins: pwm@1 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PA8_FUNC_TIM1_CH1>,
|
||||
<STM32F429_PB13_FUNC_TIM1_CH1N>,
|
||||
<STM32F429_PB12_FUNC_TIM1_BKIN>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm3_pins: pwm@3 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PB4_FUNC_TIM3_CH1>,
|
||||
<STM32F429_PB5_FUNC_TIM3_CH2>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>,
|
||||
<STM32F429_PB6_FUNC_I2C1_SCL>;
|
||||
bias-disable;
|
||||
drive-open-drain;
|
||||
slew-rate = <3>;
|
||||
};
|
||||
};
|
||||
|
||||
ltdc_pins: ltdc@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PI12_FUNC_LCD_HSYNC>,
|
||||
<STM32F429_PI13_FUNC_LCD_VSYNC>,
|
||||
<STM32F429_PI14_FUNC_LCD_CLK>,
|
||||
<STM32F429_PI15_FUNC_LCD_R0>,
|
||||
<STM32F429_PJ0_FUNC_LCD_R1>,
|
||||
<STM32F429_PJ1_FUNC_LCD_R2>,
|
||||
<STM32F429_PJ2_FUNC_LCD_R3>,
|
||||
<STM32F429_PJ3_FUNC_LCD_R4>,
|
||||
<STM32F429_PJ4_FUNC_LCD_R5>,
|
||||
<STM32F429_PJ5_FUNC_LCD_R6>,
|
||||
<STM32F429_PJ6_FUNC_LCD_R7>,
|
||||
<STM32F429_PJ7_FUNC_LCD_G0>,
|
||||
<STM32F429_PJ8_FUNC_LCD_G1>,
|
||||
<STM32F429_PJ9_FUNC_LCD_G2>,
|
||||
<STM32F429_PJ10_FUNC_LCD_G3>,
|
||||
<STM32F429_PJ11_FUNC_LCD_G4>,
|
||||
<STM32F429_PJ12_FUNC_LCD_B0>,
|
||||
<STM32F429_PJ13_FUNC_LCD_B1>,
|
||||
<STM32F429_PJ14_FUNC_LCD_B2>,
|
||||
<STM32F429_PJ15_FUNC_LCD_B3>,
|
||||
<STM32F429_PK0_FUNC_LCD_G5>,
|
||||
<STM32F429_PK1_FUNC_LCD_G6>,
|
||||
<STM32F429_PK2_FUNC_LCD_G7>,
|
||||
<STM32F429_PK3_FUNC_LCD_B4>,
|
||||
<STM32F429_PK4_FUNC_LCD_B5>,
|
||||
<STM32F429_PK5_FUNC_LCD_B6>,
|
||||
<STM32F429_PK6_FUNC_LCD_B7>,
|
||||
<STM32F429_PK7_FUNC_LCD_DE>;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
dcmi_pins: dcmi@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PA4_FUNC_DCMI_HSYNC>,
|
||||
<STM32F429_PB7_FUNC_DCMI_VSYNC>,
|
||||
<STM32F429_PA6_FUNC_DCMI_PIXCLK>,
|
||||
<STM32F429_PC6_FUNC_DCMI_D0>,
|
||||
<STM32F429_PC7_FUNC_DCMI_D1>,
|
||||
<STM32F429_PC8_FUNC_DCMI_D2>,
|
||||
<STM32F429_PC9_FUNC_DCMI_D3>,
|
||||
<STM32F429_PC11_FUNC_DCMI_D4>,
|
||||
<STM32F429_PD3_FUNC_DCMI_D5>,
|
||||
<STM32F429_PB8_FUNC_DCMI_D6>,
|
||||
<STM32F429_PE6_FUNC_DCMI_D7>,
|
||||
<STM32F429_PC10_FUNC_DCMI_D8>,
|
||||
<STM32F429_PC12_FUNC_DCMI_D9>,
|
||||
<STM32F429_PD6_FUNC_DCMI_D10>,
|
||||
<STM32F429_PD2_FUNC_DCMI_D11>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
/dts-v1/;
|
||||
#include "stm32f429.dtsi"
|
||||
#include "stm32f429-pinctrl.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
|
|
95
arch/arm/boot/dts/stm32f429-pinctrl.dtsi
Normal file
95
arch/arm/boot/dts/stm32f429-pinctrl.dtsi
Normal file
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
* Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "stm32f4-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
pinctrl: pin-controller {
|
||||
compatible = "st,stm32f429-pinctrl";
|
||||
|
||||
gpioa: gpio@40020000 {
|
||||
gpio-ranges = <&pinctrl 0 0 16>;
|
||||
};
|
||||
|
||||
gpiob: gpio@40020400 {
|
||||
gpio-ranges = <&pinctrl 0 16 16>;
|
||||
};
|
||||
|
||||
gpioc: gpio@40020800 {
|
||||
gpio-ranges = <&pinctrl 0 32 16>;
|
||||
};
|
||||
|
||||
gpiod: gpio@40020c00 {
|
||||
gpio-ranges = <&pinctrl 0 48 16>;
|
||||
};
|
||||
|
||||
gpioe: gpio@40021000 {
|
||||
gpio-ranges = <&pinctrl 0 64 16>;
|
||||
};
|
||||
|
||||
gpiof: gpio@40021400 {
|
||||
gpio-ranges = <&pinctrl 0 80 16>;
|
||||
};
|
||||
|
||||
gpiog: gpio@40021800 {
|
||||
gpio-ranges = <&pinctrl 0 96 16>;
|
||||
};
|
||||
|
||||
gpioh: gpio@40021c00 {
|
||||
gpio-ranges = <&pinctrl 0 112 16>;
|
||||
};
|
||||
|
||||
gpioi: gpio@40022000 {
|
||||
gpio-ranges = <&pinctrl 0 128 16>;
|
||||
};
|
||||
|
||||
gpioj: gpio@40022400 {
|
||||
gpio-ranges = <&pinctrl 0 144 16>;
|
||||
};
|
||||
|
||||
gpiok: gpio@40022800 {
|
||||
gpio-ranges = <&pinctrl 0 160 8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -47,7 +47,6 @@
|
|||
|
||||
#include "skeleton.dtsi"
|
||||
#include "armv7-m.dtsi"
|
||||
#include <dt-bindings/pinctrl/stm32f429-pinfunc.h>
|
||||
#include <dt-bindings/clock/stm32fx-clock.h>
|
||||
#include <dt-bindings/mfd/stm32f4-rcc.h>
|
||||
|
||||
|
@ -591,302 +590,6 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl: pin-controller {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "st,stm32f429-pinctrl";
|
||||
ranges = <0 0x40020000 0x3000>;
|
||||
interrupt-parent = <&exti>;
|
||||
st,syscfg = <&syscfg 0x8>;
|
||||
pins-are-numbered;
|
||||
|
||||
gpioa: gpio@40020000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x0 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>;
|
||||
st,bank-name = "GPIOA";
|
||||
};
|
||||
|
||||
gpiob: gpio@40020400 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x400 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>;
|
||||
st,bank-name = "GPIOB";
|
||||
};
|
||||
|
||||
gpioc: gpio@40020800 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x800 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>;
|
||||
st,bank-name = "GPIOC";
|
||||
};
|
||||
|
||||
gpiod: gpio@40020c00 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0xc00 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>;
|
||||
st,bank-name = "GPIOD";
|
||||
};
|
||||
|
||||
gpioe: gpio@40021000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1000 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>;
|
||||
st,bank-name = "GPIOE";
|
||||
};
|
||||
|
||||
gpiof: gpio@40021400 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1400 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>;
|
||||
st,bank-name = "GPIOF";
|
||||
};
|
||||
|
||||
gpiog: gpio@40021800 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1800 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>;
|
||||
st,bank-name = "GPIOG";
|
||||
};
|
||||
|
||||
gpioh: gpio@40021c00 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x1c00 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>;
|
||||
st,bank-name = "GPIOH";
|
||||
};
|
||||
|
||||
gpioi: gpio@40022000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x2000 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>;
|
||||
st,bank-name = "GPIOI";
|
||||
};
|
||||
|
||||
gpioj: gpio@40022400 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x2400 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>;
|
||||
st,bank-name = "GPIOJ";
|
||||
};
|
||||
|
||||
gpiok: gpio@40022800 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x2800 0x400>;
|
||||
clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>;
|
||||
st,bank-name = "GPIOK";
|
||||
};
|
||||
|
||||
usart1_pins_a: usart1@0 {
|
||||
pins1 {
|
||||
pinmux = <STM32F429_PA9_FUNC_USART1_TX>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
pins2 {
|
||||
pinmux = <STM32F429_PA10_FUNC_USART1_RX>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
usart3_pins_a: usart3@0 {
|
||||
pins1 {
|
||||
pinmux = <STM32F429_PB10_FUNC_USART3_TX>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
pins2 {
|
||||
pinmux = <STM32F429_PB11_FUNC_USART3_RX>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg_fs_pins_a: usbotg_fs@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PA10_FUNC_OTG_FS_ID>,
|
||||
<STM32F429_PA11_FUNC_OTG_FS_DM>,
|
||||
<STM32F429_PA12_FUNC_OTG_FS_DP>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg_fs_pins_b: usbotg_fs@1 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PB12_FUNC_OTG_HS_ID>,
|
||||
<STM32F429_PB14_FUNC_OTG_HS_DM>,
|
||||
<STM32F429_PB15_FUNC_OTG_HS_DP>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg_hs_pins_a: usbotg_hs@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>,
|
||||
<STM32F429_PI11_FUNC_OTG_HS_ULPI_DIR>,
|
||||
<STM32F429_PC0_FUNC_OTG_HS_ULPI_STP>,
|
||||
<STM32F429_PA5_FUNC_OTG_HS_ULPI_CK>,
|
||||
<STM32F429_PA3_FUNC_OTG_HS_ULPI_D0>,
|
||||
<STM32F429_PB0_FUNC_OTG_HS_ULPI_D1>,
|
||||
<STM32F429_PB1_FUNC_OTG_HS_ULPI_D2>,
|
||||
<STM32F429_PB10_FUNC_OTG_HS_ULPI_D3>,
|
||||
<STM32F429_PB11_FUNC_OTG_HS_ULPI_D4>,
|
||||
<STM32F429_PB12_FUNC_OTG_HS_ULPI_D5>,
|
||||
<STM32F429_PB13_FUNC_OTG_HS_ULPI_D6>,
|
||||
<STM32F429_PB5_FUNC_OTG_HS_ULPI_D7>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
ethernet_mii: mii@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0>,
|
||||
<STM32F429_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1>,
|
||||
<STM32F429_PC2_FUNC_ETH_MII_TXD2>,
|
||||
<STM32F429_PB8_FUNC_ETH_MII_TXD3>,
|
||||
<STM32F429_PC3_FUNC_ETH_MII_TX_CLK>,
|
||||
<STM32F429_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN>,
|
||||
<STM32F429_PA2_FUNC_ETH_MDIO>,
|
||||
<STM32F429_PC1_FUNC_ETH_MDC>,
|
||||
<STM32F429_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK>,
|
||||
<STM32F429_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV>,
|
||||
<STM32F429_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0>,
|
||||
<STM32F429_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1>,
|
||||
<STM32F429_PH6_FUNC_ETH_MII_RXD2>,
|
||||
<STM32F429_PH7_FUNC_ETH_MII_RXD3>;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
adc3_in8_pin: adc@200 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PF10_FUNC_ANALOG>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm1_pins: pwm@1 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PA8_FUNC_TIM1_CH1>,
|
||||
<STM32F429_PB13_FUNC_TIM1_CH1N>,
|
||||
<STM32F429_PB12_FUNC_TIM1_BKIN>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm3_pins: pwm@3 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PB4_FUNC_TIM3_CH1>,
|
||||
<STM32F429_PB5_FUNC_TIM3_CH2>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>,
|
||||
<STM32F429_PB6_FUNC_I2C1_SCL>;
|
||||
bias-disable;
|
||||
drive-open-drain;
|
||||
slew-rate = <3>;
|
||||
};
|
||||
};
|
||||
|
||||
ltdc_pins: ltdc@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PI12_FUNC_LCD_HSYNC>,
|
||||
<STM32F429_PI13_FUNC_LCD_VSYNC>,
|
||||
<STM32F429_PI14_FUNC_LCD_CLK>,
|
||||
<STM32F429_PI15_FUNC_LCD_R0>,
|
||||
<STM32F429_PJ0_FUNC_LCD_R1>,
|
||||
<STM32F429_PJ1_FUNC_LCD_R2>,
|
||||
<STM32F429_PJ2_FUNC_LCD_R3>,
|
||||
<STM32F429_PJ3_FUNC_LCD_R4>,
|
||||
<STM32F429_PJ4_FUNC_LCD_R5>,
|
||||
<STM32F429_PJ5_FUNC_LCD_R6>,
|
||||
<STM32F429_PJ6_FUNC_LCD_R7>,
|
||||
<STM32F429_PJ7_FUNC_LCD_G0>,
|
||||
<STM32F429_PJ8_FUNC_LCD_G1>,
|
||||
<STM32F429_PJ9_FUNC_LCD_G2>,
|
||||
<STM32F429_PJ10_FUNC_LCD_G3>,
|
||||
<STM32F429_PJ11_FUNC_LCD_G4>,
|
||||
<STM32F429_PJ12_FUNC_LCD_B0>,
|
||||
<STM32F429_PJ13_FUNC_LCD_B1>,
|
||||
<STM32F429_PJ14_FUNC_LCD_B2>,
|
||||
<STM32F429_PJ15_FUNC_LCD_B3>,
|
||||
<STM32F429_PK0_FUNC_LCD_G5>,
|
||||
<STM32F429_PK1_FUNC_LCD_G6>,
|
||||
<STM32F429_PK2_FUNC_LCD_G7>,
|
||||
<STM32F429_PK3_FUNC_LCD_B4>,
|
||||
<STM32F429_PK4_FUNC_LCD_B5>,
|
||||
<STM32F429_PK5_FUNC_LCD_B6>,
|
||||
<STM32F429_PK6_FUNC_LCD_B7>,
|
||||
<STM32F429_PK7_FUNC_LCD_DE>;
|
||||
slew-rate = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
dcmi_pins: dcmi@0 {
|
||||
pins {
|
||||
pinmux = <STM32F429_PA4_FUNC_DCMI_HSYNC>,
|
||||
<STM32F429_PB7_FUNC_DCMI_VSYNC>,
|
||||
<STM32F429_PA6_FUNC_DCMI_PIXCLK>,
|
||||
<STM32F429_PC6_FUNC_DCMI_D0>,
|
||||
<STM32F429_PC7_FUNC_DCMI_D1>,
|
||||
<STM32F429_PC8_FUNC_DCMI_D2>,
|
||||
<STM32F429_PC9_FUNC_DCMI_D3>,
|
||||
<STM32F429_PC11_FUNC_DCMI_D4>,
|
||||
<STM32F429_PD3_FUNC_DCMI_D5>,
|
||||
<STM32F429_PB8_FUNC_DCMI_D6>,
|
||||
<STM32F429_PE6_FUNC_DCMI_D7>,
|
||||
<STM32F429_PC10_FUNC_DCMI_D8>,
|
||||
<STM32F429_PC12_FUNC_DCMI_D9>,
|
||||
<STM32F429_PD6_FUNC_DCMI_D10>,
|
||||
<STM32F429_PD2_FUNC_DCMI_D11>;
|
||||
bias-disable;
|
||||
drive-push-pull;
|
||||
slew-rate = <3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
crc: crc@40023000 {
|
||||
compatible = "st,stm32f4-crc";
|
||||
reg = <0x40023000 0x400>;
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
/dts-v1/;
|
||||
#include "stm32f429.dtsi"
|
||||
#include "stm32f469-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
model = "STMicroelectronics STM32F469i-DISCO board";
|
||||
|
|
96
arch/arm/boot/dts/stm32f469-pinctrl.dtsi
Normal file
96
arch/arm/boot/dts/stm32f469-pinctrl.dtsi
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "stm32f4-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
pinctrl: pin-controller {
|
||||
compatible = "st,stm32f469-pinctrl";
|
||||
|
||||
gpioa: gpio@40020000 {
|
||||
gpio-ranges = <&pinctrl 0 0 16>;
|
||||
};
|
||||
|
||||
gpiob: gpio@40020400 {
|
||||
gpio-ranges = <&pinctrl 0 16 16>;
|
||||
};
|
||||
|
||||
gpioc: gpio@40020800 {
|
||||
gpio-ranges = <&pinctrl 0 32 16>;
|
||||
};
|
||||
|
||||
gpiod: gpio@40020c00 {
|
||||
gpio-ranges = <&pinctrl 0 48 16>;
|
||||
};
|
||||
|
||||
gpioe: gpio@40021000 {
|
||||
gpio-ranges = <&pinctrl 0 64 16>;
|
||||
};
|
||||
|
||||
gpiof: gpio@40021400 {
|
||||
gpio-ranges = <&pinctrl 0 80 16>;
|
||||
};
|
||||
|
||||
gpiog: gpio@40021800 {
|
||||
gpio-ranges = <&pinctrl 0 96 16>;
|
||||
};
|
||||
|
||||
gpioh: gpio@40021c00 {
|
||||
gpio-ranges = <&pinctrl 0 112 16>;
|
||||
};
|
||||
|
||||
gpioi: gpio@40022000 {
|
||||
gpio-ranges = <&pinctrl 0 128 16>;
|
||||
};
|
||||
|
||||
gpioj: gpio@40022400 {
|
||||
gpio-ranges = <&pinctrl 0 144 6>,
|
||||
<&pinctrl 12 156 4>;
|
||||
};
|
||||
|
||||
gpiok: gpio@40022800 {
|
||||
gpio-ranges = <&pinctrl 3 163 5>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -32,6 +32,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
|
|||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
CONFIG_ATA=y
|
||||
CONFIG_PATA_FTIDE010=y
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
|
@ -55,8 +56,8 @@ CONFIG_LEDS_GPIO=y
|
|||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_GEMINI=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_AMBA_PL08X=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
|
|
|
@ -471,7 +471,7 @@ CONFIG_LCD_PLATFORM=m
|
|||
CONFIG_LCD_TOSA=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
CONFIG_BACKLIGHT_TOSA=m
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=m
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_SOUND=m
|
||||
|
|
|
@ -113,7 +113,7 @@ CONFIG_FB_PXA_PARAMETERS=y
|
|||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=m
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_SND=m
|
||||
|
|
|
@ -112,7 +112,7 @@ CONFIG_FB_PXA=m
|
|||
CONFIG_FB_PXA_PARAMETERS=y
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=m
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_SND=m
|
||||
|
|
|
@ -533,8 +533,8 @@ static void __init at91_pm_backup_init(void)
|
|||
}
|
||||
|
||||
pm_bu->suspended = 0;
|
||||
pm_bu->canary = virt_to_phys(&canary);
|
||||
pm_bu->resume = virt_to_phys(cpu_resume);
|
||||
pm_bu->canary = __pa_symbol(&canary);
|
||||
pm_bu->resume = __pa_symbol(cpu_resume);
|
||||
|
||||
return;
|
||||
|
||||
|
|
|
@ -58,10 +58,10 @@ void omap_hsmmc_late_init(struct omap2_hsmmc_info *c)
|
|||
struct platform_device *pdev;
|
||||
int res;
|
||||
|
||||
if (omap_hsmmc_done != 1)
|
||||
if (omap_hsmmc_done)
|
||||
return;
|
||||
|
||||
omap_hsmmc_done++;
|
||||
omap_hsmmc_done = 1;
|
||||
|
||||
for (; c->mmc; c++) {
|
||||
pdev = c->pdev;
|
||||
|
|
|
@ -839,6 +839,7 @@ static struct omap_hwmod dra7xx_gpio1_hwmod = {
|
|||
.name = "gpio1",
|
||||
.class = &dra7xx_gpio_hwmod_class,
|
||||
.clkdm_name = "wkupaon_clkdm",
|
||||
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
||||
.main_clk = "wkupaon_iclk_mux",
|
||||
.prcm = {
|
||||
.omap4 = {
|
||||
|
|
|
@ -168,7 +168,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -194,7 +195,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -212,10 +214,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -107,6 +107,9 @@
|
|||
|
||||
states = <3300000 0>,
|
||||
<1800000 1>;
|
||||
|
||||
regulator-settling-time-up-us = <100>;
|
||||
regulator-settling-time-down-us = <5000>;
|
||||
};
|
||||
|
||||
wifi_32k: wifi-32k {
|
||||
|
@ -250,7 +253,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -276,11 +280,16 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-sdr104;
|
||||
max-frequency = <200000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
|
@ -294,10 +303,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "disabled";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
/ {
|
||||
compatible = "nexbox,a95x", "amlogic,meson-gxbb";
|
||||
model = "NEXBOX A95X";
|
||||
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
};
|
||||
|
@ -232,7 +232,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -253,7 +254,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -271,10 +273,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
/ {
|
||||
compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb";
|
||||
model = "Hardkernel ODROID-C2";
|
||||
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
};
|
||||
|
@ -253,7 +253,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -271,10 +272,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
|
|
@ -194,7 +194,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -220,10 +221,14 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
max-frequency = <100000000>;
|
||||
disable-wp;
|
||||
|
||||
|
@ -238,10 +243,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -155,7 +155,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins &sdio_irq_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -181,7 +182,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -198,10 +200,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -392,6 +392,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
emmc_clk_gate_pins: emmc_clk_gate {
|
||||
mux {
|
||||
groups = "BOOT_8";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "BOOT_8";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
nor_pins: nor {
|
||||
mux {
|
||||
groups = "nor_d",
|
||||
|
@ -430,6 +441,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
sdcard_clk_gate_pins: sdcard_clk_gate {
|
||||
mux {
|
||||
groups = "CARD_2";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "CARD_2";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
sdio_pins: sdio {
|
||||
mux {
|
||||
groups = "sdio_d0",
|
||||
|
@ -442,6 +464,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
sdio_clk_gate_pins: sdio_clk_gate {
|
||||
mux {
|
||||
groups = "GPIOX_4";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "GPIOX_4";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
sdio_irq_pins: sdio_irq {
|
||||
mux {
|
||||
groups = "sdio_irq";
|
||||
|
@ -661,21 +694,21 @@
|
|||
|
||||
&sd_emmc_a {
|
||||
clocks = <&clkc CLKID_SD_EMMC_A>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_SD_EMMC_A_CLK0>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&sd_emmc_b {
|
||||
clocks = <&clkc CLKID_SD_EMMC_B>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_SD_EMMC_B_CLK0>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&sd_emmc_c {
|
||||
clocks = <&clkc CLKID_SD_EMMC_C>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_SD_EMMC_C_CLK0>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
|
|
@ -123,7 +123,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -141,10 +142,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -91,6 +91,9 @@
|
|||
|
||||
states = <3300000 0>,
|
||||
<1800000 1>;
|
||||
|
||||
regulator-settling-time-up-us = <200>;
|
||||
regulator-settling-time-down-us = <50000>;
|
||||
};
|
||||
|
||||
vddio_boot: regulator-vddio_boot {
|
||||
|
@ -197,10 +200,14 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
max-frequency = <100000000>;
|
||||
disable-wp;
|
||||
|
||||
|
@ -215,10 +222,12 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-3_3v;
|
||||
max-frequency = <50000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
|
|
@ -189,7 +189,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -210,7 +211,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -228,10 +230,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -95,7 +95,8 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
@ -116,7 +117,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -134,10 +136,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -281,6 +281,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
emmc_clk_gate_pins: emmc_clk_gate {
|
||||
mux {
|
||||
groups = "BOOT_8";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "BOOT_8";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
nor_pins: nor {
|
||||
mux {
|
||||
groups = "nor_d",
|
||||
|
@ -319,6 +330,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
sdcard_clk_gate_pins: sdcard_clk_gate {
|
||||
mux {
|
||||
groups = "CARD_2";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "CARD_2";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
sdio_pins: sdio {
|
||||
mux {
|
||||
groups = "sdio_d0",
|
||||
|
@ -331,6 +353,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
sdio_clk_gate_pins: sdio_clk_gate {
|
||||
mux {
|
||||
groups = "GPIOX_4";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "GPIOX_4";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
sdio_irq_pins: sdio_irq {
|
||||
mux {
|
||||
groups = "sdio_irq";
|
||||
|
@ -603,21 +636,21 @@
|
|||
|
||||
&sd_emmc_a {
|
||||
clocks = <&clkc CLKID_SD_EMMC_A>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_SD_EMMC_A_CLK0>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&sd_emmc_b {
|
||||
clocks = <&clkc CLKID_SD_EMMC_B>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_SD_EMMC_B_CLK0>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&sd_emmc_c {
|
||||
clocks = <&clkc CLKID_SD_EMMC_C>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_SD_EMMC_C_CLK0>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
|
|
@ -175,7 +175,8 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
|
@ -193,10 +194,10 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -220,7 +220,6 @@
|
|||
pinctrl-names = "default";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
|
|
|
@ -254,7 +254,7 @@
|
|||
|
||||
ap_syscon: system-controller@6f4000 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
reg = <0x6f4000 0x1000>;
|
||||
reg = <0x6f4000 0x2000>;
|
||||
|
||||
ap_clk: clock {
|
||||
compatible = "marvell,ap806-clock";
|
||||
|
@ -265,7 +265,7 @@
|
|||
compatible = "marvell,ap806-pinctrl";
|
||||
};
|
||||
|
||||
ap_gpio: gpio {
|
||||
ap_gpio: gpio@1040 {
|
||||
compatible = "marvell,armada-8k-gpio";
|
||||
offset = <0x1040>;
|
||||
ngpios = <20>;
|
||||
|
|
|
@ -113,8 +113,7 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKL>;
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
|
||||
#cooling-cells = <2>; /* min followed by max */
|
||||
};
|
||||
|
||||
|
@ -123,8 +122,6 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKL>;
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
cpu_l2: cpu@2 {
|
||||
|
@ -132,8 +129,6 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKL>;
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
cpu_l3: cpu@3 {
|
||||
|
@ -141,8 +136,6 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x3>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKL>;
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
cpu_b0: cpu@100 {
|
||||
|
@ -150,8 +143,7 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x100>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKB>;
|
||||
operating-points-v2 = <&cluster1_opp>;
|
||||
|
||||
#cooling-cells = <2>; /* min followed by max */
|
||||
};
|
||||
|
||||
|
@ -160,8 +152,6 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x101>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKB>;
|
||||
operating-points-v2 = <&cluster1_opp>;
|
||||
};
|
||||
|
||||
cpu_b2: cpu@102 {
|
||||
|
@ -169,8 +159,6 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x102>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKB>;
|
||||
operating-points-v2 = <&cluster1_opp>;
|
||||
};
|
||||
|
||||
cpu_b3: cpu@103 {
|
||||
|
@ -178,62 +166,6 @@
|
|||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x103>;
|
||||
enable-method = "psci";
|
||||
clocks = <&cru ARMCLKB>;
|
||||
operating-points-v2 = <&cluster1_opp>;
|
||||
};
|
||||
};
|
||||
|
||||
cluster0_opp: opp-table0 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
opp00 {
|
||||
opp-hz = /bits/ 64 <312000000>;
|
||||
opp-microvolt = <950000>;
|
||||
clock-latency-ns = <40000>;
|
||||
};
|
||||
opp01 {
|
||||
opp-hz = /bits/ 64 <408000000>;
|
||||
opp-microvolt = <950000>;
|
||||
};
|
||||
opp02 {
|
||||
opp-hz = /bits/ 64 <600000000>;
|
||||
opp-microvolt = <950000>;
|
||||
};
|
||||
opp03 {
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
opp-microvolt = <1025000>;
|
||||
};
|
||||
opp04 {
|
||||
opp-hz = /bits/ 64 <1008000000>;
|
||||
opp-microvolt = <1125000>;
|
||||
};
|
||||
};
|
||||
|
||||
cluster1_opp: opp-table1 {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
opp00 {
|
||||
opp-hz = /bits/ 64 <312000000>;
|
||||
opp-microvolt = <950000>;
|
||||
clock-latency-ns = <40000>;
|
||||
};
|
||||
opp01 {
|
||||
opp-hz = /bits/ 64 <408000000>;
|
||||
opp-microvolt = <950000>;
|
||||
};
|
||||
opp02 {
|
||||
opp-hz = /bits/ 64 <600000000>;
|
||||
opp-microvolt = <950000>;
|
||||
};
|
||||
opp03 {
|
||||
opp-hz = /bits/ 64 <816000000>;
|
||||
opp-microvolt = <975000>;
|
||||
};
|
||||
opp04 {
|
||||
opp-hz = /bits/ 64 <1008000000>;
|
||||
opp-microvolt = <1050000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1629,9 +1629,9 @@
|
|||
compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
|
||||
reg = <0x0 0xff960000 0x0 0x8000>;
|
||||
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru PCLK_MIPI_DSI0>,
|
||||
<&cru SCLK_DPHY_TX0_CFG>;
|
||||
clock-names = "ref", "pclk", "phy_cfg";
|
||||
clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI0>,
|
||||
<&cru SCLK_DPHY_TX0_CFG>, <&cru PCLK_VIO_GRF>;
|
||||
clock-names = "ref", "pclk", "phy_cfg", "grf";
|
||||
power-domains = <&power RK3399_PD_VIO>;
|
||||
rockchip,grf = <&grf>;
|
||||
status = "disabled";
|
||||
|
|
|
@ -34,11 +34,12 @@ config RESET_BERLIN
|
|||
help
|
||||
This enables the reset controller driver for Marvell Berlin SoCs.
|
||||
|
||||
config RESET_HSDK_V1
|
||||
bool "HSDK v1 Reset Driver"
|
||||
default n
|
||||
config RESET_HSDK
|
||||
bool "Synopsys HSDK Reset Driver"
|
||||
depends on HAS_IOMEM
|
||||
depends on ARC_SOC_HSDK || COMPILE_TEST
|
||||
help
|
||||
This enables the reset controller driver for HSDK v1.
|
||||
This enables the reset controller driver for HSDK board.
|
||||
|
||||
config RESET_IMX7
|
||||
bool "i.MX7 Reset Driver" if COMPILE_TEST
|
||||
|
|
|
@ -5,7 +5,7 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/
|
|||
obj-$(CONFIG_RESET_A10SR) += reset-a10sr.o
|
||||
obj-$(CONFIG_RESET_ATH79) += reset-ath79.o
|
||||
obj-$(CONFIG_RESET_BERLIN) += reset-berlin.o
|
||||
obj-$(CONFIG_RESET_HSDK_V1) += reset-hsdk-v1.o
|
||||
obj-$(CONFIG_RESET_HSDK) += reset-hsdk.o
|
||||
obj-$(CONFIG_RESET_IMX7) += reset-imx7.o
|
||||
obj-$(CONFIG_RESET_LANTIQ) += reset-lantiq.o
|
||||
obj-$(CONFIG_RESET_LPC18XX) += reset-lpc18xx.o
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Copyright (C) 2017 Synopsys.
|
||||
*
|
||||
* Synopsys HSDKv1 SDP reset driver.
|
||||
* Synopsys HSDK Development platform reset driver.
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -18,9 +18,9 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define to_hsdkv1_rst(p) container_of((p), struct hsdkv1_rst, rcdev)
|
||||
#define to_hsdk_rst(p) container_of((p), struct hsdk_rst, rcdev)
|
||||
|
||||
struct hsdkv1_rst {
|
||||
struct hsdk_rst {
|
||||
void __iomem *regs_ctl;
|
||||
void __iomem *regs_rst;
|
||||
spinlock_t lock;
|
||||
|
@ -49,12 +49,12 @@ static const u32 rst_map[] = {
|
|||
#define CGU_IP_SW_RESET_RESET BIT(0)
|
||||
#define SW_RESET_TIMEOUT 10000
|
||||
|
||||
static void hsdkv1_reset_config(struct hsdkv1_rst *rst, unsigned long id)
|
||||
static void hsdk_reset_config(struct hsdk_rst *rst, unsigned long id)
|
||||
{
|
||||
writel(rst_map[id], rst->regs_ctl + CGU_SYS_RST_CTRL);
|
||||
}
|
||||
|
||||
static int hsdkv1_reset_do(struct hsdkv1_rst *rst)
|
||||
static int hsdk_reset_do(struct hsdk_rst *rst)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
|
@ -69,28 +69,28 @@ static int hsdkv1_reset_do(struct hsdkv1_rst *rst)
|
|||
!(reg & CGU_IP_SW_RESET_RESET), 5, SW_RESET_TIMEOUT);
|
||||
}
|
||||
|
||||
static int hsdkv1_reset_reset(struct reset_controller_dev *rcdev,
|
||||
static int hsdk_reset_reset(struct reset_controller_dev *rcdev,
|
||||
unsigned long id)
|
||||
{
|
||||
struct hsdkv1_rst *rst = to_hsdkv1_rst(rcdev);
|
||||
struct hsdk_rst *rst = to_hsdk_rst(rcdev);
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
spin_lock_irqsave(&rst->lock, flags);
|
||||
hsdkv1_reset_config(rst, id);
|
||||
ret = hsdkv1_reset_do(rst);
|
||||
hsdk_reset_config(rst, id);
|
||||
ret = hsdk_reset_do(rst);
|
||||
spin_unlock_irqrestore(&rst->lock, flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct reset_control_ops hsdkv1_reset_ops = {
|
||||
.reset = hsdkv1_reset_reset,
|
||||
static const struct reset_control_ops hsdk_reset_ops = {
|
||||
.reset = hsdk_reset_reset,
|
||||
};
|
||||
|
||||
static int hsdkv1_reset_probe(struct platform_device *pdev)
|
||||
static int hsdk_reset_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct hsdkv1_rst *rst;
|
||||
struct hsdk_rst *rst;
|
||||
struct resource *mem;
|
||||
|
||||
rst = devm_kzalloc(&pdev->dev, sizeof(*rst), GFP_KERNEL);
|
||||
|
@ -110,7 +110,7 @@ static int hsdkv1_reset_probe(struct platform_device *pdev)
|
|||
spin_lock_init(&rst->lock);
|
||||
|
||||
rst->rcdev.owner = THIS_MODULE;
|
||||
rst->rcdev.ops = &hsdkv1_reset_ops;
|
||||
rst->rcdev.ops = &hsdk_reset_ops;
|
||||
rst->rcdev.of_node = pdev->dev.of_node;
|
||||
rst->rcdev.nr_resets = HSDK_MAX_RESETS;
|
||||
rst->rcdev.of_reset_n_cells = 1;
|
||||
|
@ -118,20 +118,20 @@ static int hsdkv1_reset_probe(struct platform_device *pdev)
|
|||
return reset_controller_register(&rst->rcdev);
|
||||
}
|
||||
|
||||
static const struct of_device_id hsdkv1_reset_dt_match[] = {
|
||||
{ .compatible = "snps,hsdk-v1.0-reset" },
|
||||
static const struct of_device_id hsdk_reset_dt_match[] = {
|
||||
{ .compatible = "snps,hsdk-reset" },
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_driver hsdkv1_reset_driver = {
|
||||
.probe = hsdkv1_reset_probe,
|
||||
static struct platform_driver hsdk_reset_driver = {
|
||||
.probe = hsdk_reset_probe,
|
||||
.driver = {
|
||||
.name = "hsdk-v1.0-reset",
|
||||
.of_match_table = hsdkv1_reset_dt_match,
|
||||
.name = "hsdk-reset",
|
||||
.of_match_table = hsdk_reset_dt_match,
|
||||
},
|
||||
};
|
||||
builtin_platform_driver(hsdkv1_reset_driver);
|
||||
builtin_platform_driver(hsdk_reset_driver);
|
||||
|
||||
MODULE_AUTHOR("Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>");
|
||||
MODULE_DESCRIPTION("Synopsys HSDKv1 SDP reset driver");
|
||||
MODULE_DESCRIPTION("Synopsys HSDK SDP reset driver");
|
||||
MODULE_LICENSE("GPL v2");
|
17
include/dt-bindings/reset/snps,hsdk-reset.h
Normal file
17
include/dt-bindings/reset/snps,hsdk-reset.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
* This header provides index for the HSDK reset controller.
|
||||
*/
|
||||
#ifndef _DT_BINDINGS_RESET_CONTROLLER_SNPS_HSDK
|
||||
#define _DT_BINDINGS_RESET_CONTROLLER_SNPS_HSDK
|
||||
|
||||
#define HSDK_APB_RESET 0
|
||||
#define HSDK_AXI_RESET 1
|
||||
#define HSDK_ETH_RESET 2
|
||||
#define HSDK_USB_RESET 3
|
||||
#define HSDK_SDIO_RESET 4
|
||||
#define HSDK_HDMI_RESET 5
|
||||
#define HSDK_GFX_RESET 6
|
||||
#define HSDK_DMAC_RESET 7
|
||||
#define HSDK_EBI_RESET 8
|
||||
|
||||
#endif /*_DT_BINDINGS_RESET_CONTROLLER_SNPS_HSDK*/
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* This header provides index for the HSDK v1 reset controller.
|
||||
*/
|
||||
#ifndef _DT_BINDINGS_RESET_CONTROLLER_HSDK_V1
|
||||
#define _DT_BINDINGS_RESET_CONTROLLER_HSDK_V1
|
||||
|
||||
#define HSDK_V1_APB_RESET 0
|
||||
#define HSDK_V1_AXI_RESET 1
|
||||
#define HSDK_V1_ETH_RESET 2
|
||||
#define HSDK_V1_USB_RESET 3
|
||||
#define HSDK_V1_SDIO_RESET 4
|
||||
#define HSDK_V1_HDMI_RESET 5
|
||||
#define HSDK_V1_GFX_RESET 6
|
||||
#define HSDK_V1_DMAC_RESET 7
|
||||
#define HSDK_V1_EBI_RESET 8
|
||||
|
||||
#endif /*_DT_BINDINGS_RESET_CONTROLLER_HSDK_V1*/
|
Loading…
Reference in a new issue