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

Merge commit 'gcl/gcl-next'

+95 -6
+57
Documentation/powerpc/booting-without-of.txt
··· 59 59 p) Freescale Synchronous Serial Interface 60 60 q) USB EHCI controllers 61 61 r) MDIO on GPIOs 62 + s) SPI busses 62 63 63 64 VII - Marvell Discovery mv64[345]6x System Controller chips 64 65 1) The /system-controller node ··· 1883 1882 gpios = <&qe_pio_a 11 1884 1883 &qe_pio_c 6>; 1885 1884 }; 1885 + 1886 + s) SPI (Serial Peripheral Interface) busses 1887 + 1888 + SPI busses can be described with a node for the SPI master device 1889 + and a set of child nodes for each SPI slave on the bus. For this 1890 + discussion, it is assumed that the system's SPI controller is in 1891 + SPI master mode. This binding does not describe SPI controllers 1892 + in slave mode. 1893 + 1894 + The SPI master node requires the following properties: 1895 + - #address-cells - number of cells required to define a chip select 1896 + address on the SPI bus. 1897 + - #size-cells - should be zero. 1898 + - compatible - name of SPI bus controller following generic names 1899 + recommended practice. 1900 + No other properties are required in the SPI bus node. It is assumed 1901 + that a driver for an SPI bus device will understand that it is an SPI bus. 1902 + However, the binding does not attempt to define the specific method for 1903 + assigning chip select numbers. Since SPI chip select configuration is 1904 + flexible and non-standardized, it is left out of this binding with the 1905 + assumption that board specific platform code will be used to manage 1906 + chip selects. Individual drivers can define additional properties to 1907 + support describing the chip select layout. 1908 + 1909 + SPI slave nodes must be children of the SPI master node and can 1910 + contain the following properties. 1911 + - reg - (required) chip select address of device. 1912 + - compatible - (required) name of SPI device following generic names 1913 + recommended practice 1914 + - spi-max-frequency - (required) Maximum SPI clocking speed of device in Hz 1915 + - spi-cpol - (optional) Empty property indicating device requires 1916 + inverse clock polarity (CPOL) mode 1917 + - spi-cpha - (optional) Empty property indicating device requires 1918 + shifted clock phase (CPHA) mode 1919 + 1920 + SPI example for an MPC5200 SPI bus: 1921 + spi@f00 { 1922 + #address-cells = <1>; 1923 + #size-cells = <0>; 1924 + compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; 1925 + reg = <0xf00 0x20>; 1926 + interrupts = <2 13 0 2 14 0>; 1927 + interrupt-parent = <&mpc5200_pic>; 1928 + 1929 + ethernet-switch@0 { 1930 + compatible = "micrel,ks8995m"; 1931 + spi-max-frequency = <1000000>; 1932 + reg = <0>; 1933 + }; 1934 + 1935 + codec@1 { 1936 + compatible = "ti,tlv320aic26"; 1937 + spi-max-frequency = <100000>; 1938 + reg = <1>; 1939 + }; 1940 + }; 1886 1941 1887 1942 VII - Marvell Discovery mv64[345]6x System Controller chips 1888 1943 ===========================================================
+1 -1
arch/powerpc/platforms/52xx/Kconfig
··· 1 1 config PPC_MPC52xx 2 2 bool "52xx-based boards" 3 3 depends on PPC_MULTIPLATFORM && PPC32 4 - select FSL_SOC 5 4 select PPC_CLOCK 6 5 select PPC_PCI_CHOICE 7 6 ··· 47 48 config PPC_MPC5200_GPIO 48 49 bool "MPC5200 GPIO support" 49 50 depends on PPC_MPC52xx 51 + select GENERIC_GPIO 50 52 select HAVE_GPIO_LIB 51 53 help 52 54 Enable gpiolib support for mpc5200 based boards
-2
drivers/of/of_i2c.c
··· 91 91 } 92 92 93 93 info.irq = irq_of_parse_and_map(node, 0); 94 - if (info.irq == NO_IRQ) 95 - info.irq = -1; 96 94 97 95 if (of_find_i2c_driver(node, &info) < 0) { 98 96 irq_dispose_mapping(info.irq);
+37 -3
include/asm-powerpc/mpc52xx_psc.h
··· 60 60 #define MPC52xx_PSC_RXTX_FIFO_ALARM 0x0002 61 61 #define MPC52xx_PSC_RXTX_FIFO_EMPTY 0x0001 62 62 63 - /* PSC interrupt mask bits */ 63 + /* PSC interrupt status/mask bits */ 64 64 #define MPC52xx_PSC_IMR_TXRDY 0x0100 65 65 #define MPC52xx_PSC_IMR_RXRDY 0x0200 66 66 #define MPC52xx_PSC_IMR_DB 0x0400 67 + #define MPC52xx_PSC_IMR_TXEMP 0x0800 68 + #define MPC52xx_PSC_IMR_ORERR 0x1000 67 69 #define MPC52xx_PSC_IMR_IPC 0x8000 68 70 69 71 /* PSC input port change bit */ ··· 94 92 95 93 #define MPC52xx_PSC_RFNUM_MASK 0x01ff 96 94 95 + #define MPC52xx_PSC_SICR_DTS1 (1 << 29) 96 + #define MPC52xx_PSC_SICR_SHDR (1 << 28) 97 + #define MPC52xx_PSC_SICR_SIM_MASK (0xf << 24) 98 + #define MPC52xx_PSC_SICR_SIM_UART (0x0 << 24) 99 + #define MPC52xx_PSC_SICR_SIM_UART_DCD (0x8 << 24) 100 + #define MPC52xx_PSC_SICR_SIM_CODEC_8 (0x1 << 24) 101 + #define MPC52xx_PSC_SICR_SIM_CODEC_16 (0x2 << 24) 102 + #define MPC52xx_PSC_SICR_SIM_AC97 (0x3 << 24) 103 + #define MPC52xx_PSC_SICR_SIM_SIR (0x8 << 24) 104 + #define MPC52xx_PSC_SICR_SIM_SIR_DCD (0xc << 24) 105 + #define MPC52xx_PSC_SICR_SIM_MIR (0x5 << 24) 106 + #define MPC52xx_PSC_SICR_SIM_FIR (0x6 << 24) 107 + #define MPC52xx_PSC_SICR_SIM_CODEC_24 (0x7 << 24) 108 + #define MPC52xx_PSC_SICR_SIM_CODEC_32 (0xf << 24) 109 + #define MPC52xx_PSC_SICR_GENCLK (1 << 23) 110 + #define MPC52xx_PSC_SICR_I2S (1 << 22) 111 + #define MPC52xx_PSC_SICR_CLKPOL (1 << 21) 112 + #define MPC52xx_PSC_SICR_SYNCPOL (1 << 20) 113 + #define MPC52xx_PSC_SICR_CELLSLAVE (1 << 19) 114 + #define MPC52xx_PSC_SICR_CELL2XCLK (1 << 18) 115 + #define MPC52xx_PSC_SICR_ESAI (1 << 17) 116 + #define MPC52xx_PSC_SICR_ENAC97 (1 << 16) 117 + #define MPC52xx_PSC_SICR_SPI (1 << 15) 118 + #define MPC52xx_PSC_SICR_MSTR (1 << 14) 119 + #define MPC52xx_PSC_SICR_CPOL (1 << 13) 120 + #define MPC52xx_PSC_SICR_CPHA (1 << 12) 121 + #define MPC52xx_PSC_SICR_USEEOF (1 << 11) 122 + #define MPC52xx_PSC_SICR_DISABLEEOF (1 << 10) 97 123 98 124 /* Structure of the hardware registers */ 99 125 struct mpc52xx_psc { ··· 162 132 u8 reserved5[3]; 163 133 u8 ctlr; /* PSC + 0x1c */ 164 134 u8 reserved6[3]; 165 - u16 ccr; /* PSC + 0x20 */ 166 - u8 reserved7[14]; 135 + /* BitClkDiv field of CCR is byte swapped in 136 + * the hardware for mpc5200/b compatibility */ 137 + u32 ccr; /* PSC + 0x20 */ 138 + u32 ac97_slots; /* PSC + 0x24 */ 139 + u32 ac97_cmd; /* PSC + 0x28 */ 140 + u32 ac97_data; /* PSC + 0x2c */ 167 141 u8 ivr; /* PSC + 0x30 */ 168 142 u8 reserved8[3]; 169 143 u8 ip; /* PSC + 0x34 */