diff options
author | Tom Rini <trini@konsulko.com> | 2022-01-17 08:36:12 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-01-17 08:36:12 -0500 |
commit | 6d2ebcd7be3e7f9cc81011ddb97540c81a301701 (patch) | |
tree | f7e2121a624292cb900d085254dd6336d51ff627 | |
parent | 34972e7ea6ef2827b7c18feb03ecfe8c952f162e (diff) | |
parent | dbf500b55770e58313df9fefa217129da38ea1b6 (diff) | |
download | u-boot-6d2ebcd7be3e7f9cc81011ddb97540c81a301701.tar.gz |
Merge tag 'u-boot-at91-2022.04-b' of https://source.denx.de/u-boot/custodians/u-boot-at91
Second set of u-boot-at91 features for the 2022.04 cycle:
This small feature set includes few changes for sama7g5 and sama7g5ek:
turn blue led on at boot, changes required for the Rev4 of the board,
better sync with the Linux DT with regards to the new DT nodes.
-rw-r--r-- | arch/arm/dts/sama7g5.dtsi | 50 | ||||
-rw-r--r-- | arch/arm/dts/sama7g5ek.dts | 39 | ||||
-rw-r--r-- | board/atmel/sama7g5ek/sama7g5ek.c | 9 | ||||
-rw-r--r-- | configs/sama7g5ek_mmc1_defconfig | 1 | ||||
-rw-r--r-- | configs/sama7g5ek_mmc_defconfig | 1 | ||||
-rw-r--r-- | drivers/i2c/at91_i2c.c | 6 |
6 files changed, 97 insertions, 9 deletions
diff --git a/arch/arm/dts/sama7g5.dtsi b/arch/arm/dts/sama7g5.dtsi index 4a3c675d34..2505a2f83d 100644 --- a/arch/arm/dts/sama7g5.dtsi +++ b/arch/arm/dts/sama7g5.dtsi @@ -10,11 +10,15 @@ */ #include "skeleton.dtsi" +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clk/at91.h> +#include <dt-bindings/dma/at91.h> / { model = "Microchip SAMA7G5 family SoC"; compatible = "microchip,sama7g5"; + interrupt-parent = <&gic>; clocks { slow_rc_osc: slow_rc_osc { @@ -191,6 +195,52 @@ clock-names = "pclk", "hclk"; status = "disabled"; }; + + dma0: dma-controller@e2808000 { + compatible = "microchip,sama7g5-dma"; + reg = <0xe2808000 0x1000>; + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; + #dma-cells = <1>; + clocks = <&pmc PMC_TYPE_PERIPHERAL 22>; + clock-names = "dma_clk"; + status = "disabled"; + }; + + flx8: flexcom@e2818000 { + compatible = "atmel,sama5d2-flexcom"; + reg = <0xe2818000 0x200>; + clocks = <&pmc PMC_TYPE_PERIPHERAL 46>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0xe2818000 0x800>; + status = "disabled"; + + i2c8: i2c@600 { + compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c"; + reg = <0x600 0x200>; + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&pmc PMC_TYPE_PERIPHERAL 46>; + atmel,fifo-size = <32>; + dmas = <&dma0 AT91_XDMAC_DT_PERID(21)>, + <&dma0 AT91_XDMAC_DT_PERID(22)>; + dma-names = "rx", "tx"; + atmel,use-dma-rx; + atmel,use-dma-tx; + status = "disabled"; + }; + }; + + gic: interrupt-controller@e8c11000 { + compatible = "arm,cortex-a7-gic"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + interrupt-parent; + reg = <0xe8c11000 0x1000>, + <0xe8c12000 0x2000>; + }; }; }; }; diff --git a/arch/arm/dts/sama7g5ek.dts b/arch/arm/dts/sama7g5ek.dts index 16192ca0b1..6adb044258 100644 --- a/arch/arm/dts/sama7g5ek.dts +++ b/arch/arm/dts/sama7g5ek.dts @@ -20,6 +20,7 @@ aliases { serial0 = &uart0; i2c0 = &i2c1; + i2c1 = &i2c8; }; chosen { @@ -92,17 +93,31 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx1_default>; status = "okay"; +}; - eeprom@52 { - compatible = "microchip,24aa02e48"; - reg = <0x52>; - pagesize = <16>; - }; +&flx8 { + atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; + status = "okay"; + + i2c8: i2c@600 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c8_default>; + i2c-analog-filter; + i2c-digital-filter; + i2c-digital-filter-width-ns = <35>; + status = "okay"; - eeprom@53 { - compatible = "microchip,24aa02e48"; - reg = <0x53>; - pagesize = <16>; + eeprom@52 { + compatible = "microchip,24aa02e48"; + reg = <0x52>; + pagesize = <16>; + }; + + eeprom@53 { + compatible = "microchip,24aa02e48"; + reg = <0x53>; + pagesize = <16>; + }; }; }; @@ -145,6 +160,12 @@ bias-pull-up; }; + pinctrl_i2c8_default: i2c8_default { + pinmux = <PIN_PC14__FLEXCOM8_IO0>, + <PIN_PC13__FLEXCOM8_IO1>; + bias-disable; + }; + pinctrl_qspi: qspi { pinmux = <PIN_PB12__QSPI0_IO0>, <PIN_PB11__QSPI0_IO1>, diff --git a/board/atmel/sama7g5ek/sama7g5ek.c b/board/atmel/sama7g5ek/sama7g5ek.c index 411b31160b..ae18ed05e0 100644 --- a/board/atmel/sama7g5ek/sama7g5ek.c +++ b/board/atmel/sama7g5ek/sama7g5ek.c @@ -17,6 +17,13 @@ DECLARE_GLOBAL_DATA_PTR; +static void board_leds_init(void) +{ + atmel_pio4_set_pio_output(AT91_PIO_PORTB, 8, 0); /* LED RED */ + atmel_pio4_set_pio_output(AT91_PIO_PORTA, 13, 0); /* LED GREEN */ + atmel_pio4_set_pio_output(AT91_PIO_PORTD, 20, 1); /* LED BLUE */ +} + int board_late_init(void) { return 0; @@ -65,6 +72,8 @@ int board_init(void) /* address of boot parameters */ gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; + board_leds_init(); + return 0; } diff --git a/configs/sama7g5ek_mmc1_defconfig b/configs/sama7g5ek_mmc1_defconfig index e297489900..15a5c54e75 100644 --- a/configs/sama7g5ek_mmc1_defconfig +++ b/configs/sama7g5ek_mmc1_defconfig @@ -72,3 +72,4 @@ CONFIG_TIMER=y CONFIG_MCHP_PIT64B_TIMER=y CONFIG_OF_LIBFDT_OVERLAY=y # CONFIG_EFI_LOADER_HII is not set +CONFIG_PHANDLE_CHECK_SEQ=y diff --git a/configs/sama7g5ek_mmc_defconfig b/configs/sama7g5ek_mmc_defconfig index 4f68a46456..7abd5c8a38 100644 --- a/configs/sama7g5ek_mmc_defconfig +++ b/configs/sama7g5ek_mmc_defconfig @@ -72,3 +72,4 @@ CONFIG_TIMER=y CONFIG_MCHP_PIT64B_TIMER=y CONFIG_OF_LIBFDT_OVERLAY=y # CONFIG_EFI_LOADER_HII is not set +CONFIG_PHANDLE_CHECK_SEQ=y diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c index 6b4c0e4804..e743d2a849 100644 --- a/drivers/i2c/at91_i2c.c +++ b/drivers/i2c/at91_i2c.c @@ -305,6 +305,11 @@ static const struct at91_i2c_pdata sama5d2_config = { .clk_offset = 3, }; +static const struct at91_i2c_pdata sam9x60_config = { + .clk_max_div = 7, + .clk_offset = 3, +}; + static const struct udevice_id at91_i2c_ids[] = { { .compatible = "atmel,at91rm9200-i2c", .data = (long)&at91rm9200_config }, { .compatible = "atmel,at91sam9260-i2c", .data = (long)&at91sam9260_config }, @@ -314,6 +319,7 @@ static const struct udevice_id at91_i2c_ids[] = { { .compatible = "atmel,at91sam9x5-i2c", .data = (long)&at91sam9x5_config }, { .compatible = "atmel,sama5d4-i2c", .data = (long)&sama5d4_config }, { .compatible = "atmel,sama5d2-i2c", .data = (long)&sama5d2_config }, +{ .compatible = "microchip,sam9x60-i2c", .data = (long)&sam9x60_config }, { } }; |