* [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices
@ 2019-08-02 12:47 Patrick Delaunay
2019-08-02 12:48 ` [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option Patrick Delaunay
2019-09-27 1:48 ` [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Simon Glass
0 siblings, 2 replies; 6+ messages in thread
From: Patrick Delaunay @ 2019-08-02 12:47 UTC (permalink / raw)
To: u-boot
At present the 'Index' column of 'dm tree' assumes there is
two digits, this patch increase it to 3 digits.
It also aligns output of 'dm uclass', assuming the same 3 digits index.
The boards with CONFIG_PINCTRL_FULL activated have one pinconfig
by pin configuration, so they can have more than 100 devices
pinconfig (for example with stm32mp157c-ev1 board we have
106 pinconfig node).
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---
stm32mp157c-ev1 trace before the patch
STM32MP> dm tree
Class Index Probed Driver Name
-----------------------------------------------------------
root 0 [ + ] root_driver root_driver
sysreset 0 [ ] syscon_reboot |-- reboot
....
pinctrl 0 [ + ] pinctrl_stm32 | |-- pin-controller at 50002000
gpio 0 [ + ] gpio_stm32 | | |-- gpio at 50002000
gpio 1 [ + ] gpio_stm32 | | |-- gpio at 50003000
...
gpio 9 [ ] gpio_stm32 | | |-- gpio at 5000b000
gpio 10 [ ] gpio_stm32 | | |-- gpio at 5000c000
pinconfig 0 [ ] pinconfig | | |-- adc12-usb-pwr-pins-0
pinconfig 95 [ ] pinconfig | | |-- uart7-0
...
pinconfig 99 [ ] pinconfig | | `-- pins
....
pinctrl 1 [ + ] pinctrl_stm32 | |-- pin-controller-z at 54004000
gpio 11 [ + ] gpio_stm32 | | |-- gpio at 54004000
pinconfig 100 [ + ] pinconfig | | |-- i2c4-0
pinconfig 101 [ ] pinconfig | | | `-- pins
....
STM32MP> dm uclass
.....
uclass 60: pinconfig
0 adc12-usb-pwr-pins-0 @ fdf56140
1 pins @ fdf56198
...
8 cec-sleep-1 @ fdf56400
9 pins @ fdf56458
10 * rgmii-0 @ fdf564b0, seq 5, (req -1)
11 pins1 @ fdf56508
...
98 usbotg_hs-0 @ fdf582f0
99 pins @ fdf58348
100 * i2c4-0 @ fdf58450, seq 0, (req -1)
101 pins @ fdf584a8
....
Full trace with the patch
STM32MP> dm tree
Class Index Probed Driver Name
-----------------------------------------------------------
root 0 [ + ] root_driver root_driver
sysreset 0 [ ] syscon_reboot |-- reboot
simple_bus 0 [ + ] generic_simple_bus |-- soc
serial 0 [ + ] serial_stm32 | |-- serial at 40010000
i2c 0 [ ] stm32f7-i2c | |-- i2c at 40013000
i2c_generi 0 [ ] stmfx | | `-- stmfx at 42
i2c 1 [ ] stm32f7-i2c | |-- i2c at 40015000
usb 0 [ ] dwc2-udc-otg | |-- usb-otg at 49000000
hwspinlock 0 [ + ] hwspinlock_stm32mp1 | |-- hwspinlock at 4c000000
mailbox 0 [ ] stm32_ipcc | |-- mailbox at 4c001000
misc 0 [ + ] stm32-rcc | |-- rcc at 50000000
clk 0 [ + ] stm32mp1_clk | | |-- stm32mp1_clk
reset 0 [ + ] stm32_rcc_reset | | `-- stm32_rcc_reset
syscon 0 [ + ] stmp32mp_syscon | |-- pwr at 50001000
pmic 0 [ + ] stm32mp_pwr_pmic | | `-- pwr-regulators
regulator 0 [ + ] stm32mp_pwr_regulato | | |-- reg11
regulator 1 [ + ] stm32mp_pwr_regulato | | |-- reg18
regulator 2 [ + ] stm32mp_pwr_regulato | | `-- usb33
syscon 1 [ ] syscon | |-- interrupt-controller at 5000d000
syscon 2 [ + ] stmp32mp_syscon | |-- syscon at 50020000
mtd 0 [ + ] stm32_fmc2_nand | |-- nand-controller at 58002000
spi 0 [ ] stm32_qspi | |-- spi at 58003000
spi_flash 0 [ ] spi_flash_std | | |-- mx66l51235l at 0
spi_flash 1 [ ] spi_flash_std | | `-- mx66l51235l at 1
mmc 0 [ + ] stm32_sdmmc2 | |-- sdmmc at 58005000
blk 0 [ + ] mmc_blk | | `-- sdmmc at 58005000.blk
mmc 1 [ + ] stm32_sdmmc2 | |-- sdmmc at 58007000
blk 1 [ ] mmc_blk | | `-- sdmmc at 58007000.blk
eth 0 [ + ] eth_eqos | |-- ethernet at 5800a000
usb 0 [ ] ehci_generic | |-- usbh-ehci at 5800d000
phy 0 [ ] stm32-usbphyc | |-- usbphyc at 5a006000
i2c 2 [ + ] stm32f7-i2c | |-- i2c at 5c002000
pmic 1 [ + ] stpmic1_pmic | | `-- stpmic at 33
regulator 3 [ + ] stpmic1_buck | | |-- buck1
regulator 4 [ + ] stpmic1_buck | | |-- buck2
regulator 5 [ + ] stpmic1_buck | | |-- buck3
regulator 6 [ + ] stpmic1_buck | | |-- buck4
regulator 7 [ + ] stpmic1_ldo | | |-- ldo1
regulator 8 [ + ] stpmic1_ldo | | |-- ldo2
regulator 9 [ + ] stpmic1_ldo | | |-- ldo3
regulator 10 [ + ] stpmic1_ldo | | |-- ldo4
regulator 11 [ + ] stpmic1_ldo | | |-- ldo5
regulator 12 [ + ] stpmic1_ldo | | |-- ldo6
regulator 13 [ + ] stpmic1_vref_ddr | | |-- vref_ddr
regulator 14 [ + ] stpmic1_boost | | |-- boost
regulator 15 [ + ] stpmic1_pwr_sw | | |-- pwr_sw1
regulator 16 [ + ] stpmic1_pwr_sw | | |-- pwr_sw2
sysreset 1 [ ] stpmic1-sysreset | | `-- stpmic1-sysreset
rtc 0 [ ] rtc-stm32 | |-- rtc at 5c004000
misc 1 [ + ] stm32mp_bsec | |-- nvmem at 5c005000
pinctrl 0 [ + ] pinctrl_stm32 | |-- pin-controller at 50002000
gpio 0 [ + ] gpio_stm32 | | |-- gpio at 50002000
gpio 1 [ + ] gpio_stm32 | | |-- gpio at 50003000
gpio 2 [ + ] gpio_stm32 | | |-- gpio at 50004000
gpio 3 [ + ] gpio_stm32 | | |-- gpio at 50005000
gpio 4 [ + ] gpio_stm32 | | |-- gpio at 50006000
gpio 5 [ + ] gpio_stm32 | | |-- gpio at 50007000
gpio 6 [ + ] gpio_stm32 | | |-- gpio at 50008000
gpio 7 [ + ] gpio_stm32 | | |-- gpio at 50009000
gpio 8 [ ] gpio_stm32 | | |-- gpio at 5000a000
gpio 9 [ ] gpio_stm32 | | |-- gpio at 5000b000
gpio 10 [ ] gpio_stm32 | | |-- gpio at 5000c000
pinconfig 0 [ ] pinconfig | | |-- adc12-usb-pwr-pins-0
pinconfig 1 [ ] pinconfig | | | `-- pins
pinconfig 2 [ ] pinconfig | | |-- cec-0
pinconfig 3 [ ] pinconfig | | | `-- pins
pinconfig 4 [ ] pinconfig | | |-- cec-sleep-0
pinconfig 5 [ ] pinconfig | | | `-- pins
pinconfig 6 [ ] pinconfig | | |-- cec-1
pinconfig 7 [ ] pinconfig | | | `-- pins
pinconfig 8 [ ] pinconfig | | |-- cec-sleep-1
pinconfig 9 [ ] pinconfig | | | `-- pins
pinconfig 10 [ + ] pinconfig | | |-- rgmii-0
pinconfig 11 [ ] pinconfig | | | |-- pins1
pinconfig 12 [ ] pinconfig | | | |-- pins2
pinconfig 13 [ ] pinconfig | | | `-- pins3
pinconfig 14 [ ] pinconfig | | |-- rgmii-sleep-0
pinconfig 15 [ ] pinconfig | | | `-- pins1
pinconfig 16 [ + ] pinconfig | | |-- fmc-0
pinconfig 17 [ ] pinconfig | | | |-- pins1
pinconfig 18 [ ] pinconfig | | | `-- pins2
pinconfig 19 [ ] pinconfig | | |-- fmc-sleep-0
pinconfig 20 [ ] pinconfig | | | `-- pins
pinconfig 21 [ ] pinconfig | | |-- i2c1-0
pinconfig 22 [ ] pinconfig | | | `-- pins
pinconfig 23 [ ] pinconfig | | |-- i2c1-1
pinconfig 24 [ ] pinconfig | | | `-- pins
pinconfig 25 [ ] pinconfig | | |-- i2c1-2
pinconfig 26 [ ] pinconfig | | | `-- pins
pinconfig 27 [ ] pinconfig | | |-- i2c2-0
pinconfig 28 [ ] pinconfig | | | `-- pins
pinconfig 29 [ ] pinconfig | | |-- i2c2-1
pinconfig 30 [ ] pinconfig | | | `-- pins
pinconfig 31 [ ] pinconfig | | |-- i2c2-2
pinconfig 32 [ ] pinconfig | | | `-- pins
pinconfig 33 [ ] pinconfig | | |-- i2c5-0
pinconfig 34 [ ] pinconfig | | | `-- pins
pinconfig 35 [ ] pinconfig | | |-- i2c5-1
pinconfig 36 [ ] pinconfig | | | `-- pins
pinconfig 37 [ ] pinconfig | | |-- ltdc-a-0
pinconfig 38 [ ] pinconfig | | | `-- pins
pinconfig 39 [ ] pinconfig | | |-- ltdc-a-1
pinconfig 40 [ ] pinconfig | | | `-- pins
pinconfig 41 [ ] pinconfig | | |-- ltdc-b-0
pinconfig 42 [ ] pinconfig | | | `-- pins
pinconfig 43 [ ] pinconfig | | |-- ltdc-b-1
pinconfig 44 [ ] pinconfig | | | `-- pins
pinconfig 45 [ ] pinconfig | | |-- m-can1-0
pinconfig 46 [ ] pinconfig | | | |-- pins1
pinconfig 47 [ ] pinconfig | | | `-- pins2
pinconfig 48 [ ] pinconfig | | |-- m_can1-sleep at 0
pinconfig 49 [ ] pinconfig | | | `-- pins
pinconfig 50 [ ] pinconfig | | |-- pwm2-0
pinconfig 51 [ ] pinconfig | | | `-- pins
pinconfig 52 [ ] pinconfig | | |-- pwm8-0
pinconfig 53 [ ] pinconfig | | | `-- pins
pinconfig 54 [ ] pinconfig | | |-- pwm12-0
pinconfig 55 [ ] pinconfig | | | `-- pins
pinconfig 56 [ ] pinconfig | | |-- qspi-clk-0
pinconfig 57 [ ] pinconfig | | | `-- pins
pinconfig 58 [ ] pinconfig | | |-- qspi-bk1-0
pinconfig 59 [ ] pinconfig | | | |-- pins1
pinconfig 60 [ ] pinconfig | | | `-- pins2
pinconfig 61 [ ] pinconfig | | |-- qspi-bk2-0
pinconfig 62 [ ] pinconfig | | | |-- pins1
pinconfig 63 [ ] pinconfig | | | `-- pins2
pinconfig 64 [ + ] pinconfig | | |-- sdmmc1-b4-0
pinconfig 65 [ ] pinconfig | | | `-- pins
pinconfig 66 [ ] pinconfig | | |-- sdmmc1-b4-od-0
pinconfig 67 [ ] pinconfig | | | |-- pins1
pinconfig 68 [ ] pinconfig | | | `-- pins2
pinconfig 69 [ ] pinconfig | | |-- sdmmc1-b4-sleep-0
pinconfig 70 [ ] pinconfig | | | `-- pins
pinconfig 71 [ + ] pinconfig | | |-- sdmmc1-dir-0
pinconfig 72 [ ] pinconfig | | | |-- pins1
pinconfig 73 [ ] pinconfig | | | `-- pins2
pinconfig 74 [ ] pinconfig | | |-- sdmmc1-dir-sleep-0
pinconfig 75 [ ] pinconfig | | | `-- pins
pinconfig 76 [ ] pinconfig | | |-- sdmmc2-b4-0
pinconfig 77 [ ] pinconfig | | | `-- pins
pinconfig 78 [ ] pinconfig | | |-- sdmmc2-d47-0
pinconfig 79 [ ] pinconfig | | | `-- pins
pinconfig 80 [ ] pinconfig | | |-- spdifrx-0
pinconfig 81 [ ] pinconfig | | | `-- pins
pinconfig 82 [ ] pinconfig | | |-- spdifrx-1
pinconfig 83 [ ] pinconfig | | | `-- pins
pinconfig 84 [ ] pinconfig | | |-- spi2-0
pinconfig 85 [ ] pinconfig | | | |-- pins1
pinconfig 86 [ ] pinconfig | | | `-- pins2
pinconfig 87 [ ] pinconfig | | |-- stusb1600-0
pinconfig 88 [ ] pinconfig | | | `-- pins
pinconfig 89 [ + ] pinconfig | | |-- uart4-0
pinconfig 90 [ ] pinconfig | | | |-- pins1
pinconfig 91 [ ] pinconfig | | | `-- pins2
pinconfig 92 [ ] pinconfig | | |-- uart4-1
pinconfig 93 [ ] pinconfig | | | |-- pins1
pinconfig 94 [ ] pinconfig | | | `-- pins2
pinconfig 95 [ ] pinconfig | | |-- uart7-0
pinconfig 96 [ ] pinconfig | | | |-- pins1
pinconfig 97 [ ] pinconfig | | | `-- pins2
pinconfig 98 [ ] pinconfig | | `-- usbotg_hs-0
pinconfig 99 [ ] pinconfig | | `-- pins
pinctrl 1 [ + ] pinctrl_stm32 | |-- pin-controller-z at 54004000
gpio 11 [ + ] gpio_stm32 | | |-- gpio at 54004000
pinconfig 100 [ + ] pinconfig | | |-- i2c4-0
pinconfig 101 [ ] pinconfig | | | `-- pins
pinconfig 102 [ ] pinconfig | | |-- i2c4-1
pinconfig 103 [ ] pinconfig | | | `-- pins
pinconfig 104 [ ] pinconfig | | `-- spi1-0
pinconfig 105 [ ] pinconfig | | |-- pins1
pinconfig 106 [ ] pinconfig | | `-- pins2
ram 0 [ ] stm32mp1_ddr | `-- ddr at 5A003000
regulator 17 [ + ] gpio regulator |-- regulator-sd_switch
led 0 [ + ] gpio_led |-- led
led 1 [ + ] gpio_led | |-- red
led 2 [ + ] gpio_led | |-- green
led 3 [ + ] gpio_led | |-- orange
led 4 [ ] gpio_led | `-- blue
clk 1 [ + ] fixed_rate_clock |-- clk-hse
clk 2 [ + ] fixed_rate_clock |-- clk-hsi
clk 3 [ + ] fixed_rate_clock |-- clk-lse
clk 4 [ + ] fixed_rate_clock |-- clk-lsi
clk 5 [ + ] fixed_rate_clock `-- clk-csi
STM32MP> dm uclass
uclass 0: root
0 * root_driver @ fdf4b0a8, seq 0, (req -1)
uclass 13: adc
uclass 17: blk
0 * sdmmc at 58005000.blk @ fdf4be70, seq 0, (req -1)
1 sdmmc at 58007000.blk @ fdf4c0f8
uclass 21: clk
0 * stm32mp1_clk @ fdf4b668, seq 0, (req -1)
1 * clk-hse @ fdf4fab8, seq 2, (req -1)
2 * clk-hsi @ fdf4fb40, seq 1, (req -1)
3 * clk-lse @ fdf4fbc8, seq 5, (req -1)
4 * clk-lsi @ fdf4fc50, seq 4, (req -1)
5 * clk-csi @ fdf4fcd8, seq 3, (req -1)
EFI: Initializing UCLASS_EFI
uclass 26: efi
uclass 27: eth
0 * ethernet at 5800a000 @ fdf4c208, seq 0, (req 0)
uclass 30: gpio
0 * gpio at 50002000 @ fdf4cdf0, seq 0, (req 0)
1 * gpio at 50003000 @ fdf4ce48, seq 1, (req 1)
2 * gpio at 50004000 @ fdf4cea0, seq 2, (req 2)
3 * gpio at 50005000 @ fdf4cef8, seq 3, (req 3)
4 * gpio at 50006000 @ fdf4cf50, seq 4, (req 4)
5 * gpio at 50007000 @ fdf4cfa8, seq 5, (req 5)
6 * gpio at 50008000 @ fdf4d000, seq 6, (req 6)
7 * gpio at 50009000 @ fdf4d058, seq 7, (req 7)
8 gpio at 5000a000 @ fdf4d0b0, seq -1, (req 8)
9 gpio at 5000b000 @ fdf4d108, seq -1, (req 9)
10 gpio at 5000c000 @ fdf4d160, seq -1, (req 10)
11 * gpio at 54004000 @ fdf4f490, seq 25, (req 25)
uclass 31: hwspinlock
0 * hwspinlock at 4c000000 @ fdf4b500, seq 0, (req -1)
uclass 32: i2c
0 i2c at 40013000 @ fdf4b2b8, seq -1, (req 1)
1 i2c at 40015000 @ fdf4b398, seq -1, (req 4)
2 * i2c at 5c002000 @ fdf4c380, seq 3, (req 3)
uclass 34: i2c_generic
0 stmfx at 42 @ fdf4b330
uclass 40: led
0 * led @ fdf4f8b0, seq 0, (req -1)
1 * red @ fdf4f918, seq 1, (req -1)
2 * green @ fdf4f980, seq 2, (req -1)
3 * orange @ fdf4f9e8, seq 3, (req -1)
4 blue @ fdf4fa50
uclass 42: mailbox
0 mailbox at 4c001000 @ fdf4b578
uclass 43: usb_mass_storage
uclass 46: misc
0 * rcc at 50000000 @ fdf4b5f0, seq 0, (req -1)
1 * nvmem at 5c005000 @ fdf4ccf0, seq 1, (req -1)
uclass 47: mmc
0 * sdmmc at 58005000 @ fdf4bca8, seq 0, (req 0)
1 * sdmmc at 58007000 @ fdf4bf50, seq 1, (req 1)
uclass 49: mtd
0 * nand-controller at 58002000 @ fdf4bac8, seq 0, (req -1)
uclass 50: nop
uclass 59: phy
0 usbphyc at 5a006000 @ fdf4c328
uclass 60: pinconfig
0 adc12-usb-pwr-pins-0 @ fdf4d1d8
1 pins @ fdf4d230
2 cec-0 @ fdf4d288
3 pins @ fdf4d2e0
4 cec-sleep-0 @ fdf4d338
5 pins @ fdf4d390
6 cec-1 @ fdf4d3e8
7 pins @ fdf4d440
8 cec-sleep-1 @ fdf4d498
9 pins @ fdf4d4f0
10 * rgmii-0 @ fdf4d548, seq 5, (req -1)
11 pins1 @ fdf4d5a0
12 pins2 @ fdf4d5f8
13 pins3 @ fdf4d650
14 rgmii-sleep-0 @ fdf4d6a8
15 pins1 @ fdf4d700
16 * fmc-0 @ fdf4d758, seq 2, (req -1)
17 pins1 @ fdf4d7b0
18 pins2 @ fdf4d808
19 fmc-sleep-0 @ fdf4d860
20 pins @ fdf4d8b8
21 i2c1-0 @ fdf4d910
22 pins @ fdf4d968
23 i2c1-1 @ fdf4d9c0
24 pins @ fdf4da18
25 i2c1-2 @ fdf4da70
26 pins @ fdf4dac8
27 i2c2-0 @ fdf4db20
28 pins @ fdf4db78
29 i2c2-1 @ fdf4dbd0
30 pins @ fdf4dc28
31 i2c2-2 @ fdf4dc80
32 pins @ fdf4dcd8
33 i2c5-0 @ fdf4dd30
34 pins @ fdf4dd88
35 i2c5-1 @ fdf4dde0
36 pins @ fdf4de38
37 ltdc-a-0 @ fdf4de90
38 pins @ fdf4dee8
39 ltdc-a-1 @ fdf4df40
40 pins @ fdf4df98
41 ltdc-b-0 @ fdf4dff0
42 pins @ fdf4e048
43 ltdc-b-1 @ fdf4e0a0
44 pins @ fdf4e0f8
45 m-can1-0 @ fdf4e150
46 pins1 @ fdf4e1a8
47 pins2 @ fdf4e200
48 m_can1-sleep at 0 @ fdf4e258
49 pins @ fdf4e2b0
50 pwm2-0 @ fdf4e308
51 pins @ fdf4e360
52 pwm8-0 @ fdf4e3b8
53 pins @ fdf4e410
54 pwm12-0 @ fdf4e468
55 pins @ fdf4e4c0
56 qspi-clk-0 @ fdf4e518
57 pins @ fdf4e570
58 qspi-bk1-0 @ fdf4e5c8
59 pins1 @ fdf4e620
60 pins2 @ fdf4e678
61 qspi-bk2-0 @ fdf4e6d0
62 pins1 @ fdf4e728
63 pins2 @ fdf4e780
64 * sdmmc1-b4-0 @ fdf4e7d8, seq 3, (req -1)
65 pins @ fdf4e830
66 sdmmc1-b4-od-0 @ fdf4e888
67 pins1 @ fdf4e8e0
68 pins2 @ fdf4e938
69 sdmmc1-b4-sleep-0 @ fdf4e990
70 pins @ fdf4e9e8
71 * sdmmc1-dir-0 @ fdf4ea40, seq 4, (req -1)
72 pins1 @ fdf4ea98
73 pins2 @ fdf4eaf0
74 sdmmc1-dir-sleep-0 @ fdf4eb48
75 pins @ fdf4eba0
76 sdmmc2-b4-0 @ fdf4ebf8
77 pins @ fdf4ec50
78 sdmmc2-d47-0 @ fdf4eca8
79 pins @ fdf4ed00
80 spdifrx-0 @ fdf4ed58
81 pins @ fdf4edb0
82 spdifrx-1 @ fdf4ee08
83 pins @ fdf4ee60
84 spi2-0 @ fdf4eeb8
85 pins1 @ fdf4ef10
86 pins2 @ fdf4ef68
87 stusb1600-0 @ fdf4efc0
88 pins @ fdf4f018
89 * uart4-0 @ fdf4f070, seq 1, (req -1)
90 pins1 @ fdf4f0c8
91 pins2 @ fdf4f120
92 uart4-1 @ fdf4f178
93 pins1 @ fdf4f1d0
94 pins2 @ fdf4f228
95 uart7-0 @ fdf4f280
96 pins1 @ fdf4f2d8
97 pins2 @ fdf4f330
98 usbotg_hs-0 @ fdf4f388
99 pins @ fdf4f3e0
100 * i2c4-0 @ fdf4f4e8, seq 0, (req -1)
101 pins @ fdf4f540
102 i2c4-1 @ fdf4f598
103 pins @ fdf4f5f0
104 spi1-0 @ fdf4f648
105 pins1 @ fdf4f6a0
106 pins2 @ fdf4f6f8
uclass 61: pinctrl
0 * pin-controller at 50002000 @ fdf4cd78, seq 0, (req 0)
1 * pin-controller-z at 54004000 @ fdf4f438, seq 1, (req 1)
uclass 62: pmic
0 * pwr-regulators @ fdf4b7d0, seq 0, (req -1)
1 * stpmic at 33 @ fdf4c3d8, seq 1, (req -1)
uclass 66: ram
0 ddr at 5A003000 @ fdf4f770
uclass 67: regulator
0 * reg11 @ fdf4b848, seq 0, (req -1)
1 * reg18 @ fdf4b8d8, seq 1, (req -1)
2 * usb33 @ fdf4b968, seq 2, (req -1)
3 * buck1 @ fdf4c440, seq 3, (req -1)
4 * buck2 @ fdf4c4d0, seq 4, (req -1)
5 * buck3 @ fdf4c560, seq 5, (req -1)
6 * buck4 @ fdf4c5f0, seq 6, (req -1)
7 * ldo1 @ fdf4c680, seq 7, (req -1)
8 * ldo2 @ fdf4c710, seq 8, (req -1)
9 * ldo3 @ fdf4c7a0, seq 9, (req -1)
10 * ldo4 @ fdf4c830, seq 10, (req -1)
11 * ldo5 @ fdf4c8c0, seq 11, (req -1)
12 * ldo6 @ fdf4c950, seq 12, (req -1)
13 * vref_ddr @ fdf4c9e0, seq 13, (req -1)
14 * boost @ fdf4ca70, seq 14, (req -1)
15 * pwr_sw1 @ fdf4cb00, seq 15, (req -1)
16 * pwr_sw2 @ fdf4cb90, seq 16, (req -1)
17 * regulator-sd_switch @ fdf4f7c8, seq 17, (req -1)
uclass 68: remoteproc
uclass 69: reset
0 * stm32_rcc_reset @ fdf4b6e0, seq 0, (req -1)
uclass 70: rtc
0 rtc at 5c004000 @ fdf4cc98
uclass 72: serial
0 * serial at 40010000 @ fdf4b220, seq 0, (req 0)
uclass 73: simple_bus
0 * soc @ fdf4b198, seq 0, (req -1)
uclass 76: spi
0 spi at 58003000 @ fdf4bb40, seq -1, (req 0)
uclass 77: spi_flash
0 mx66l51235l at 0 @ fdf4bbb8
1 mx66l51235l at 1 @ fdf4bc20
uclass 78: spi_generic
uclass 80: syscon
0 * pwr at 50001000 @ fdf4b758, seq 0, (req -1)
1 interrupt-controller at 5000d000 @ fdf4b9f8
2 * syscon at 50020000 @ fdf4ba50, seq 1, (req -1)
uclass 81: sysreset
0 reboot @ fdf4b120
1 stpmic1-sysreset @ fdf4cc20
uclass 86: usb
0 usbh-ehci at 5800d000 @ fdf4c2b0
uclass 87: usb_dev_generic
uclass 88: usb_hub
uclass 89: usb
0 usb-otg at 49000000 @ fdf4b410, seq -1, (req 0)
drivers/core/dump.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/core/dump.c b/drivers/core/dump.c
index 8fbfd93..4704049 100644
--- a/drivers/core/dump.c
+++ b/drivers/core/dump.c
@@ -16,7 +16,7 @@ static void show_devices(struct udevice *dev, int depth, int last_flag)
struct udevice *child;
/* print the first 20 characters to not break the tree-format. */
- printf(" %-10.10s %2d [ %c ] %-20.20s ", dev->uclass->uc_drv->name,
+ printf(" %-10.10s %3d [ %c ] %-20.20s ", dev->uclass->uc_drv->name,
dev_get_uclass_index(dev, NULL),
dev->flags & DM_FLAG_ACTIVATED ? '+' : ' ', dev->driver->name);
@@ -64,7 +64,7 @@ void dm_dump_all(void)
*/
static void dm_display_line(struct udevice *dev, int index)
{
- printf("%i %c %s @ %08lx", index,
+ printf("%-3i %c %s @ %08lx", index,
dev->flags & DM_FLAG_ACTIVATED ? '*' : ' ',
dev->name, (ulong)map_to_sysmem(dev));
if (dev->seq != -1 || dev->req_seq != -1)
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option
2019-08-02 12:47 [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Patrick Delaunay
@ 2019-08-02 12:48 ` Patrick Delaunay
2019-08-13 9:34 ` Simon Glass
2019-09-27 1:48 ` [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Simon Glass
1 sibling, 1 reply; 6+ messages in thread
From: Patrick Delaunay @ 2019-08-02 12:48 UTC (permalink / raw)
To: u-boot
In the Linux pinctrl binding, the pin configuration nodes don't need to
be direct children of the pin controller device (may be grandchildren for
example). This behavior is managed with the pinconfig u-class which
recursively bind all the sub-node of the pin controller.
But for some binding (when pin configuration is only children of pin
controller) that is not necessary. U-Boot can save memory and reduce
the number of pinconf instance when this feature is deactivated
(for arch stm32mp for example for SPL).
This patch allows to control this feature with a new option
CONFIG_PINCONF_RECURSIVE when it is possible for each individual
pin controller device.
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---
Hi,
Found her a proposal to have a more clear output of "dm tree" command
and to reduce the memory footprint of PINCTRL_FULL for the arch stm32mp1
(bdinfo "Early malloc usage" is reduced from 2588 to 2144).
On stm32mp157c-ev1, each pin configuration have one other
several sub node "pins"
pinctrl: pin-controller at 50002000 {
...
adc12_usb_pwr_pins_a: adc12-usb-pwr-pins-0 {
pins {
pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* ADC12 in18 */
<STM32_PINMUX('A', 5, ANALOG)>; /* ADC12 in19 */
};
};
cec_pins_a: cec-0 {
pins {
pinmux = <STM32_PINMUX('A', 15, AF4)>;
bias-disable;
drive-open-drain;
slew-rate = <0>;
};
};
cec_pins_sleep_a: cec-sleep-0 {
pins {
pinmux = <STM32_PINMUX('A', 15, ANALOG)>; /* HDMI_CEC */
};
};
...
ethernet0_rgmii_pins_a: rgmii-0 {
pins1 {
pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
<STM32_PINMUX('G', 4, AF11)>, /* ETH_RGMII_GTX_CLK */
<STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
<STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
<STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
<STM32_PINMUX('E', 2, AF11)>, /* ETH_RGMII_TXD3 */
<STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
<STM32_PINMUX('C', 1, AF11)>; /* ETH_MDC */
bias-disable;
drive-push-pull;
slew-rate = <2>;
};
pins2 {
pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH_MDIO */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins3 {
pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
<STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
<STM32_PINMUX('B', 0, AF11)>, /* ETH_RGMII_RXD2 */
<STM32_PINMUX('B', 1, AF11)>, /* ETH_RGMII_RXD3 */
<STM32_PINMUX('A', 1, AF11)>, /* ETH_RGMII_RX_CLK */
<STM32_PINMUX('A', 7, AF11)>; /* ETH_RGMII_RX_CTL */
bias-disable;
};
};
...
before the patch all "pins" subnode are bounded but are unused.
STM32MP> dm tree
Class Index Probed Driver Name
-----------------------------------------------------------
root 0 [ + ] root_driver root_driver
sysreset 0 [ ] syscon_reboot |-- reboot
simple_bus 0 [ + ] generic_simple_bus |-- soc
serial 0 [ + ] serial_stm32 | |-- serial at 40010000
i2c 0 [ ] stm32f7-i2c | |-- i2c at 40013000
i2c_generi 0 [ ] stmfx | | `-- stmfx at 42
i2c 1 [ ] stm32f7-i2c | |-- i2c at 40015000
usb 0 [ ] dwc2-udc-otg | |-- usb-otg at 49000000
hwspinlock 0 [ + ] hwspinlock_stm32mp1 | |-- hwspinlock at 4c000000
mailbox 0 [ ] stm32_ipcc | |-- mailbox at 4c001000
misc 0 [ + ] stm32-rcc | |-- rcc at 50000000
clk 0 [ + ] stm32mp1_clk | | |-- stm32mp1_clk
reset 0 [ + ] stm32_rcc_reset | | `-- stm32_rcc_reset
syscon 0 [ + ] stmp32mp_syscon | |-- pwr at 50001000
pmic 0 [ + ] stm32mp_pwr_pmic | | `-- pwr-regulators
regulator 0 [ + ] stm32mp_pwr_regulato | | |-- reg11
regulator 1 [ + ] stm32mp_pwr_regulato | | |-- reg18
regulator 2 [ + ] stm32mp_pwr_regulato | | `-- usb33
syscon 1 [ ] syscon | |-- interrupt-controller at 5000d000
syscon 2 [ + ] stmp32mp_syscon | |-- syscon at 50020000
mtd 0 [ + ] stm32_fmc2_nand | |-- nand-controller at 58002000
spi 0 [ ] stm32_qspi | |-- spi at 58003000
spi_flash 0 [ ] spi_flash_std | | |-- mx66l51235l at 0
spi_flash 1 [ ] spi_flash_std | | `-- mx66l51235l at 1
mmc 0 [ + ] stm32_sdmmc2 | |-- sdmmc at 58005000
blk 0 [ + ] mmc_blk | | `-- sdmmc at 58005000.blk
mmc 1 [ + ] stm32_sdmmc2 | |-- sdmmc at 58007000
blk 1 [ ] mmc_blk | | `-- sdmmc at 58007000.blk
eth 0 [ + ] eth_eqos | |-- ethernet at 5800a000
usb 0 [ ] ehci_generic | |-- usbh-ehci at 5800d000
phy 0 [ ] stm32-usbphyc | |-- usbphyc at 5a006000
i2c 2 [ + ] stm32f7-i2c | |-- i2c at 5c002000
pmic 1 [ + ] stpmic1_pmic | | `-- stpmic at 33
regulator 3 [ + ] stpmic1_buck | | |-- buck1
regulator 4 [ + ] stpmic1_buck | | |-- buck2
regulator 5 [ + ] stpmic1_buck | | |-- buck3
regulator 6 [ + ] stpmic1_buck | | |-- buck4
regulator 7 [ + ] stpmic1_ldo | | |-- ldo1
regulator 8 [ + ] stpmic1_ldo | | |-- ldo2
regulator 9 [ + ] stpmic1_ldo | | |-- ldo3
regulator 10 [ + ] stpmic1_ldo | | |-- ldo4
regulator 11 [ + ] stpmic1_ldo | | |-- ldo5
regulator 12 [ + ] stpmic1_ldo | | |-- ldo6
regulator 13 [ + ] stpmic1_vref_ddr | | |-- vref_ddr
regulator 14 [ + ] stpmic1_boost | | |-- boost
regulator 15 [ + ] stpmic1_pwr_sw | | |-- pwr_sw1
regulator 16 [ + ] stpmic1_pwr_sw | | |-- pwr_sw2
sysreset 1 [ ] stpmic1-sysreset | | `-- stpmic1-sysreset
rtc 0 [ ] rtc-stm32 | |-- rtc at 5c004000
misc 1 [ + ] stm32mp_bsec | |-- nvmem at 5c005000
pinctrl 0 [ + ] pinctrl_stm32 | |-- pin-controller at 50002000
gpio 0 [ + ] gpio_stm32 | | |-- gpio at 50002000
gpio 1 [ + ] gpio_stm32 | | |-- gpio at 50003000
gpio 2 [ + ] gpio_stm32 | | |-- gpio at 50004000
gpio 3 [ + ] gpio_stm32 | | |-- gpio at 50005000
gpio 4 [ + ] gpio_stm32 | | |-- gpio at 50006000
gpio 5 [ + ] gpio_stm32 | | |-- gpio at 50007000
gpio 6 [ + ] gpio_stm32 | | |-- gpio at 50008000
gpio 7 [ + ] gpio_stm32 | | |-- gpio at 50009000
gpio 8 [ ] gpio_stm32 | | |-- gpio at 5000a000
gpio 9 [ ] gpio_stm32 | | |-- gpio at 5000b000
gpio 10 [ ] gpio_stm32 | | |-- gpio at 5000c000
pinconfig 0 [ ] pinconfig | | |-- adc12-usb-pwr-pins-0
pinconfig 1 [ ] pinconfig | | | `-- pins
pinconfig 2 [ ] pinconfig | | |-- cec-0
pinconfig 3 [ ] pinconfig | | | `-- pins
pinconfig 4 [ ] pinconfig | | |-- cec-sleep-0
pinconfig 5 [ ] pinconfig | | | `-- pins
pinconfig 6 [ ] pinconfig | | |-- cec-1
pinconfig 7 [ ] pinconfig | | | `-- pins
pinconfig 8 [ ] pinconfig | | |-- cec-sleep-1
pinconfig 9 [ ] pinconfig | | | `-- pins
pinconfig 10 [ + ] pinconfig | | |-- rgmii-0
pinconfig 11 [ ] pinconfig | | | |-- pins1
pinconfig 12 [ ] pinconfig | | | |-- pins2
pinconfig 13 [ ] pinconfig | | | `-- pins3
pinconfig 14 [ ] pinconfig | | |-- rgmii-sleep-0
pinconfig 15 [ ] pinconfig | | | `-- pins1
pinconfig 16 [ + ] pinconfig | | |-- fmc-0
pinconfig 17 [ ] pinconfig | | | |-- pins1
pinconfig 18 [ ] pinconfig | | | `-- pins2
pinconfig 19 [ ] pinconfig | | |-- fmc-sleep-0
pinconfig 20 [ ] pinconfig | | | `-- pins
pinconfig 21 [ ] pinconfig | | |-- i2c1-0
pinconfig 22 [ ] pinconfig | | | `-- pins
pinconfig 23 [ ] pinconfig | | |-- i2c1-1
pinconfig 24 [ ] pinconfig | | | `-- pins
pinconfig 25 [ ] pinconfig | | |-- i2c1-2
pinconfig 26 [ ] pinconfig | | | `-- pins
pinconfig 27 [ ] pinconfig | | |-- i2c2-0
pinconfig 28 [ ] pinconfig | | | `-- pins
pinconfig 29 [ ] pinconfig | | |-- i2c2-1
pinconfig 30 [ ] pinconfig | | | `-- pins
pinconfig 31 [ ] pinconfig | | |-- i2c2-2
pinconfig 32 [ ] pinconfig | | | `-- pins
pinconfig 33 [ ] pinconfig | | |-- i2c5-0
pinconfig 34 [ ] pinconfig | | | `-- pins
pinconfig 35 [ ] pinconfig | | |-- i2c5-1
pinconfig 36 [ ] pinconfig | | | `-- pins
pinconfig 37 [ ] pinconfig | | |-- ltdc-a-0
pinconfig 38 [ ] pinconfig | | | `-- pins
pinconfig 39 [ ] pinconfig | | |-- ltdc-a-1
pinconfig 40 [ ] pinconfig | | | `-- pins
pinconfig 41 [ ] pinconfig | | |-- ltdc-b-0
pinconfig 42 [ ] pinconfig | | | `-- pins
pinconfig 43 [ ] pinconfig | | |-- ltdc-b-1
pinconfig 44 [ ] pinconfig | | | `-- pins
pinconfig 45 [ ] pinconfig | | |-- m-can1-0
pinconfig 46 [ ] pinconfig | | | |-- pins1
pinconfig 47 [ ] pinconfig | | | `-- pins2
pinconfig 48 [ ] pinconfig | | |-- m_can1-sleep at 0
pinconfig 49 [ ] pinconfig | | | `-- pins
pinconfig 50 [ ] pinconfig | | |-- pwm2-0
pinconfig 51 [ ] pinconfig | | | `-- pins
pinconfig 52 [ ] pinconfig | | |-- pwm8-0
pinconfig 53 [ ] pinconfig | | | `-- pins
pinconfig 54 [ ] pinconfig | | |-- pwm12-0
pinconfig 55 [ ] pinconfig | | | `-- pins
pinconfig 56 [ ] pinconfig | | |-- qspi-clk-0
pinconfig 57 [ ] pinconfig | | | `-- pins
pinconfig 58 [ ] pinconfig | | |-- qspi-bk1-0
pinconfig 59 [ ] pinconfig | | | |-- pins1
pinconfig 60 [ ] pinconfig | | | `-- pins2
pinconfig 61 [ ] pinconfig | | |-- qspi-bk2-0
pinconfig 62 [ ] pinconfig | | | |-- pins1
pinconfig 63 [ ] pinconfig | | | `-- pins2
pinconfig 64 [ + ] pinconfig | | |-- sdmmc1-b4-0
pinconfig 65 [ ] pinconfig | | | `-- pins
pinconfig 66 [ ] pinconfig | | |-- sdmmc1-b4-od-0
pinconfig 67 [ ] pinconfig | | | |-- pins1
pinconfig 68 [ ] pinconfig | | | `-- pins2
pinconfig 69 [ ] pinconfig | | |-- sdmmc1-b4-sleep-0
pinconfig 70 [ ] pinconfig | | | `-- pins
pinconfig 71 [ + ] pinconfig | | |-- sdmmc1-dir-0
pinconfig 72 [ ] pinconfig | | | |-- pins1
pinconfig 73 [ ] pinconfig | | | `-- pins2
pinconfig 74 [ ] pinconfig | | |-- sdmmc1-dir-sleep-0
pinconfig 75 [ ] pinconfig | | | `-- pins
pinconfig 76 [ ] pinconfig | | |-- sdmmc2-b4-0
pinconfig 77 [ ] pinconfig | | | `-- pins
pinconfig 78 [ ] pinconfig | | |-- sdmmc2-d47-0
pinconfig 79 [ ] pinconfig | | | `-- pins
pinconfig 80 [ ] pinconfig | | |-- spdifrx-0
pinconfig 81 [ ] pinconfig | | | `-- pins
pinconfig 82 [ ] pinconfig | | |-- spdifrx-1
pinconfig 83 [ ] pinconfig | | | `-- pins
pinconfig 84 [ ] pinconfig | | |-- spi2-0
pinconfig 85 [ ] pinconfig | | | |-- pins1
pinconfig 86 [ ] pinconfig | | | `-- pins2
pinconfig 87 [ ] pinconfig | | |-- stusb1600-0
pinconfig 88 [ ] pinconfig | | | `-- pins
pinconfig 89 [ + ] pinconfig | | |-- uart4-0
pinconfig 90 [ ] pinconfig | | | |-- pins1
pinconfig 91 [ ] pinconfig | | | `-- pins2
pinconfig 92 [ ] pinconfig | | |-- uart4-1
pinconfig 93 [ ] pinconfig | | | |-- pins1
pinconfig 94 [ ] pinconfig | | | `-- pins2
pinconfig 95 [ ] pinconfig | | |-- uart7-0
pinconfig 96 [ ] pinconfig | | | |-- pins1
pinconfig 97 [ ] pinconfig | | | `-- pins2
pinconfig 98 [ ] pinconfig | | `-- usbotg_hs-0
pinconfig 99 [ ] pinconfig | | `-- pins
pinctrl 1 [ + ] pinctrl_stm32 | |-- pin-controller-z at 54004000
gpio 11 [ + ] gpio_stm32 | | |-- gpio at 54004000
pinconfig 100 [ + ] pinconfig | | |-- i2c4-0
pinconfig 101 [ ] pinconfig | | | `-- pins
pinconfig 102 [ ] pinconfig | | |-- i2c4-1
pinconfig 103 [ ] pinconfig | | | `-- pins
pinconfig 104 [ ] pinconfig | | `-- spi1-0
pinconfig 105 [ ] pinconfig | | |-- pins1
pinconfig 106 [ ] pinconfig | | `-- pins2
ram 0 [ ] stm32mp1_ddr | `-- ddr at 5A003000
regulator 17 [ + ] gpio regulator |-- regulator-sd_switch
led 0 [ + ] gpio_led |-- led
led 1 [ + ] gpio_led | |-- red
led 2 [ + ] gpio_led | |-- green
led 3 [ + ] gpio_led | |-- orange
led 4 [ ] gpio_led | `-- blue
clk 1 [ + ] fixed_rate_clock |-- clk-hse
clk 2 [ + ] fixed_rate_clock |-- clk-hsi
clk 3 [ + ] fixed_rate_clock |-- clk-lse
clk 4 [ + ] fixed_rate_clock |-- clk-lsi
clk 5 [ + ] fixed_rate_clock `-- clk-csi
With the patch only the needed "pinconfig" instances are kept:
STM32MP> dm tree
Class Index Probed Driver Name
-----------------------------------------------------------
root 0 [ + ] root_driver root_driver
sysreset 0 [ ] syscon_reboot |-- reboot
simple_bus 0 [ + ] generic_simple_bus |-- soc
serial 0 [ + ] serial_stm32 | |-- serial at 40010000
i2c 0 [ ] stm32f7-i2c | |-- i2c at 40013000
i2c_generi 0 [ ] stmfx | | `-- stmfx at 42
i2c 1 [ ] stm32f7-i2c | |-- i2c at 40015000
usb 0 [ ] dwc2-udc-otg | |-- usb-otg at 49000000
hwspinlock 0 [ + ] hwspinlock_stm32mp1 | |-- hwspinlock at 4c000000
mailbox 0 [ ] stm32_ipcc | |-- mailbox at 4c001000
misc 0 [ + ] stm32-rcc | |-- rcc at 50000000
clk 0 [ + ] stm32mp1_clk | | |-- stm32mp1_clk
reset 0 [ + ] stm32_rcc_reset | | `-- stm32_rcc_reset
syscon 0 [ + ] stmp32mp_syscon | |-- pwr at 50001000
pmic 0 [ + ] stm32mp_pwr_pmic | | `-- pwr-regulators
regulator 0 [ + ] stm32mp_pwr_regulato | | |-- reg11
regulator 1 [ + ] stm32mp_pwr_regulato | | |-- reg18
regulator 2 [ + ] stm32mp_pwr_regulato | | `-- usb33
syscon 1 [ ] syscon | |-- interrupt-controller at 5000d000
syscon 2 [ + ] stmp32mp_syscon | |-- syscon at 50020000
mtd 0 [ + ] stm32_fmc2_nand | |-- nand-controller at 58002000
spi 0 [ ] stm32_qspi | |-- spi at 58003000
spi_flash 0 [ ] spi_flash_std | | |-- mx66l51235l at 0
spi_flash 1 [ ] spi_flash_std | | `-- mx66l51235l at 1
mmc 0 [ + ] stm32_sdmmc2 | |-- sdmmc at 58005000
blk 0 [ + ] mmc_blk | | `-- sdmmc at 58005000.blk
mmc 1 [ + ] stm32_sdmmc2 | |-- sdmmc at 58007000
blk 1 [ ] mmc_blk | | `-- sdmmc at 58007000.blk
eth 0 [ + ] eth_eqos | |-- ethernet at 5800a000
usb 0 [ ] ehci_generic | |-- usbh-ehci at 5800d000
phy 0 [ ] stm32-usbphyc | |-- usbphyc at 5a006000
i2c 2 [ + ] stm32f7-i2c | |-- i2c at 5c002000
pmic 1 [ + ] stpmic1_pmic | | `-- stpmic at 33
regulator 3 [ + ] stpmic1_buck | | |-- buck1
regulator 4 [ + ] stpmic1_buck | | |-- buck2
regulator 5 [ + ] stpmic1_buck | | |-- buck3
regulator 6 [ + ] stpmic1_buck | | |-- buck4
regulator 7 [ + ] stpmic1_ldo | | |-- ldo1
regulator 8 [ + ] stpmic1_ldo | | |-- ldo2
regulator 9 [ + ] stpmic1_ldo | | |-- ldo3
regulator 10 [ + ] stpmic1_ldo | | |-- ldo4
regulator 11 [ + ] stpmic1_ldo | | |-- ldo5
regulator 12 [ + ] stpmic1_ldo | | |-- ldo6
regulator 13 [ + ] stpmic1_vref_ddr | | |-- vref_ddr
regulator 14 [ + ] stpmic1_boost | | |-- boost
regulator 15 [ + ] stpmic1_pwr_sw | | |-- pwr_sw1
regulator 16 [ + ] stpmic1_pwr_sw | | |-- pwr_sw2
sysreset 1 [ ] stpmic1-sysreset | | `-- stpmic1-sysreset
rtc 0 [ ] rtc-stm32 | |-- rtc at 5c004000
misc 1 [ + ] stm32mp_bsec | |-- nvmem at 5c005000
pinctrl 0 [ + ] pinctrl_stm32 | |-- pin-controller at 50002000
gpio 0 [ + ] gpio_stm32 | | |-- gpio at 50002000
gpio 1 [ + ] gpio_stm32 | | |-- gpio at 50003000
gpio 2 [ + ] gpio_stm32 | | |-- gpio at 50004000
gpio 3 [ + ] gpio_stm32 | | |-- gpio at 50005000
gpio 4 [ + ] gpio_stm32 | | |-- gpio at 50006000
gpio 5 [ + ] gpio_stm32 | | |-- gpio at 50007000
gpio 6 [ + ] gpio_stm32 | | |-- gpio at 50008000
gpio 7 [ + ] gpio_stm32 | | |-- gpio at 50009000
gpio 8 [ ] gpio_stm32 | | |-- gpio at 5000a000
gpio 9 [ ] gpio_stm32 | | |-- gpio at 5000b000
gpio 10 [ ] gpio_stm32 | | |-- gpio at 5000c000
pinconfig 0 [ ] pinconfig | | |-- adc12-usb-pwr-pins-0
pinconfig 1 [ ] pinconfig | | |-- cec-0
pinconfig 2 [ ] pinconfig | | |-- cec-sleep-0
pinconfig 3 [ ] pinconfig | | |-- cec-1
pinconfig 4 [ ] pinconfig | | |-- cec-sleep-1
pinconfig 5 [ + ] pinconfig | | |-- rgmii-0
pinconfig 6 [ ] pinconfig | | |-- rgmii-sleep-0
pinconfig 7 [ + ] pinconfig | | |-- fmc-0
pinconfig 8 [ ] pinconfig | | |-- fmc-sleep-0
pinconfig 9 [ ] pinconfig | | |-- i2c1-0
pinconfig 10 [ ] pinconfig | | |-- i2c1-1
pinconfig 11 [ ] pinconfig | | |-- i2c1-2
pinconfig 12 [ ] pinconfig | | |-- i2c2-0
pinconfig 13 [ ] pinconfig | | |-- i2c2-1
pinconfig 14 [ ] pinconfig | | |-- i2c2-2
pinconfig 15 [ ] pinconfig | | |-- i2c5-0
pinconfig 16 [ ] pinconfig | | |-- i2c5-1
pinconfig 17 [ ] pinconfig | | |-- ltdc-a-0
pinconfig 18 [ ] pinconfig | | |-- ltdc-a-1
pinconfig 19 [ ] pinconfig | | |-- ltdc-b-0
pinconfig 20 [ ] pinconfig | | |-- ltdc-b-1
pinconfig 21 [ ] pinconfig | | |-- m-can1-0
pinconfig 22 [ ] pinconfig | | |-- m_can1-sleep at 0
pinconfig 23 [ ] pinconfig | | |-- pwm2-0
pinconfig 24 [ ] pinconfig | | |-- pwm8-0
pinconfig 25 [ ] pinconfig | | |-- pwm12-0
pinconfig 26 [ ] pinconfig | | |-- qspi-clk-0
pinconfig 27 [ ] pinconfig | | |-- qspi-bk1-0
pinconfig 28 [ ] pinconfig | | |-- qspi-bk2-0
pinconfig 29 [ + ] pinconfig | | |-- sdmmc1-b4-0
pinconfig 30 [ ] pinconfig | | |-- sdmmc1-b4-od-0
pinconfig 31 [ ] pinconfig | | |-- sdmmc1-b4-sleep-0
pinconfig 32 [ + ] pinconfig | | |-- sdmmc1-dir-0
pinconfig 33 [ ] pinconfig | | |-- sdmmc1-dir-sleep-0
pinconfig 34 [ ] pinconfig | | |-- sdmmc2-b4-0
pinconfig 35 [ ] pinconfig | | |-- sdmmc2-d47-0
pinconfig 36 [ ] pinconfig | | |-- spdifrx-0
pinconfig 37 [ ] pinconfig | | |-- spdifrx-1
pinconfig 38 [ ] pinconfig | | |-- spi2-0
pinconfig 39 [ ] pinconfig | | |-- stusb1600-0
pinconfig 40 [ + ] pinconfig | | |-- uart4-0
pinconfig 41 [ ] pinconfig | | |-- uart4-1
pinconfig 42 [ ] pinconfig | | |-- uart7-0
pinconfig 43 [ ] pinconfig | | `-- usbotg_hs-0
pinctrl 1 [ + ] pinctrl_stm32 | |-- pin-controller-z at 54004000
gpio 11 [ + ] gpio_stm32 | | |-- gpio at 54004000
pinconfig 44 [ + ] pinconfig | | |-- i2c4-0
pinconfig 45 [ ] pinconfig | | |-- i2c4-1
pinconfig 46 [ ] pinconfig | | `-- spi1-0
ram 0 [ ] stm32mp1_ddr | `-- ddr at 5A003000
regulator 17 [ + ] gpio regulator |-- regulator-sd_switch
led 0 [ + ] gpio_led |-- led
led 1 [ + ] gpio_led | |-- red
led 2 [ + ] gpio_led | |-- green
led 3 [ + ] gpio_led | |-- orange
led 4 [ ] gpio_led | `-- blue
clk 1 [ + ] fixed_rate_clock |-- clk-hse
clk 2 [ + ] fixed_rate_clock |-- clk-hsi
clk 3 [ + ] fixed_rate_clock |-- clk-lse
clk 4 [ + ] fixed_rate_clock |-- clk-lsi
clk 5 [ + ] fixed_rate_clock `-- clk-csi
drivers/pinctrl/Kconfig | 25 +++++++++++++++++++++++++
drivers/pinctrl/pinctrl-uclass.c | 2 ++
2 files changed, 27 insertions(+)
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index a0ac167..deee924 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -59,6 +59,22 @@ config PINCONF
This option enables pin configuration through the generic pinctrl
framework.
+config PINCONF_RECURSIVE
+ bool "Support recursive binding for pin configuration nodes"
+ depends on PINCTRL_FULL
+ default n if ARCH_STM32MP
+ default y
+ help
+ In the Linux pinctrl binding, the pin configuration nodes need not be
+ direct children of the pin controller device (may be grandchildren for
+ example). It is define is each individual pin controller device.
+ Say Y here if you want to keep this behavior with the pinconfig
+ u-class: all sub are recursivelly bounded.
+ If the option is disabled, this behavior is deactivated and only
+ the direct children of pin controller will be assumed as pin
+ configuration; you can save memory footprint when this feature is
+ no needed.
+
config SPL_PINCTRL
bool "Support pin controllers in SPL"
depends on SPL && SPL_DM
@@ -104,6 +120,15 @@ config SPL_PINCONF
This option is an SPL-variant of the PINCONF option.
See the help of PINCONF for details.
+config SPL_PINCONF_RECURSIVE
+ bool "Support recursive binding for pin configuration nodes in SPL"
+ depends on SPL_PINCTRL_FULL
+ default n if ARCH_STM32MP
+ default y
+ help
+ This option is an SPL-variant of the PINCONF_RECURSIVE option.
+ See the help of PINCONF_RECURSIVE for details.
+
if PINCTRL || SPL_PINCTRL
config PINCTRL_AR933X
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
index 5b1cd29..bf799a7 100644
--- a/drivers/pinctrl/pinctrl-uclass.c
+++ b/drivers/pinctrl/pinctrl-uclass.c
@@ -151,7 +151,9 @@ static int pinconfig_post_bind(struct udevice *dev)
UCLASS_DRIVER(pinconfig) = {
.id = UCLASS_PINCONFIG,
+#if CONFIG_IS_ENABLED(PINCONFIG_RECURSIVE)
.post_bind = pinconfig_post_bind,
+#endif
.name = "pinconfig",
};
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option
2019-08-02 12:48 ` [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option Patrick Delaunay
@ 2019-08-13 9:34 ` Simon Glass
2019-10-12 2:55 ` Simon Glass
0 siblings, 1 reply; 6+ messages in thread
From: Simon Glass @ 2019-08-13 9:34 UTC (permalink / raw)
To: u-boot
On Fri, 2 Aug 2019 at 06:48, Patrick Delaunay <patrick.delaunay@st.com> wrote:
>
> In the Linux pinctrl binding, the pin configuration nodes don't need to
> be direct children of the pin controller device (may be grandchildren for
> example). This behavior is managed with the pinconfig u-class which
> recursively bind all the sub-node of the pin controller.
>
> But for some binding (when pin configuration is only children of pin
> controller) that is not necessary. U-Boot can save memory and reduce
> the number of pinconf instance when this feature is deactivated
> (for arch stm32mp for example for SPL).
>
> This patch allows to control this feature with a new option
> CONFIG_PINCONF_RECURSIVE when it is possible for each individual
> pin controller device.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
>
Reviewed-by: Simon Glass <sjg@chromium.org>
> Hi,
>
> Found her a proposal to have a more clear output of "dm tree" command
> and to reduce the memory footprint of PINCTRL_FULL for the arch stm32mp1
> (bdinfo "Early malloc usage" is reduced from 2588 to 2144).
Gosh that is still a lot! But a nice improvement.
Regards,
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices
2019-08-02 12:47 [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Patrick Delaunay
2019-08-02 12:48 ` [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option Patrick Delaunay
@ 2019-09-27 1:48 ` Simon Glass
2019-09-30 8:12 ` [U-Boot] [Uboot-stm32] " Patrick DELAUNAY
1 sibling, 1 reply; 6+ messages in thread
From: Simon Glass @ 2019-09-27 1:48 UTC (permalink / raw)
To: u-boot
Hi Patrick,
On Fri, 2 Aug 2019 at 05:48, Patrick Delaunay <patrick.delaunay@st.com> wrote:
>
> At present the 'Index' column of 'dm tree' assumes there is
> two digits, this patch increase it to 3 digits.
>
> It also aligns output of 'dm uclass', assuming the same 3 digits index.
>
> The boards with CONFIG_PINCTRL_FULL activated have one pinconfig
> by pin configuration, so they can have more than 100 devices
> pinconfig (for example with stm32mp157c-ev1 board we have
> 106 pinconfig node).
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
>
> stm32mp157c-ev1 trace before the patch
>
This seems fine but it breaks the tests (make qcheck). Can you please fix that?
Regards,
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [Uboot-stm32] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices
2019-09-27 1:48 ` [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Simon Glass
@ 2019-09-30 8:12 ` Patrick DELAUNAY
0 siblings, 0 replies; 6+ messages in thread
From: Patrick DELAUNAY @ 2019-09-30 8:12 UTC (permalink / raw)
To: u-boot
Hi Simon,
> To: Patrick DELAUNAY <patrick.delaunay@st.com>
> Cc: U-Boot STM32 <uboot-stm32@st-md-mailman.stormreply.com>; U-Boot
>
> Hi Patrick,
>
> On Fri, 2 Aug 2019 at 05:48, Patrick Delaunay <patrick.delaunay@st.com> wrote:
> >
> > At present the 'Index' column of 'dm tree' assumes there is two
> > digits, this patch increase it to 3 digits.
> >
> > It also aligns output of 'dm uclass', assuming the same 3 digits index.
> >
> > The boards with CONFIG_PINCTRL_FULL activated have one pinconfig by
> > pin configuration, so they can have more than 100 devices pinconfig
> > (for example with stm32mp157c-ev1 board we have
> > 106 pinconfig node).
> >
> > Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> > ---
> >
> > stm32mp157c-ev1 trace before the patch
> >
>
> This seems fine but it breaks the tests (make qcheck). Can you please fix that?
Sure, I will sent a v2 today
> Regards,
> Simon
> _______________________________________________
> Uboot-stm32 mailing list
> Uboot-stm32 at st-md-mailman.stormreply.com
> https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option
2019-08-13 9:34 ` Simon Glass
@ 2019-10-12 2:55 ` Simon Glass
0 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2019-10-12 2:55 UTC (permalink / raw)
To: u-boot
On Tue, 13 Aug 2019 at 03:34, Simon Glass <sjg@chromium.org> wrote:
>
> On Fri, 2 Aug 2019 at 06:48, Patrick Delaunay <patrick.delaunay@st.com> wrote:
> >
> > In the Linux pinctrl binding, the pin configuration nodes don't need to
> > be direct children of the pin controller device (may be grandchildren for
> > example). This behavior is managed with the pinconfig u-class which
> > recursively bind all the sub-node of the pin controller.
> >
> > But for some binding (when pin configuration is only children of pin
> > controller) that is not necessary. U-Boot can save memory and reduce
> > the number of pinconf instance when this feature is deactivated
> > (for arch stm32mp for example for SPL).
> >
> > This patch allows to control this feature with a new option
> > CONFIG_PINCONF_RECURSIVE when it is possible for each individual
> > pin controller device.
> >
> > Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> > ---
> >
>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> > Hi,
> >
> > Found her a proposal to have a more clear output of "dm tree" command
> > and to reduce the memory footprint of PINCTRL_FULL for the arch stm32mp1
> > (bdinfo "Early malloc usage" is reduced from 2588 to 2144).
>
> Gosh that is still a lot! But a nice improvement.
Applied to u-boot-dm, thanks!
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-10-12 2:55 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-02 12:47 [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Patrick Delaunay
2019-08-02 12:48 ` [U-Boot] [RESEND PATCH 2/2] dm: pinctrl: introduce PINCONF_RECURSIVE option Patrick Delaunay
2019-08-13 9:34 ` Simon Glass
2019-10-12 2:55 ` Simon Glass
2019-09-27 1:48 ` [U-Boot] [RESEND PATCH 1/2] dm: Tidy up dump output when there are many devices Simon Glass
2019-09-30 8:12 ` [U-Boot] [Uboot-stm32] " Patrick DELAUNAY
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.